![[Bug]: V1 Engine Produces Incorrect Scores for Qwen3-Reranker-0.6B on Long Sequences (>8K tokens)](https://www.chat-gpts.plus/wp-content/uploads/2026/07/48831-406cb7a1.jpg)
[Bug]: V1 Engine Produces Incorrect Scores for Qwen3-Reranker-0.6B on Long Sequences (>8K tokens)
快速结论:当 vLLM V1 引擎在 8K+ token 长序列上使用 Qwen3-Reranker-0.6B 模型并同时启用 torch.compile 与 chunked prefill 时,可能会返回错误的评分。优先尝试添加 --enforce-eager 禁掉 torch.compile,或者应用修复 PR #48901。
问题场景
用户在 vLLM V1 引擎上使用 Qwen3-Reranker-0.6B 模型进行 rerank 评分时,当输入序列长度超过 8K tokens,返回的分数不正确。离线调用 LLM.score() 看起来正常,但在线部署时复现。环境为 Ubuntu 22.04 + PyTorch 2.11.0 + CUDA 13.0 + 8 × RTX 4090。
报错原文
V1 Engine Produces Incorrect Scores for Qwen3-Reranker-0.6B on Long Sequences (>8K tokens)
用户未提供具体错误栈,仅描述了评分结果错误的行为。复现条件:长 query+doc 超过 8K tokens、chunked prefill 开启、torch.compile 开启。
原因分析
根本原因并非异步拷贝问题,而是 torch.compile 与 chunked prefill 之间的交互:当使用 chunked prefill 处理部分填充形状时,pooled last-token hidden state 读取到了一个被复用/别名的缓冲区,而该缓冲区的生成内核尚未完成写入。该问题仅当 同时 开启 chunked prefill 和 torch.compile 时复现。在 --enforce-eager 模式下或单 chunk prompt 下始终正确。
环境排查
- vLLM 版本:复现时请确认版本号(Issue 基于近期 master 分支)
- PyTorch 版本:2.11.0+cu130(环境报告)
- CUDA 版本:13.0
- GPU 型号:NVIDIA GeForce RTX 4090(8卡)
- Python 版本:3.12.13
- 是否启用
--enforce-eager:该选项可绕过 torch.compile,正确性可保证 - 是否启用 chunked prefill:必须同时检查此选项
- 模型名称:Qwen3-Reranker-0.6B
解决步骤
- 立即验证:启动引擎时添加
--enforce-eager参数,禁止 torch.compile。如果评分恢复正常,即可确认问题与 torch.compile 相关。 - 正式修复:拉取或 cherry-pick PR #48901 中的变更(修复 chunked prefill + compile 场景下的 buffer 别名问题)。相关提交在 Issue 关闭当天(2026-07-17)合入。
- 临时规避:如果不方便升级代码,可以尝试将输入序列控制在 8K tokens 以内(单 chunk prompt),或关闭 chunked prefill。
- 验证配置:在启动命令中确认
--engine-use-v1(如果适用)以及 chunked prefill 相关参数。
验证方法
使用与复现时相同的长 query+doc 输入(>8K tokens),对比以下三组的评分结果:
1) 开启 torch.compile + chunked prefill(默认情况,预期错误)
2) 添加 --enforce-eager 禁用 torch.compile(预期正确)
3) 应用 PR #48901 后的版本(预期正确)
如果第3组与第2组结果一致,且第1组有差异,则问题已修复。



