Prhub

#38510 [New Model]: add support for telechat3

原始 PR 作者 1096125073 合并时间 2026-04-03 08:26 文件变更 5 提交数 2 评论 10 代码增减 +93 / -0

执行摘要

新增 TeleChat3 模型支持,扩展 vLLM 模型库。

根据PR body,TeleChat3是由中国电信人工智能研究院开发的大型语言模型,基于国内计算力。最接近的已支持模型是llama,因此需要新增支持以扩展模型库。

建议工程师精读telechat3_scaling_rope.py中的TeleChat3RoPEScaledRotaryEmbedding类实现,关注其如何继承和修改YaRN方法,以及get_rope函数中的参数传递逻辑,这对理解vLLM的RoPE扩展机制有参考价值。

讨论亮点

review中,gemini-code-assist[bot]指出两个关键问题:一是TeleChat3RoPEScaledRotaryEmbedding的__init__方法签名缺少mscale和mscale_all_dim参数,会导致TypeError;二是模型注册表条目未按字母顺序排列。作者随后修复了这些问题。此外,jeejeelee询问是否可以使用DeepseekScalingRotaryEmbedding代替,作者回应TeleChat3的旋转编码与YaRN类似,只有mscale计算方式不同,因此选择继承YaRN类。

实现拆解

实现分为四个部分:

1) 在vllm/model_executor/layers/rotary_embedding/下新增telechat3_scaling_rope.py文件,定义继承自YaRNScalingRotaryEmbedding的TeleChat3RoPEScaledRotaryEmbedding类;
2) 修改__init__.py中的get_rope函数,添加'scaling_type == "telechat3-yarn"'分支以实例化新类;
3) 在vllm/model_executor/models/registry.py中注册TeleChat3ForCausalLM,映射到llama架构;
4) 更新文档docs/models/supported_models.md和测试示例tests/models/registry.py

文件 模块 状态 重要度
vllm/model_executor/layers/rotary_embedding/telechat3_scaling_rope.py rotary_embedding added 8.0
vllm/model_executor/layers/rotary_embedding/__init__.py rotary_embedding modified 7.0
vllm/model_executor/models/registry.py model_registry modified 6.0
docs/models/supported_models.md documentation modified 4.0
tests/models/registry.py testing modified 4.0

关键符号

TeleChat3RoPEScaledRotaryEmbedding.__init__ get_rope ( 修改分支 )

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

评论区精华

构造函数签名错误 正确性

gemini-code-assist[bot] 指出 __init__ 方法缺少 mscale 和 mscale_all_dim 参数,会导致运行时错误。

结论:作者应修复签名以匹配工厂函数传递的参数。 · 已解决

模型注册表顺序 style

gemini-code-assist[bot] 建议将 TeleChat3ForCausalLM 条目按字母顺序排列。

结论:作者修复了顺序问题。 · 已解决

RoPE 变体重用 设计

jeejeelee 询问是否可以使用 DeepseekScalingRotaryEmbedding 代替,作者回应 TeleChat3 与 YaRN 类似,仅 mscale 计算不同。

结论:选择继承 YaRNScalingRotaryEmbedding,保持代码复用。 · 已解决

风险与影响

主要风险包括:

1) 新RoPE类的构造函数签名错误,可能导致运行时崩溃,但review中已识别并修复;
2) 模型注册错误可能影响加载,但基于Llama架构,风险较低;
3) 缺少对TeleChat3特定参数的完整测试覆盖,可能隐藏兼容性问题。

影响范围:对用户,增加了TeleChat3模型的支持,扩展了可部署模型选项;对系统,新增RoPE变体,不影响现有功能,但增加了代码维护复杂性;对团队,遵循了vLLM新增模型的标准模式,易于后续集成。

构造函数签名错误 缺少测试覆盖

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论