msModelSlim 适配器功能性验证 Skill
SkillAI & modelsPerforms functional verification for msModelSlim adapters. Intended for use after basic adapter development, it automatically runs a four-step verification (test model, full-fallback quantization, weight consistency and load/save, and actual quantization rule validation) and outputs a pass/fail conc
Available today. Use it from your connected AI after setup.
No other account needed.
Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
Then ask your AI: use the msModelSlim 适配器功能性验证 Skill skill
What this skill tells your AI
The instructions your AI receives, as published by kali20gakki/msagent in skills/quantizer/msmodelslim-adapter-verification/SKILL.md and read by ahel’s review.
用于在基础适配器开发完成后,自动帮助用户进行功能性验证。
触发条件
msmodelslim-model-adapt已完成适配器开发与注册安装。- 用户希望确认适配器是否可用,或要求执行标准验证流程。
执行要求
- 必须按顺序执行四步验证,不可跳步。
- 每一步失败都要立即停止并返回失败原因与下一步修复建议。
- 仅当四步全部通过时,返回“功能性验证通过”。
- 修改代码后要执行
bash install.sh重新安装msModelslim - NPU 卡号选择(仅 DiT 适用):执行任何 NPU 步骤前必须先
export ASCEND_RT_VISIBLE_DEVICES=<物理卡号>(如export ASCEND_RT_VISIBLE_DEVICES=0;不设置时 CANN 默认用 0 号卡且不报错)。--device仅接受字面量npu/cpu(不要传npu:0/npu:x)。完整说明见references/verification_guide.md的"设备与卡号选择"小节。 - 若验证过程中出现模型实现文件(如权重目录内
modeling_*.py)报错,必须先判断是否为transformers版本不契合导致。 - 对疑似版本不契合问题,必须先告知用户并确认版本需求(目标版本或可接受版本区间);未确认前不得切换版本。
- 仅在用户确认后,才可执行
transformers版本切换与重试验证。
四步验证流程
- Step1:生成随机权重测试模型。
- Step2:执行全回退量化,验证流程与注册生效。DiT 先
export ASCEND_RT_VISIBLE_DEVICES=<物理卡号>,再传--device npu+--inference-repo,配置模板见references/dit/。 - Step3:验证 Step2 与 Step1 的权重严格一致,且产物可完整加载/保存。
- Step4:执行实际量化(W8A8 静态/动态)并校验描述文件规则。
模型族与 Step1 随机权重
| 族 | 是否推荐随机权重 | 备注 |
|---|---|---|
| LLM | 推荐 | transformers.AutoModel* 提供统一入口,2 层小模型便宜 |
| VLM | 推荐 | 同上,走 AutoModelForImageTextToText |
| DiT | 不推荐 | 各厂商 inference repo 加载范式分裂(diffusers / 自定义 class / MoE 子目录),无统一随机权重工厂。请用 step1 --skip-random-model 走零拷贝路径:step1 只校验,step2/step3 直接消费 model_path。 |
--skip-random-model 行为:
- 不构造随机权重,不复制权重,不写任何东西到
--output-path。 - 只做最小校验:
--model-path是目录;顶层(或 DiT 每个*_model子目录的)config.json存在且为合法 JSON。 - step2 直接消费
--model-path;step3 通过--reference-weights指向同一路径做权重对比,避免先复制再比对的多余 IO。 - 设计动机:Wan2.2-T2V-A14B 等大型 DiT 模型动辄几十 GB,复制一份要数分钟并占双倍磁盘;透传原路径实现零拷贝。
Step3 基线来源
| 参数 | 含义 |
|---|---|
--original-path | step2 量化输入的目录。skip 模式下一般传 --model-path 的同值(因为 step2 直接从这里读),但严格说 step2 不强制要求它等于 step1 的输出。 |
--reference-weights | 显式基线目录,覆盖 --original-path 作为对比左值。skip 模式下必须指向用户提供/已下载的真实模型目录(即 --model-path)。 |
Buffer 权重说明(Step3 常见问题)
- 若 Step3 出现“全回退权重缺失/键不一致”,需优先检查缺失项是否来自模型
buffer。 msmodelslim通常不会保存buffer类型权重,因此可能导致全回退产物缺少对应键。- 适配器需要主动将这类关键
buffer转为nn.Parameter,以确保量化导出和一致性校验可覆盖该权重。
transformers 版本兼容处理(验证期)
- 触发条件:验证阶段出现模型实现文件导入/模型forward错误,且报错指向
transformersAPI 变更、缺失符号或签名不匹配。 - 必做沟通:向用户说明“当前报错疑似版本兼容问题”、给出关键报错摘要、请求确认目标版本策略(指定版本或版本区间)。
- 搜索策略:获用户确认后,使用二分法在确认范围内搜索可用
transformers版本(每次切换版本后需重装并重跑触发失败的验证步骤)。 - 收敛标准:找到“可成功加载并通过对应验证步骤”的版本后停止搜索,并将最终版本写入msModelslim的config.ini。
- 失败处理:若二分搜索后仍无可用版本,返回阻塞结论并要求用户提供官方建议版本或模型实现修订方案。
权重安全(必读)
四步验证不应该碰原始权重。step3 / step4 只读;step1 的 --skip-random-model
只做 JSON 校验、不写盘;step1 随机权重路径与 step2 只写 --output-path。
step1/step2 硬拒绝任何会写进原始权重目录的 --output-path:
output_path == model_path、output_path 在 model_path 内部、或 output_path
是 model_path 的父目录,一律 fail-fast。
DiT 永远不要就地改写原始权重——要零拷贝消费真实权重就用 --skip-random-model,
那条路径一个字节都不写。要小模型就写到独立目录。
自动化脚本
scripts/step1_generate_test_model.pyscripts/step2_run_quantization.py(LLM / VLM)scripts/step2_run_quantization_dit.py(DiT;独立脚本,自带预检与推理仓注入)scripts/step3_verify_weights.pyscripts/step4_verify_quant_description.py
配置模板
step2 的全回退配置不再内联在脚本里,统一从 references/<family>/fallback_config.yaml 读取;
step4 的全模型量化模板在同目录。改配置直接改 YAML,不要改脚本。
| family | 模板目录 | apiversion |
|---|---|---|
| llm | references/llm/ | modelslim_v1 |
| vlm | references/vlm/ | multimodal_vlm_modelslim_v1 |
| dit | references/dit/ | multimodal_sd_modelslim_v1 |
DiT 专有参数(见 references/dit/README.md):
| 参数 | 说明 |
|---|---|
--calib-dataset | 写入 spec.dataset。缺省时用 references/dit/index.example.jsonl 在 <output-path>/calib_data/ 生成一份自建校准集并指向它 |
--inference-config-json | JSON 串或文件,合并进 multimodal_sd_config.inference_config。全回退阶段可不传 |
--inference-repo | 推理仓路径,设 WAN_INFERENCE_REPO 并前插 PYTHONPATH。Wan 系必传,否则 ImportError: Failed to import WanModel |
step2 在调用 msmodelslim 之前会对最终配置做一轮预检(spec.dataset 必填且为 str、
enable_dump 应为 false(DiT data-free 不 dump 校准数据,true 会告警)、
apiversion 与 family 匹配、校准集路径可解析)。
--config-path 指定的现成配置同样过预检。
DiT 模板的三条硬约束与 inference_config 字段速查在 references/dit/README.md,
按需读取——非 DiT 任务不必加载。
参考资料
输出格式要求
- 给出每一步的执行结果(PASS/FAIL)。
- 若失败,标注失败步骤、错误要点、建议修复方向。
- 最后给出总结结论:通过 / 未通过。
Signals
- GitHub stars
- 31
- Forks
- 8
- Last commit
- Sep 2026
Advanced
- Item type
- skill
- Key
msmodelslim-adapter-verification- Source
- github.com/kali20gakki/msagent