Prhub

#49727 [Bugfix] Register axk1 config to fix A.X-K1 init

原始 PR 作者 djramic 合并时间 2026-07-25 03:57 文件变更 3 提交数 2 评论 0 代码增减 +4 / -3

执行摘要

注册 axk1 模型配置,修复 A.X-K1 初始化失败

AXK1ForCausalLM 在初始化时因 AXK1Config 未被注册到 _CONFIG_REGISTRY,导致配置解析回退到 HF AutoConfig,而 AutoConfig 无法识别 model_type: axk1,抛出 ValueError。

该 PR 值得精读,因为展示了如何在 vLLM 中注册新模型配置,以及处理模型类型大小写问题。可作为后续添加新模型的参考。

讨论亮点

无 review 实质性讨论,只有 Claude bot 自动评论和 maintainer 的 approve。变更简单直接,没有争议。

实现拆解

  1. 注册模型配置:在 vllm/transformers_utils/config.py_CONFIG_REGISTRY 字典中添加 axk1="AXK1Config" 条目,使得 vLLM 能在解析 axk1 模型类型时找到正确的配置类。
  2. 统一 model_type 大小写:在 vllm/transformers_utils/configs/AXK1.py 中将 AXK1Config.model_type"AXK1" 改为 "axk1",与 HuggingFace 社区的约定保持一致,避免大小写混淆。
  3. 修复 MLA 检测中的大小写:在 vllm/transformers_utils/model_arch_config_convertor.pyis_deepseek_mla() 方法中,将 "AXK1" 改为 "axk1",确保 MLA 检测逻辑与新的 model_type 一致。
文件 模块 状态 重要度
vllm/transformers_utils/model_arch_config_convertor.py 工具库 modified 5.18
vllm/transformers_utils/configs/AXK1.py 模型配置 modified 4.82
vllm/transformers_utils/config.py 配置注册 modified 4.58

关键符号

is_deepseek_mla

关键源码片段

vllm/transformers_utils/model_arch_config_convertor.py data-contract

修复 MLA 检测中模型类型大小写不匹配,将 `AXK1` 改为 `axk1`,避免检测错误。

def is_deepseek_mla(self) -> bool:
    # 检查 model_type 是否属于 MLA 架构的模型列表
    if not hasattr(self.hf_text_config, "model_type"):
        return False
    elif self.hf_text_config.model_type in (
        "axk1", # 原为 "AXK1",统一为小写以匹配 model_type 定义
        "deepseek_v2",
        "deepseek_v3",
        "deepseek_v32",
        "deepseek_v4",
        "deepseek_mtp",
        "glm_moe_dsa",
        "glm4_moe_lite",
        "glm4_moe_lite_mtp",
        "kimi_k2",
        "kimi_linear",
        "longcat_flash",
        "longcat_flash_ngram",
        "pangu_ultra_moe",
        "pangu_ultra_moe_mtp",
        "bailing_hybrid",
        "bailing_hybrid_mtp",
    ):
        # 根据 compress_ratios 区分 deepseek_v4
        if hasattr(self.hf_text_config, "compress_ratios"):
            return getattr(self.hf_text_config, "head_dim", None) is not None
        else:
            return getattr(self.hf_text_config, "kv_lora_rank", None) is not None
    elif self.hf_text_config.model_type == "eagle":
        return (
            self.hf_text_config.model.model_type
            in (
                "axk1", # 同样修复大小写
                "deepseek_v2",
                # ...
            )
            and getattr(self.hf_text_config, "kv_lora_rank", None) is not None
        )
    return False
vllm/transformers_utils/config.py core-logic

在 _CONFIG_REGISTRY 中注册 axk1 模型类型,使其能正确解析 AXK1Config。

_CONFIG_REGISTRY: dict[str, type[PretrainedConfig]] = LazyConfigDict(
    afmoe="AfmoeConfig",
    arctic="ArcticConfig",
    axk1="AXK1Config", # 新增:注册 axk1 模型类型到 AXK1Config
    bagel="BagelConfig",
    # ... 其他配置保持不变
)

评论区精华

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

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

风险与影响

此 PR 风险极低,仅涉及三个文件的微小修改。可能的风险包括:如果其他代码硬编码了 "AXK1" 大写的 model_type 且未同步更新,会导致兼容性问题,但已检查主要代码路径并修复。

对用户:修复了 skt/A.X-K1 模型无法在 vLLM 中加载的问题。对系统:无性能或稳定性影响。对团队:无负面协作影响。

影响范围小

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论