View on GitHub

LLM Dev Highlights

« Back to vLLM Reports

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

时间窗口: 2025-12-26 10:46 (UTC+8) ~ 2025-12-27 10:46 (UTC+8) 数据统计: 新 Issue 8 | 关闭 Issue 17 | 新 PR 21 | 合并 PR 13 | 关闭未合并 PR 18


📊 每日开发状态摘要

本周期(2025年12月26-27日)vLLM项目保持高活跃度,共合并13个PR,处理17个历史Issue。开发焦点集中在模型兼容性修复(特别是多模态模型LoRA、GPTQ和FP8量化)和异构硬件支持优化(如ROCm平台对非标准块大小模型的修复)。多个长期悬而未决的Issue(如多模态模型LoRA支持)通过大型PR得到解决,表明项目正致力于完善核心功能并提升在不同硬件和模型上的稳定性。

🎯 AMD/ROCm 生态相关动态

本周期AMD/ROCm生态相关活动活跃,主要集中在ROCm后端兼容性修复性能优化上,但未出现用户名包含“-amd”的贡献者或涉及Quark工具的直接修改。

  1. PR #31380: [Bugfix][ROCm]Fix Qwen3-Next-80B-A3B-Thinking inference
    • 内容:修复了Qwen3-Next-80B-A3B-Thinking模型在ROCm注意力后端(rocm_attn)上的推理崩溃问题。该模型使用非标准的544令牌块大小,而原有内核基于2的幂次方进行位运算寻址,导致内存错误。
    • 技术细节:重构了多个ROCm注意力内核(如triton_reshape_and_cache_flash.py, prefix_prefill.py),将寻址逻辑从位运算改为通用线性算术寻址(block_table - base_addr) // block_byte_stride)。这使得内核能原生支持任意块大小,提升了对复杂模型架构的兼容性。
    • 影响:显著增强了vLLM在AMD GPU(如MI300X)上运行非标准块大小模型的能力,是ROCm生态支持向更广泛模型扩展的重要一步。
  2. PR #31369: [ROCm][CI] Fix rocm attention backends selection on ROCm
    • 内容:修复了ROCm设备上注意力后端选择单元测试(test_rocm_attention_backends_selection.py)的失败问题。
    • 技术细节:更新了测试用例以匹配最新的get_attn_backend_cls接口调用约定。这确保了CI/CD流程中针对ROCm各注意力后端(如ROCM_ATTNROCM_AITER_FA)的测试能够正确运行,保障了代码质量。
    • 状态Open,等待与相似PR #31187的合并决策。
  3. Issue #31372: [Feature]: Running paddocr‑vl consumes an excessively large amount of memory.
    • 内容:用户报告在ROCm镜像上运行PaddleOCR-VL多模态模型时,内存消耗异常高(约30GB),远超模型本身大小(2GB)。
    • 与AMD生态关联:问题发生在ROCm环境中,但根因可能在于多模态模型的通用内存管理或潜在的泄漏,而非ROCm特定问题。这反映了在AMD硬件上部署多模态应用时可能遇到的现实挑战。
    • 状态Open,尚未有解决方案。

💬 高热度讨论分析

  1. Issue #29635: [Bug]: 支持多模态加载lora的方式 (23条评论)
    • 核心议题:用户无法为多模态模型(如Qwen-VL)的视觉模块加载LoRA权重,vLLM会过滤掉这些权重并报错。
    • 不同观点
      • 用户/开发者:迫切需要此功能进行微调后的生产部署。
      • 维护者(@jeejeelee):承认这是已知限制,并已在进行中(WIP)。
    • 争议焦点:无争议,社区强烈期待功能实现。
    • 当前状态/结论已关闭。相关功能已通过 PR #26674 合并入主分支,该PR为多模态模型的视觉塔和连接器模块实现了独立的LoRA包装器,解决了此问题。
  2. Issue #7413: [Bug]: Pipeline parallelism is only supported through AsyncLLMEngine… (9条评论)
    • 核心议题:用户在使用非异步LLM引擎时遭遇管道并行性能严重下降的警告。
    • 不同观点
      • 多位用户(+1评论):持续遇到相同问题,询问进展。
      • 自动化流程:因超过90天无核心维护者回复,被标记为“stale”并最终关闭。
    • 争议焦点:无实质性技术讨论,主要是用户对问题长期未得到官方响应的不满。
    • 当前状态/结论已关闭。因不活跃被机器人关闭,问题本身可能依然存在,但未被主动解决。
  3. Issue #31377: [Bug]: torch.ops._C.static_scaled_fp8_quant IMA error (2条评论)
    • 核心议题:在测试FP8量化注意力融合模式时,发生非法内存访问(IMA)错误。
    • 讨论过程
      • 开发者@lengrongfu:初步判断是scale张量未在GPU设备上。
      • 提交者@BoyuanFeng:提供复现命令,并后续通过PR #31395定位到根本原因是量化scale张量未注册为模型缓冲区(buffer),导致model.to(device)时未被移至GPU。
    • 当前状态Open,但已有修复PR #31395提交,该PR通过将_k_scale等张量注册为缓冲区来解决问题。

🔥 热门话题与趋势分析

🛠️ 重点技术变更

  1. PR #30166: [Core][Hybrid allocator + connector] 支持混合分配器 + kv cache连接器(已合并)
    • 解读:这是对混合KV缓存管理器(用于滑动窗口注意力等)的重大改进。此前管理器会为滑动窗口层过度分配所有令牌后再释放,导致与外部KV缓存连接器(如LMCache)协作时内存压力大和数据竞争。
    • 影响:新实现改为只为滑动窗口内的令牌分配KV缓存,从根本上解决了上述问题,使得vLLM能与LMCache等外部缓存系统更高效、稳定地协同工作。
  2. PR #26674: [Core] Initialize LoRA support for tower and connector in multi-modal models(已合并)
    • 解读:解决了长期存在的多模态模型视觉部分无法使用LoRA的问题。关键技术点是为语言模型、视觉塔和连接器分别创建独立的Punica LoRA包装器,并新增get_num_mm_encoder_tokens等方法精确计算视觉模块的输入长度。
    • 影响:正式为Qwen-VL、Idefics3等多模态模型提供了完整的LoRA微调后部署能力,满足了社区的关键需求。
  3. PR #31395: [BugFix] register quant scale tensors as buffer(Open)
    • 解读:一个典型的深度学习工程细节问题。FP8静态量化中的scale张量由于未注册为PyTorch模块的buffer,在模型调用.to(device)时不会自动迁移至GPU,导致内核计算时发生设备不匹配的非法内存访问。
    • 影响:修复了FP8量化注意力融合测试中的稳定性问题,强调了在实现自定义模块时正确管理张量设备和状态的必要性。

📈 开发活跃度观察

💡 值得关注的问题

  1. Issue #31394: FlashInfer FP8 MoE精度问题:在NVIDIA B200/GB300等顶级硬件上出现的FP8 MoE精度不准问题,可能涉及较深层的计算内核逻辑,需要FlashInfer或vLLM团队深入排查。
  2. Issue #31387: 非原生FP8 GPU上的FP8模型部署:用户希望在A100等GPU上通过Marlin内核运行FP8模型但失败。这关乎FP8量化在更广泛硬件上的可用性,是一个重要的用户体验和兼容性问题。
  3. Issue #31371: KV缓存块连续分配优化建议:用户从层间KV缓存传输效率出发,建议对空闲块列表进行排序以实现连续分配。这是一个具有潜在性能收益的优化点,值得核心开发者评估其开销与收益。

📋 附录:详细数据列表

新增 Issue

已关闭 Issue

新增 PR

已合并 PR

关闭但未合并的 PR