Prhub

#49786 [Model] Remove Ouro

原始 PR 作者 hmellor 合并时间 2026-07-25 17:50 文件变更 4 提交数 1 评论 1 代码增减 +1 / -451

执行摘要

移除废弃的 Ouro 模型实现及注册

Ouro 模型发布已约一年,被 Plamo3 替代,在 vLLM 中使用很少,已被标记为待删除。移除以简化代码库维护。

值得关注模型清理流程,尤其是如何通过 _PREVIOUSLY_SUPPORTED_MODELS 维护向后兼容性。对于模型维护者可参考此 PR 规范废弃模型。

讨论亮点

无实质讨论;由维护者 DarkLight1337 直接批准合并。

实现拆解

  1. 删除模型实现:完全移除 vllm/model_executor/models/ouro.py,包含 OuroMLPOuroAttentionOuroDecoderLayerOuroModelOuroForCausalLM 等所有类。
  2. 更新模型注册表:在 registry.py 中从 _TORCH_MODEL_CLASSES 字典中移除 OuroForCausalLM 映射,同时在 _PREVIOUSLY_SUPPORTED_MODELS 字典中添加 "OuroForCausalLM": "0.26.0",确保用户加载旧模型时收到版本提示。
  3. 测试同步:从 tests/models/registry.py_HF_EXAMPLE_MODELS 字典中移除 Ouro 测试示例,避免 CI 尝试下载 Ouro 权重。
  4. 文档更新:从 docs/models/supported_models.md 支持模型表格中删除 Ouro 模型行。
文件 模块 状态 重要度
vllm/model_executor/models/ouro.py 模型实现 removed 9.17
vllm/model_executor/models/registry.py 模型注册 modified 5.1
tests/models/registry.py 模型测试 modified 3.49
docs/models/supported_models.md 文档 modified 1.39

关键符号

OuroMLP OuroAttention OuroDecoderLayer OuroModel OuroForCausalLM

关键源码片段

vllm/model_executor/models/ouro.py deletion

主要变更文件,删除整个 Ouro 模型实现,共 448 行。

# SPDX-License-Identifier: Apache-2.0
# 此文件在 PR #49786 中被完全删除。
# 以下代码是原始的 OuroMLP 实现,保留以供参考。class OuroMLP(nn.Module):
    def __init__(
        self,
        hidden_size: int,
        intermediate_size: int,
        hidden_act: str,
        quant_config: QuantizationConfig | None = None,
        prefix: str = "",
    ) -> None:
        super().__init__()
        self.gate_up_proj = MergedColumnParallelLinear(
            hidden_size,
            [intermediate_size] * 2,
            bias=False,
            quant_config=quant_config,
            prefix=f"{prefix}.gate_up_proj",
        )
        self.down_proj = RowParallelLinear(
            intermediate_size,
            hidden_size,
            bias=False,
            quant_config=quant_config,
            prefix=f"{prefix}.down_proj",
        )
        if hidden_act != "silu":
            raise ValueError(
                f"Unsupported activation: {hidden_act}. Only silu is supported for now."
            )
        self.act_fn = SiluAndMul()
​
    def forward(self, x):
        gate_up, _ = self.gate_up_proj(x)
        x = self.act_fn(gate_up)
        x, _ = self.down_proj(x)
        return x

评论区精华

没有提炼出高价值讨论线程

当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。

风险与影响

风险极低。Ouro 模型使用率低且已被标记废弃。_PREVIOUSLY_SUPPORTED_MODELS 机制确保加载旧权重时提示不支持的版本,而非静默失败。无需担心回归。

用户侧:升级后 Ouro 模型不再支持,需固定 vLLM 版本。系统侧:减少模型加载路径和构建时间,小幅减少代码体积。团队侧:维护模型清理的最佳实践范例。

低风险 废弃模型移除

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论