Prhub

#53650 [Doc] Add Granite 3.1 series to batch invariance tested models

原始 PR 作者 ShengleiFu 合并时间 2026-08-27 06:29 文件变更 1 提交数 3 评论 6 代码增减 +2 / -0

执行摘要

文档补充 Granite 3.1 系列批量不变性验证

根据 issue #27433 的跟踪,批量不变性(Batch Invariant)功能需要覆盖更多模型以确保广泛适用性。作者发现 Granite 3.1 系列尚未经过批量不变性验证,因此希望通过文档记录验证结果,以明确声明该系列已获支持,方便用户使用并减少误报。PR body 中明确指出“This expands model coverage to both GraniteMoeForCausalLM (MoE, top-8 routing) and GraniteForCausalLM (dense)”,且经搜索无重复验证。

该 PR 值得简要浏览,可作为文档维护的范例:展示了如何为批量不变性新增模型验证记录,以及如何回应 reviewer 的反馈。无需精读源码,但可关注其中对 MoE 模型反向测试失败的解释,理解批量不变性的边界条件。

讨论亮点

核心讨论:reviewer yewentao256 在初次 review 中要求“Could you test the model series instead of one specifc model?”,即要求验证整个 Granite 3.1 系列而非单一模型。作者回应已扩展覆盖全部四个模型(两个 MoE、两个 Dense),并补充了 dense 模型的完整通过结果。最终 reviewer 批准(APPROVED),并留言“LGTM, thanks for the work!”。无其他争议或未解决问题。

实现拆解

该 PR 仅修改文档文件 docs/features/batch_invariance.md,在已测试模型列表中添加两条记录:

  1. 在 Batch invariance has been tested and verified on the following models: 列表末尾(Phi series 之后)追加两个条目:
    • **Granite 3.1 (MoE)**: ibm-granite/granite-3.1-1b-a400m-instruct, ibm-granite/granite-3.1-3b-a800m-instruct
    • **Granite 3.1 (Dense)**: ibm-granite/granite-3.1-2b-instruct, ibm-granite/granite-3.1-8b-instruct
  2. 该修改为纯文档补充,不影响任何代码逻辑或数据结构。
  3. 测试方面:作者在 H800 上手动运行了 tests/v1/determinism/test_batch_invariance.py 套件,覆盖三个后端(FLASH_ATTN、TRITON_ATTN、FLEX_ATTENTION),并记录了每个模型的通过/失败情况。但 PR 未包含自动化测试代码改动。
文件 模块 状态 重要度
docs/features/batch_invariance.md 文档 modified 1.54

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

评论区精华

验证整个系列而非单一模型 question

reviewer yewentao256 要求作者验证 Granite 3.1 系列而非特定模型。

结论:作者扩展覆盖至四个模型,包括两个 MoE 和两个 Dense,并验证通过。 · 已解决

风险与影响

本 PR 为纯文档变更,不引入回归、安全或性能风险。唯一潜在风险是文档中声明的模型可能在未来的 vLLM 版本中因代码变更而不再满足批量不变性,导致用户依赖失效。但该风险属于所有文档声明的固有风险,且验证套件本身已存在(test_batch_invariance.py),未来回归可通过 CI 发现。

影响范围极小,仅涉及文档变更。对用户:明确告知 Granite 3.1 系列可通过批量不变性获得确定性输出,方便依赖此特性(如 RL 训练)的用户。对系统:无影响。对团队:为后续模型验证提供了参考示例。

文档声明可能因未来代码变更失效

关联 Issue

#27433 [Feature]: Batch Invariant Feature and Performance Optimization

完整报告

参与讨论