Prhub

#43784 Deprecate `JAISLMHeadModel`

原始 PR 作者 hmellor 合并时间 2026-05-29 02:29 文件变更 8 提交数 3 评论 1 代码增减 +1 / -651

执行摘要

废弃 JAISLMHeadModel 模型,移除支持

该架构已近3年历史,已被 Jais2 取代。唯一有显著下载量的检查点是 vLLM CI 使用的检查点。用户可继续使用 vLLM <= 0.22 来使用该模型。

该 PR 提供了一个良好的废弃模型清理模板,包括删除源代码、更新注册表、添加废弃记录、更新测试和文档。值得在类似场景下参考。

讨论亮点

该 PR 没有实质性的 review 讨论。仅由 Isotr0py 审批通过,无评论。说明变更合规且争议小。

实现拆解

  1. 删除模型源代码文件 vllm/model_executor/models/jais.py 和配置类文件 vllm/transformers_utils/configs/jais.py,移除所有与 JAIS 相关的类定义(JAISLMHeadModelJAISAttentionJAISMLPJAISBlock 等)。
  2. 在模型注册表 vllm/model_executor/models/registry.py 中,从 _TEXT_GENERATION_MODELS 字典移除 "JAISLMHeadModel" 条目,并添加到 _PREVIOUSLY_SUPPORTED_MODELS 中指定最后版本为 0.22.0,以便用户在升级后加载旧模型时获得清晰提示。
  3. 清理配置加载路径:在 vllm/transformers_utils/configs/__init__.pyvllm/transformers_utils/config.py 中移除 JAISConfig 的映射,避免配置类被错误加载。
  4. 更新测试文件 tests/models/registry.pytests/distributed/test_pipeline_parallel.py,移除 JAIS 相关的测试引用和用例。
  5. 更新文档 docs/models/supported_models.md,从支持模型列表中移除 JAIS。
文件 模块 状态 重要度
vllm/model_executor/models/jais.py 模型层 removed 9.36
vllm/transformers_utils/configs/jais.py 配置加载 removed 8.85
vllm/model_executor/models/registry.py 模型注册 modified 5.1
vllm/transformers_utils/configs/__init__.py 配置加载 modified 4.89
vllm/transformers_utils/config.py 配置加载 modified 4.35
tests/models/registry.py 测试 modified 3.89
tests/distributed/test_pipeline_parallel.py 测试 modified 3.11
docs/models/supported_models.md 文档 modified 1.79

关键符号

SwiGLUActivation.forward _get_alibi_slopes get_slopes_power_of_2 JAISAttention.__init__ JAISMLP JAISBlock JAISConfig.__init__ JAISConfig._alibi_scaling_validation

关键源码片段

vllm/model_executor/models/registry.py data-contract

模型注册表,移除了 JAISLMHeadModel 的映射,并添加到已废弃模型列表中。

# 活跃模型列表(部分)
_TEXT_GENERATION_MODELS = {
    # ...
    # "JAISLMHeadModel": ("jais", "JAISLMHeadModel"), # 已移除
    "Jais2ForCausalLM": ("jais2", "Jais2ForCausalLM"),
    # ...
}# 已废弃模型列表,记录最后支持的版本
_PREVIOUSLY_SUPPORTED_MODELS = {
    "JAISLMHeadModel": "0.22.0", # 用户在 v0.22.0 之后加载此模型会收到错误提示
    # ...
}
vllm/transformers_utils/configs/__init__.py core-logic

配置类映射字典,移除了 JAISConfig 的导入和导出。

# 变更后:移除 JAISConfig 相关行
_CLASS_TO_MODULE: dict[str, str] = {
    # ...
    # "JAISConfig": "vllm.transformers_utils.configs.jais", # 已删除
    "LagunaConfig": "vllm.transformers_utils.configs.laguna",
    # ...
}__all__ = [
    # ...
    # "JAISConfig", # 已从 __all__ 删除
    "LagunaConfig",
    # ...
]

评论区精华

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

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

风险与影响

风险极低。JAIS 模型已过时且有替代 Jais2。用户若仍需使用旧模型,可锁定 vLLM 版本 <= 0.22。主要风险是用户升级后未注意兼容性说明而误加载失败,但已在 registry 中添加废弃模型提示。

影响范围较小。对使用 JAIS 模型的用户是破坏性变更,但提供了明确的降级路径。对 CI 的影响是移除了该模型的测试,减少 CI 负担。对团队来说是代码清理,降低维护成本。

模型废弃 用户兼容性 降级路径

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论