分析检查清单

在开始实现适配器前使用本清单。

1)实现来源

  • 读取 config.json
  • 仅解析一种来源:
    • transformers/models/<model_type>/modeling_<model_type>.py
    • 通过 auto_map 定位模型目录内 modeling_*.py
  • 若无法解析,停止并要求用户提供实现代码

2)模型类型、结构差异与连接关系(相对常见 Qwen2)

  • 判定模型类型:纯 LLM / 多模态理解模型 / 多模态生成模型
  • 若为多模态理解模型,确认仅分析文本主干范围
  • 若为多模态生成模型,标记为不支持并停止后续适配分析
  • 记录相对常见 Qwen2 的特殊结构设计及可能影响
  • 记录特殊结构连接关系(接入位置、前后依赖、串联/并联/残差)及其对遍历/forward 的影响

3)结构特征

  • 确认 decoder 层类
  • 确认 attention 与 MLP 模块命名
  • 确认 forward 签名与关键返回值
  • 确认用于遍历的层容器路径

4)逐层量化建议(可选高阶特性)

  • 评估全量加载内存与当前环境
  • 决定是否建议逐层量化(按层加载)
  • 记录理由与预期影响
  • 若建议启用,备注:先完成基础适配与四步验证,再进入 msmodelslim-layer-wise-quantization

5)MoE 融合风险

  • 判断模型是否含 MoE
  • 若含 MoE,检查专家权重布局(独立线性层 vs 打包张量)
  • 检查 gate/up/down 是否存在按 expert 维度打包的 3D 权重
  • 标记为:无 MoE / MoE 非融合 / MoE 融合
  • 记录可能的 unpack 需求

6)适配影响要点

  • 记录 generate_model_visit 的遍历顺序预期
  • 记录 generate_model_forward 的对齐约束
  • 列出可能影响权重一致性检查的风险模块

7)量化模型风险(反量化脚本)

  • 判断模型是否“本身已量化”
  • 若已量化,要求用户主动提供反量化脚本
  • 若用户未提供反量化脚本,标记为阻塞并停止后续适配实现

8)MTP 结构风险(实现缺失)

  • 判断模型是否包含 MTP 结构
  • 若存在 MTP,检查是否能获取 MTP 实现代码
  • 若无法获取实现代码,明确告知 agent 可能无法完整实现 MTP 结构适配
  • 若用户仍需继续,提示用户需自行复制 MTP 权重