View on GitHub

LLM Dev Highlights

« Back to vLLM Reports

vLLM 开发动态报告 - 2025-12-31

时间窗口: 2025-12-31 11:02 (UTC+8) ~ 2026-01-01 11:02 (UTC+8) 数据统计: 新 Issue 12 | 关闭 Issue 25 | 新 PR 30 | 合并 PR 12 | 关闭未合并 PR 8


📊 每日开发状态摘要

在跨年期间(2025年12月31日至2026年1月1日),vLLM 项目保持了活跃的开发节奏,共合并了12个PR,关闭了25个Issue。开发焦点集中在修复由近期重大变更(如V1引擎、异步调度默认启用)引发的新问题,包括CI测试失败、硬件兼容性(特别是Blackwell架构)以及内存泄漏等。同时,多模态模型支持(如音频处理、新模型适配)和底层架构优化(如MoE层重构、KV缓存)的讨论与开发也在持续推进。

🎯 AMD/ROCm 生态相关动态

本周期内有若干涉及AMD/ROCm生态的更新,主要集中在测试修复和代码健壮性改进,未发现与Quark量化工具或MI300特定优化相关的内容。

  1. PR #31597 ([ROCm][CI] Fix language generation test accuracy by disabling HF flash_sdp and mem_efficient_sdp):
    • 提交者:AndreasKaratzas
    • 内容:修复ROCm平台上语言生成测试的准确性问题。根本原因是HuggingFace Transformers在ROCm上的flash_sdpmem_efficient_sdp注意力实现存在数值精度问题。解决方案是在ROCm的测试配置中禁用这两个后端,强制使用更稳定的math_sdp后端作为基线参考。
    • 影响:确保了ROCm平台上模型输出对比测试的准确性和可靠性,是维持跨平台测试一致性的重要修复。
  2. PR #31590 ([Bugfix] Replace BaseException with specific exceptions in FLA utils) & PR #31587 ([Bugfix][Hardware][ROCm] Narrow broad exception in PyNCCL library loading):
    • 提交者:c0de128(非AMD员工,但提交涉及ROCm硬件标签)
    • 内容:这两个PR属于代码质量改进系列,旨在将except Exception:except BaseException:等宽泛的异常捕获替换为具体的异常类型(如RuntimeError, OSError)。
    • 影响:虽然不直接提供新功能,但提升了在ROCm(以及所有平台)上调试底层库(如NCCL/RCCL、FLA算子)加载失败或运行时错误的体验,避免了关键异常被意外屏蔽。
  3. PR #31551 ([ROCm][CI] Update MiniCPM model test…)(已合并):
    • 提交者:AndreasKaratzas
    • 内容:更新ROCm CI中的测试模型,将MiniCPM3-4B替换为MiniCPM4.1-8B,并修复了测试中因模型内部嵌入缩放逻辑导致的比对问题。
    • 影响:保持ROCm CI测试集的现代性和有效性,同时修正了测试逻辑中的一个潜在缺陷。

小结:本周期AMD生态相关活动侧重于测试稳定性和代码健壮性,旨在解决ROCm平台特有的测试失败问题并改善错误处理,为后续功能开发打下更坚实的基础。

💬 高热度讨论分析

  1. Issue #31579: VLLM_FLOAT32_MATMUL_PRECISION=tf32 does not set cublas tf32 matmul:
    • 核心议题:环境变量VLLM_FLOAT32_MATMUL_PRECISION 在PyTorch 2.9.1下无法正确启用TF32矩阵乘精度。
    • 观点与讨论
      • 提交者 (cjackal):指出问题,并追溯到PR #30428移除了已弃用的torch.set_float32_matmul_precision(‘high’)调用。他质疑为何设置torch.backends.cuda.matmul.fp32_precision = “tf32”不够,而TORCH_ALLOW_TF32_CUBLAS_OVERRIDE=1却有效。
      • 维护者 (yewentao256):确认在PyTorch 2.9.0中存在相关警告,但在2.9.1中已被移除,因此提议回退之前的修复(即PR #30428),恢复原有逻辑。
    • 争议焦点:无实质性争议,主要是在确认PyTorch API变更后的修复方向。
    • 当前状态:问题开放中,维护者已提交了旨在回退的修复PR (#31585)。
  2. Issue #22383: TypeError: FlashAttentionImpl.__init__() got an unexpected keyword argument ‘sinks’(已关闭):
    • 核心议题:启用FP8 KV缓存等功能时,FlashAttention后端因接收到意外的sinks参数而初始化失败。
    • 观点与讨论
      • 用户们:报告了在各种配置(GPT-OSS模型、V1/V0引擎、不同CUDA版本、开启tracing等)下遇到相同错误。
      • 解决方案尝试:社区提供了多种临时解决方案,包括修改源码、切换注意力后端(FlashInfer)、或设置VLLM_USE_V1=1。有用户指出PR #22320可能已修复,但问题在特定条件下仍出现。
    • 争议焦点:无对立观点,主要是在寻求和分享解决方案。问题凸显了新功能(如sinks)与现有后端兼容性的挑战。
    • 最终结论:该Issue因超过90天无新活动而被机器人自动关闭,但反映的兼容性问题可能在其他地方被持续处理。
  3. Issue #31559: [CI Failure]: Failed to upload and process pipeline: Pipeline upload rejected(已关闭):
    • 核心议题:CI流水线因配置中出现重复的key而上传失败。
    • 观点与讨论
      • 提交者 (BlankRH):报告错误并初步归因于某个AMD CI PR,但被纠正。
      • 维护者 (tjtanaa):快速定位到真正的罪魁祸首是另一个提交(ab1af6aa),该提交在YAML中重复定义了同一个blockkey。他立即着手修复。
    • 争议焦点:无争议,是一次高效的故障排查和修复协作。
    • 最终结论:问题在创建后约40分钟内,通过PR #31562的合并得到解决,体现了CI维护的快速响应。

🔥 热门话题与趋势分析

  1. V1引擎与异步调用的“阵痛期”:多个新增和关闭的Issue都与默认启用的异步调度(PR #27614)相关,导致CI测试失败(#31570)和新硬件平台崩溃(#31588)。这表明新架构在广泛部署后正经历稳定性考验。
  2. 多模态支持持续深化:新增PR涉及音频通道规范化框架(#31595)、支持新模型GLM-ASR(#31436已合并)和IQuestCoder(#31575)、以及为DeepSeek-OCR添加LoRA支持(#31569),显示多模态领域仍是扩展重点。
  3. GPU硬件兼容性挑战:Issue中频繁出现B200、B300、Blackwell GB10等最新 NVIDIA 硬件的身影,涉及量化(#31594)、FP8支持、驱动/PyTorch版本适配等问题,凸显了vLLM紧跟前沿硬件所面临的持续适配压力。
  4. MoE架构演进与优化:关于重构MoELayer的RFC(#31578)和多个修复MoE相关计算形状(#31596)、量化配置(#31593)的PR,表明团队正在梳理复杂的MoE实现,为未来性能优化和功能增强做准备。
  5. CI/CD与测试稳健性:除了上述CI失败修复,还有针对测试中令牌计数假设(#31565)、ROCm测试准确性(#31597)的修复,反映出对测试质量和跨平台一致性的高度重视。

🛠️ 重点技术变更

  1. PR #31584 ([BugFix] Fix async scheduling for pooling models)(已合并):
    • 技术解读:修复了异步调度模式下,池化(Pooling)模型存在的竞态条件问题。同时将输出数据的CPU拷贝移至专用流,以解锁异步调度的性能增益。
    • 影响:直接解决了Issue #31570中的CI失败,增强了V1引擎在运行分类/排序类模型时的稳定性,并为提升异步模式性能做了铺垫。
  2. PR #31596 ([MoE] Fix output_shape calculation in Attention layer to handle 3D query inputs)
    • 技术解读:修复了PR #28775引入的回归错误。原代码在计算output_shape时,错误地假设查询输入(query)总是2D [num_tokens, hidden_dim],而DeepSeek-V2/V3等模型的特定层会传入3D [num_tokens, num_heads, head_dim]张量,导致后续形状不匹配和FP8量化内核失败。
    • 影响:修复了影响DeepSeek系列模型(使用MLA和MTP层)在特定配置下的运行错误,保证了Attention层对输入形状的鲁棒性。
  3. PR #31585 ([Bug] Revert torch warning fix)
    • 技术解读:计划回退之前为消除PyTorch弃用警告(PR #30428)所做的修改。原因是PyTorch 2.9.1中已移除相关警告,且当前的“修复”导致了TF32精度无法正确启用(Issue #31579)。
    • 影响:恢复正确的TF32矩阵乘行为,确保在支持TF32的硬件(如Ampere, Hopper)上获得预期的性能与精度平衡。

📈 开发活跃度观察

💡 值得关注的问题

  1. Issue #31588: vLLM SM 12.1 (Blackwell GB10) V1 Engine Bug Report: 在最新Blackwell GB10 GPU上,V1引擎因异步调度和缺失None检查而崩溃。此问题影响所有SM 12.1用户,是新硬件适配的关键阻塞问题
  2. Issue #31577: Memory leak in serving Whisper: 报告在服务Whisper语音模型时出现内存泄漏,且已有其他用户确认。内存泄漏问题对生产部署稳定性影响重大,需要优先排查。
  3. Issue #31578: [Feature]: New MoELayer: 这是一个关于重构复杂MoE层的设计讨论(RFC)。旨在将当前分散在FusedMoE中的各种优化逻辑抽象为统一的MoELayer管理。此重构可能对未来的MoE性能、可维护性和新功能添加产生深远影响,值得社区关注其设计进展。

📋 附录:详细数据列表

新增 Issue

已关闭 Issue

新增 PR

已合并 PR

关闭但未合并的 PR