Prhub

#21841 [VLM] Add VLM TP=4 per-commit CI test and improve MMMU eval prompt/parser

原始 PR 作者 yhyang201 合并时间 2026-04-02 11:09 文件变更 2 提交数 1 评论 3 代码增减 +101 / -3

执行摘要

新增 VLM TP=4 CI 测试并优化 MMMU 评估 prompt 与解析器,提升测试覆盖与准确性。

动机是添加Qwen3.5-27B VLM TP=4 MMMU测试到stage-c-test-4-gpu-h100 per-commit CI,因为之前没有VLM测试在4-GPU套件中。同时,改进MMMU评估prompt和解析器以提高准确性和降低延迟,参考了Kimi-Vendor-Verifier的CoT指令格式(引用自PR body)。

建议工程师精读此PR,关注prompt和解析器的设计决策,学习如何优化LLM评估以提升准确性和性能;对于测试维护者,此PR展示了扩展CI测试套件和集成新模型配置的方法,值得借鉴。

讨论亮点

review中gemini-code-assist[bot]提出两项改进建议:1. 解析器正则表达式应改为不区分大小写以处理模型可能输出小写字母的情况(如'Answer: a'),增强鲁棒性。2. 移除测试中无关的Mamba架构标志(如'--mamba-*'),保持Qwen3.5 Transformer模型配置的简洁性。这些建议可能被采纳以提升代码质量,但讨论中未明确是否已实施。

实现拆解

实现方案包括两个关键改动:1. 修改python/sglang/test/simple_eval_mmmu_vlm.py,优化prompt构建以添加CoT指令(如'Think step by step before answering')和显式答案格式('Answer: $LETTER'),并增强解析器逻辑,优先使用正则表达式匹配'Answer: X'模式再回退到原有匹配。2. 新增test/registered/vlm/test_vlm_tp4.py,定义VLM TP=4 CI测试用例,设置服务器参数并执行MMMU评估以验证准确性阈值。

文件 模块 状态 重要度
python/sglang/test/simple_eval_mmmu_vlm.py testing/evaluation modified 7.0
test/registered/vlm/test_vlm_tp4.py testing added 6.0

分析完成后,这里会展示 LLM 生成的相对完整源码片段和详细注释。

关键符号

_parse_multi_choice_response

评论区精华

解析器正则表达式大小写敏感性改进 正确性

gemini-code-assist[bot] 建议将正则表达式改为不区分大小写并统一大写,以处理模型可能输出小写字母的情况,增强解析鲁棒性。

结论:建议被采纳以提升代码质量,可能已在合并前实施。 · 已解决

移除测试中无关的 Mamba 标志 设计

gemini-code-assist[bot] 建议移除 Qwen3.5 测试中与 Mamba 架构无关的标志(如 '--mamba-*'),保持配置清洁以避免混淆。

结论:建议被采纳以优化测试设置,可能已在合并前实施。 · 已解决

风险与影响

技术风险包括:1. 解析器变更(simple_eval_mmmu_vlm.py)可能影响所有使用VLM MMMU评估的测试,如果正则表达式不完善或模型输出格式意外变化,可能导致解析错误或准确性下降。2. 新增CI测试(test_vlm_tp4.py)可能增加测试套件运行时间和资源消耗,影响CI整体效率。3. 改进的prompt指令可能不适用于所有VLM模型,导致评估偏差。

影响范围:1. 对用户和系统:显著提升VLM模型的测试覆盖,确保TP=4多GPU配置下的功能正确性;MMMU评估的改进使所有相关测试的准确率提高和延迟降低,提升整体评估效率。2. 对团队:扩展了CI测试套件,为后续VLM开发提供基准;prompt和解析器的优化可作为LLM评估最佳实践参考。影响程度为中到高,涉及核心测试逻辑变更。

解析器变更影响面广 CI 测试资源消耗增加

关联 Issue

未识别关联 Issue

当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。

完整报告

执行摘要

本PR通过新增VLM TP=4 CI测试和优化MMMU评估prompt与解析器,显著提升多模态测试覆盖和评估准确性,将准确率从约0.34提升至0.75-0.78,延迟从145秒降低至28秒,为VLM开发提供更可靠的测试基准。

功能与动机

动机源于填补4-GPU测试套件中VLM测试的空白,并改进MMMU评估的准确性和效率。PR body明确指出:"Add Qwen3.5-27B VLM TP=4 MMMU test to stage-c-test-4-gpu-h100 per-commit CI (previously no VLM tests in any 4-GPU suite)"和"Improve MMMU eval prompt... to increase accuracy from ~0.34 to ~0.75-0.78"。这些变更参考了Kimi-Vendor-Verifier的CoT指令格式,旨在标准化答案提取。

实现拆解

主要改动集中在两个文件:

  • python/sglang/test/simple_eval_mmmu_vlm.py
    • prompt构建:替换原有简单提示为包含CoT指令的格式,例如:
      prompt_text += ("\\nAnswer the following multiple-choice question. "
                      "The last line of your response should be of the "
                      "following format: 'Answer: $LETTER' (without quotes) "
                      "where LETTER is one of the options. "
                      "Think step by step before answering.")
      
  • 解析器优化:在_parse_multi_choice_response函数中添加正则表达式匹配,优先查找"Answer: X"模式:

    answer_matches = re.findall(r"[Aa]nswer\\s*:\\s*\\*?\\*?\\s*\\(?([A-Z])\\)?", response)
    if answer_matches:
        candidate = answer_matches[-1]
        if candidate in all_choices:
            return candidate
    

  • test/registered/vlm/test_vlm_tp4.py

    • 新增测试类TestVLMTP4,配置Qwen3.5-27B模型在TP=4下运行,设置服务器参数并执行MMMU评估。
    • 关键参数包括--tp-size 4和准确性阈值验证(MMMU_ACCURACY_THRESHOLD = 0.65)。

评论区精华

gemini-code-assist[bot]在review中提出两点改进:

"The regex is currently case-sensitive for the answer letter ([A-Z]). While the prompt instructs the model to use a specific format, models may occasionally output lowercase letters (e.g., Answer: a). Making this check case-insensitive would improve the robustness of the parser."

"These arguments (--mamba-*) are specific to Mamba/SSM architecture models. Since Qwen3.5 is a Transformer-based model, these flags are irrelevant and should be removed to avoid confusion and ensure the configuration is clean."

这些建议聚焦于正确性和设计优化,可能已在合并前采纳,以增强代码健壮性和可维护性。

风险与影响

  • 风险:解析器变更可能意外影响其他依赖MMMU评估的测试,如果正则表达式未完全覆盖模型输出变体,可能导致解析失败。新增CI测试可能增加运行时资源消耗,影响CI流水线效率。prompt指令的普适性有限,可能不适用于所有VLM模型。
  • 影响:正面影响显著,提升了VLM测试的全面性和评估准确性,为团队提供了更可靠的性能基准;负面影响可控,但需监控CI稳定性和评估一致性。

关联脉络

从历史PR看,本PR是VLM和多模态测试演进的一部分:

  • PR 21767:添加VLM相关CI测试,扩展量化模型覆盖,与本PR共同完善测试基础设施。
  • PR 21873:优化评估测试的网络超时设置,与本PR的评估逻辑改进相辅相成,提升测试鲁棒性。
    这些关联显示团队在持续增强多模态测试的覆盖和可靠性,为未来功能开发奠定基础。

参与讨论