Allow multi-thread streaming using the same weight loaded once in memory
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 55/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Lĩnh vực
- audio-video-rtc
Hướng nghiên cứu
Bắt đầu bằng cách xem xét mutex trong src/ggml_graph.cpp ở các dòng 28-35, sau đó kiểm tra parakeet-thread-local-backend.patch và concurrent_streams.py. Chạy lệnh Python được cung cấp với bốn thread cùng model và các tệp âm thanh được cung cấp. Hoàn thành khi có thể phiên âm nhiều stream đồng thời trong một tiến trình và chia sẻ các trọng số, kể cả trên các hệ thống GPU.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
I'm trying out this project for a live transcription usecase in a call. We use vosk at the moment (in https://github.com/nextcloud/live_transcription/) which supports loading the model weights once in the memory and then starting new threads with light-er recognize objects reading the same weights to process the output but keeping their own state and cache.
This is not possible at this moment due to a mutex https://github.com/mudler/parakeet.cpp/blob/e75de9b6b9b688fd293aa22f7e27aa724ea286f8/src/ggml_graph.cpp#L28-L35
One process can process only one stream at a time.
I'm not familiar with the code so did an experiment and asked AI if there is a possibility to work like llama.cpp here which uses slots to entertain parallel requests using the same loaded weights, and works with the same underlying ggml library.
It has successfully changed the code to make it possible for multiple threads to transcribe at the same time, in the same process by using a new Backend in each thread as opposed to one shared Backend + mutex guard.
The tests ran on an AMD CPU but theoritically should not cause issues with GPU systems.
Below are some reproduction steps and the patch:
parakeet-thread-local-backend.patch
concurrent_streams.py
python concurrent_streams.py --lib ./libparakeet.so --model ./nemotron-3.5-asr-streaming-0.6b-q8_0.gguf --threads 4 ./audio/en_9min_16k* --seconds 90
- Ngôn ngữ chính
- C++
- Star
- 844
- Fork
- 103
- Merge trung bình
- 8 giờ 27 phút
- Pull request đã merge (30 ngày)
- 26
Chuẩn bị môi trường
- Có Dockerfile hoặc tệp Docker Compose
- Không có mẫu pull request
- Không có hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của mudler/parakeet.cpp
-
Mention parakeet-ffm in READMECó thể đã có người làm @localai-org-maint-bot đã nhận 1 ngày trước. Đang mở
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 72/100
mudler/parakeet.cpp#99 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 58/100
mudler/parakeet.cpp#62 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 58/100
mudler/parakeet.cpp#61 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Real streaming from a micCó thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mở
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 48/100
mudler/parakeet.cpp#60 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 48/100
mudler/parakeet.cpp#59 · 3 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của mudler/parakeet.cpp
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
FriendsofECCE/ECCE#336 · 1 bình luận ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 66/100
bitcoin-core/gui-qml#1030 ·
Maintainer thường phản hồi trong vòng 3 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100
tesseract-robotics/tesseract#1384 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
NVIDIA/nccl-extensions#26 ·