# PR #49551 完整报告

- 仓库：`vllm-project/vllm`
- 标题：[ROCm][CI] Language Models tests tiny-mixtral with aiter fix
- 合并时间：2026-07-24 03:01
- 原文链接：http://prhub.com.cn/vllm-project/vllm/pull/49551

---

# 执行摘要

- 一句话：移除对 tiny-mixtral 的 aiter rmsnorm/MOE 禁用
- 推荐动作：该 PR 是清理性质的代码删除，值得阅读以理解之前数值问题的解决过程和 pytest hook 陷阱。对于 ROCm 平台维护者，这是及时的技术债务清理。

# 功能与动机

PR body 指出，在 ROCm 的 aiter 测试中，TitanML/tiny-mixtral 模型由于未训练导致 logprob 分布近乎均匀，对 bf16 舍入差异敏感。之前通过设置环境变量 `VLLM_ROCM_USE_AITER_RMSNORM=0` 和 `VLLM_ROCM_USE_AITER_MOE=0` 来禁用 aiter 的 rmsnorm 和 MOE 内核以通过测试。但该禁用是通过 `pytest_sessionstart` 实现的，而测试套件运行时的根目录不同，导致 hook 未生效。现在 aiter 内核已修复，测试可以完全使用 aiter 通过，因此移除这些禁用标志。

# 实现拆解

1. 在文件 `tests/models/language/generation/test_common.py` 的 `test_models` 函数中，移除了针对 `TitanML/tiny-mixtral` 模型的特殊处理分支。
2. 该分支原本会通过 `monkeypatch.setenv` 设置环境变量以禁用 aiter 的 rmsnorm 和 MOE 内核。
3. 现在当 `use_rocm_aiter=True` 且模型在 `AITER_MODEL_LIST` 中时，只设置 `VLLM_ROCM_USE_AITER=1`，不再区分模型是否 tiny-mixtral。
4. 移除的代码包括 8 行注释和 `monkeypatch.setenv` 调用，还删除了一个针对 tiny-mixtral 的嵌套条件。

关键文件：
- `tests/models/language/generation/test_common.py`（模块 测试；类别 test；类型 test-coverage）: 这是唯一修改的文件，删除了针对 tiny-mixtral 的 aiter rmsnorm 和 MOE 禁用逻辑，共 8 行代码。

关键符号：未识别

## 关键源码片段

### `tests/models/language/generation/test_common.py`

这是唯一修改的文件，删除了针对 tiny-mixtral 的 aiter rmsnorm 和 MOE 禁用逻辑，共 8 行代码。

```python
# tests/models/language/generation/test_common.py 中 test_models 函数片段
if use_rocm_aiter and (model in AITER_MODEL_LIST):
    monkeypatch.setenv("VLLM_ROCM_USE_AITER", "1")
    # 移除以下代码块：
    # if model == "TitanML/tiny-mixtral":
    # # Untrained model: near-uniform logits make argmax sensitive to
    # # AITER's bfloat16 rounding error...
    # monkeypatch.setenv("VLLM_ROCM_USE_AITER_RMSNORM", "0")
    # monkeypatch.setenv("VLLM_ROCM_USE_AITER_MOE", "0")
elif use_rocm_aiter and model not in AITER_MODEL_LIST:
    pytest.skip(f"Skipping '{model}' model test with AITER kernel.")

```

# 评论区精华

只有一条来自 claude[bot] 的自动评论，提示 PR 来自 fork 无法自动审查。随后 AndreasKaratzas 批准了 PR，没有进一步的讨论。

- 自动审查因 fork 被禁用 (other): 无需要解决的讨论；AndreasKaratzas 随后批准了 PR，未进一步讨论。

# 风险与影响

- 风险：风险极低。被删除的代码之前因 pytest hook 作用域问题从未在测试中生效，因此移除不会引入回归。aiter 内核的修复已经通过测试验证（15 passed, 0 failed）。但如果 aiter 内核修复不完全，tiny-mixtral 模型在特定场景下可能再次出现数值不稳定性。
- 影响：影响范围仅限于 ROCm 平台上的 tiny-mixtral 模型测试。用户不会有功能感知，测试通过数从 13 提升到 15，运行时间从 980s 缩短到 631s（减少了 35%），因为不再需要为 tiny-mixtral 回退到原生内核。
- 风险标记：暂无

# 关联脉络

- PR #36101 previous fix for tiny-mixtral aiter issue: PR #36101 详细分析了 tiny-mixtral 在 aiter 下的数值问题，并首次禁用了 rmsnorm。
- PR #45509 disable MOE for aiter tiny-mixtral: PR #45509 在 #36101 基础上额外禁用了 MOE 内核以解决 tiny-mixtral 的数值问题。
- PR #31597 torch sdp changes for aiter: PR #31597 因 tiny-mixtral 测试不准确引入了 torch sdp 相关更改，与本次清理的数值问题相关。