关于实时模式的vllm解码并发问题
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
- 难度
- 5/5
- 预计耗时
- 一周以上
- 新手友好度
- 35/100
- Issue 类型
- 重构
- 描述清晰度
- 需要澄清
- 活跃度
- 活跃
- 技术栈
- python
- 领域
- backend, performance
调研方向
Start in the realtime_ws flow around RealtimeBatchingEngine, handle_client, and run_session_work; trace the asyncio.to_thread call into synchronous LLM.generate. Run the existing concurrency benchmark, which currently covers up to 8 clients, and compare it with higher session counts. Done means a benchmark-backed decision and, if pursued, verified per-session partial ordering and latency under the target concurrency.
由索引模型根据 Issue 内容生成。
描述
【realtime_ws】并发 streaming session 的vllm解码
测试中并发 streaming session 增多时,首条结果延迟明显上升,超过一定并发后结果趋于停滞。
在约 15+ 个并发 session 下,首字延迟 p50 从 10 个 session 时的 ~1.5s 涨到 ~2.2s(p95
到 ~66s),并随并发继续恶化。以上数值仅供参考,不代表精确基准。
似乎RealtimeBatchingEngine把并发 session 的请求统一汇到单个 worker 线程,底层调用同步 `LLM.generate。实时流式里每个 session 的 handle_client循环要等自己的 partial 返回之后才发下一帧(run_session_work → asyncio.to_thread →阻塞 generate),语音请求在vad处理后请求天然稀疏,batch_wait_ms=10ms的攒批窗口几乎凑不齐。于是请求稀疏 → 批凑不满 → 单条串行 → 客户端等更久 → 更稀疏,形成自锁,吞吐受限。这是我的推测解释,未必准确,供参考。
目前benchmark 文档只到 8 clients,若未来有意支持更高并发,是否可以考虑把解码器切到 AsyncLLMEngine(vLLM v1 的vllm.v1.engine.async_llm.AsyncLLM,同样 enable_prompt_embeds=True),每个 session 的partial / 锁句作独立 request_id提交:引擎按 step 在卡上合批、同时把每条结果返回给各自调用方,天然保住每个 session 的顺序与 partial 中间态,吞吐也随之恢复。是否值得,请各位大佬按定位评估;我这边物理条件有限,测试结果未必准确,也很难支持更高并发下的吞吐测试,若感兴趣可在高并发下尝试验证。
- 主要语言
- Python
- 星标
- 20.5k
- 派生
- 2.1k
- 平均合并
- 15 小时 21 分钟
- 30 天内合并 PR
- 125
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
modelscope/FunASR 的其他 Issue
-
难度 1/5 1 小时以内 新手友好度 88/100
modelscope/FunASR#3730 · 2 条评论 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 86/100
modelscope/FunASR#3704 · 1 条评论 ·
维护者通常 1 天内回复
-
bug needs feedback
难度 2/5 1-3 小时 新手友好度 76/100
modelscope/FunASR#3401 · 2 条评论 ·
维护者通常 1 天内回复
-
needs feedback
难度 4/5 3-5 天 新手友好度 45/100
modelscope/FunASR#3739 · 1 条评论 ·
维护者通常 1 天内回复
-
bug needs triage
难度 4/5 3-5 天 新手友好度 30/100
modelscope/FunASR#3727 · 2 条评论 ·
维护者通常 1 天内回复
查看 modelscope/FunASR 的全部 Issue
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 78/100
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 85/100
维护者通常 1 天内回复
-
approved correction metadata
难度 1/5 1 小时以内 新手友好度 88/100
acl-org/acl-anthology#10133 · 1 条评论 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 78/100
BasedHardware/omi#20084 ·
维护者通常 1 天内回复
-
bug needs-acceptance wg/evaluation-quality
难度 2/5 1-3 小时 新手友好度 76/100
vllm-project/semantic-router#4424 ·
维护者通常 1 天内回复