Skip to content
cccskills
FreePublished on GitHub

quant-tuning-quantize-dit

对 DiT(扩散/多模态生成)模型执行 W8A8 动态(data-free)或 W8A8 MXFP8(data-free)量化。覆盖 HunyuanVideo、Wan2.2-T2V/I2V/TI2V、FLUX.1-dev(已迁移)、SD3、Sana、HunyuanDiT、CogViewX 等。

YAML apiversion 固定 multimodal_sd_modelslim_v1,统一 MultimodalPipelineInterface 重构路径(不再保留 LegacyMultimodalPipelineInterface)。

模板与字段以 msmodelslim/model/hunyuan_video/model_adapter.py(唯一已迁移到重构路径且 lab_practice YAML 已 validated 的 DiT)为参考;其它 DiT 需按各自推理仓的 `parse_args` 调整字段集合。

data-free 指不引入外部激活校准数据,spec.dataset(校准集短名,短名如 wan2_2_t2v;enable_dump: false 时不参与 dump)仍必填;精度调优通过下游经验库 L2 §7 + 直接调 `quantization-expert-experience-tuning-rules/scripts/apply_rollback.py`(整层回退)扩展 exclude 列表,闭环由 `quantization-accuracy-tuning-orchestrator` 调度。

The English summary is being prepared. Showing the original description.

See how to install

Files included (6)

  • SKILL.md15.7 KB
  • assets/calib_dataset.md2.7 KB
  • assets/index.example.jsonl395 B
  • assets/w8a8_dynamic.example.yaml5.5 KB
  • assets/w8a8_mxfp8.example.yaml5.0 KB
  • references/error_handling.md3.5 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Skill: DiT 量化(W8A8 动态 / MXFP8)

解决什么

依据 Practice YAML(apiversion: multimodal_sd_modelslim_v1),调用 msmodelslim quant 对 DiT 模型执行 W8A8 动态(data-free) 或 W8A8 MXFP8(data-free) 量化;走 MultimodalPipelineInterface 重构路径。

不解决什么

  • 本 skill 不做敏感层分析 / 摸高 / 二分:那些能力由 msmodelslim-model-adapt(DiT 扩展节)+ 经验库 L2 §7 + 直接调 apply_rollback.py 接力;本 skill 只负责按最终 Practice YAML 执行量化
  • 本 skill 不消费抑制策略参数:本阶段不直接接受 smooth / quarot / iter_smooth / flex_smooth_quant / awq 等;如需引入,由下游 practice 子能力补齐 YAML 字段后再回到本 skill 重新执行
  • 不替代 LLM 量化路径:本 skill 仅服务 model_family ∈ dit

spec.dataset(校准集短名;enable_dump: false 时不参与 dump,仅作回退/复现用)不在此列 —— 它是必填项,见「校准数据 spec.dataset」。

协作关系

quantization-accuracy-tuning-orchestrator (workflow)
        │  按 model_family 路由到 dit 分支
        ▼ 调用
quant-tuning-quantize-dit (tool)
        │
        ▼ MultimodalSDModelslimV1QuantService
  MultimodalPipelineInterface(重构路径)
        │
        ▼ CLI
  msmodelslim quant
        │
        ▼ 输出(MindIE-SD 格式)
  {workdir}/round_1/quantized/

输入参数

参数类型必填说明
model_pathstring✅原始 DiT 权重目录(diffusers 标准布局)
adapter_pathstring✅DiT 适配器 .py(来自 msmodelslim-model-adapt 的 DiT 扩展节)
output_dirstring✅量化产物保存路径;推荐 {workdir}/round_1/quantized/
model_typestring✅msModelSlim 注册名(如 HunyuanVideo、Wan2.2-T2V-A14B、Wan2.2-I2V-A14B、Sana);先前以 flux1 / wan2_1 注册的 model_type 在本项目中按重构路径对待
devicestring✅设备类型;必须传 npu(不要传 npu:0 / npu:x 等带卡号的形式);具体卡号通过环境变量 ASCEND_RT_VISIBLE_DEVICES 指定,例如 export ASCEND_RT_VISIBLE_DEVICES=0
trust_remote_codebool默认 true
inference_repostring推理仓路径(若 adapter 需要注入 sys.path);需确保该路径已加入 PYTHONPATH,e.g. export PYTHONPATH=/path/to/hunyuan_video:$PYTHONPATH
calib_datasetstring写入 YAML spec.dataset 的短名或路径;默认按 model_type 取 lab_calib 现成 prompt 集(见「校准数据 spec.dataset」)

本阶段不直接消费:smooth、quarot、iter_smooth、flex_smooth_quant、awq、kv_quant 等抑制策略参数。这些策略的字段变更由 orchestrator 直接调 quantization-expert-experience-tuning-rules/scripts/apply_rollback.py(整层回退)在 YAML 上叠加 exclude 后再回到本 skill 执行量化。

CLI 调用

方式一:使用 Practice YAML(推荐)

ASCEND_RT_VISIBLE_DEVICES=0 msmodelslim quant \
  --model_path "${MODEL_PATH}" \
  --config_path "${WORKDIR}/practice.yaml" \
  --save_path "${OUTPUT_DIR}" \
  --device npu \
  --model_type "${MODEL_TYPE}" \
  --trust_remote_code True

--device 仅接受字面量 npu;不要传 npu:0 / npu:x 等带卡号的形式。卡号一律通过 ASCEND_RT_VISIBLE_DEVICES 环境变量指定(如 ASCEND_RT_VISIBLE_DEVICES=0,1 多卡)。

YAML apiversion 固定为 multimodal_sd_modelslim_v1,模板见 assets/w8a8_dynamic.example.yaml。

量化方案由 Practice YAML(--config_path)给定,不使用 --quant_type(与非 DIT 的 quant-tuning-quantize 口径一致:--config_path 与 --quant_type 互斥)。

量化方案细节

  • 权重:per-channel INT8 / per-block MXFP8
  • 激活:动态量化 per-token INT8 / per-block MXFP8
  • 不引入外部激活校准数据:data-free 指不引入激活校准集;spec.dataset 仍必须显式写(省略会落到默认 mix_calib.jsonl 并失败;enable_dump: false 时该集不参与 dump,仅作回退/复现用)
  • dynamic 量化需 enable_dump: false:DiT data-free 路径不 dump 校准数据,enable_dump: false 短路 prepare_calib_data、避免无谓浮点推理;true 仅在确需浮点推理 dump 校准数据时显式开启(见 msmodelslim-adapter-verification/references/dit/README.md 硬约束 #2)
  • 不直接消费抑制策略:smooth / quarot / iter_smooth / flex_smooth_quant / awq 等字段不在本 skill CLI 暴露;如需引入,由 orchestrator 直接调 quantization-expert-experience-tuning-rules/scripts/apply_rollback.py(整层回退)在 YAML 上补齐 spec.process / spec.algorithm_config 后再回到本 skill 重新执行

对称 / 非对称:模板已显式固化 symmetric: true(minmax);如需非对称,先确认 msmodelslim 默认值再修改模板。

校准数据 spec.dataset(必填)

MultimodalSDServiceConfig.dataset 的 Pydantic 默认值是 mix_calib.jsonl —— LLM 文本校准集,每条只有 inputs_pretokenized、无 text,会在 handle_dataset → validate_calib_samples 处 fail-fast(Provide text in dataset entries)。省略 dataset 不等于 data-free,只是静默落到一个错误的默认值。

短名在 msmodelslim/lab_calib/ 下解析,现成 prompt 集:

短名场景内容
hunyuanvideoHunyuanVideotext
wan2_2_t2vWan2.2-T2V-A14Btext
wan2_2_i2vWan2.2-I2V-A14Btext + image(i2v_input.JPG)
wan2_2_ti2vWan2.2-TI2V-5Btext

自建校准集:目录内放一个 index.jsonl,每行一个 JSON 对象、至少含非空 text;I2V 等场景追加 image(相对 index.jsonl 所在目录)。模板见 assets/index.example.jsonl,完整说明见 assets/calib_dataset.md。

spec:
  dataset: wan2_2_t2v                     # 或 /abs/path/to/my_calib/index.jsonl

YAML 模板要点

spec.multimodal_sd_config 使用 inference_config(Pydantic 校验,与原推理仓 CLI 对齐):

字段值
dump_config.enable_dumpfalse(DiT data-free 不 dump 校准数据,短路 prepare_calib_data;勿设 true 触发无谓浮点推理)
dump_config.capture_mode"args"
dump_config.dump_data_dir""(留空 → 默认 save_path)
inference_configPydantic BaseModel 子类字段(字段名必须与目标推理仓 parse_args argparse key 一一对应)

关键约束:

  • dynamic 量化需 enable_dump: false:DiT data-free 路径不 dump 校准数据,短路 prepare_calib_data、避免无谓浮点推理;true 仅在确需浮点推理 dump 校准数据时显式开启(详见 msmodelslim-adapter-verification/references/dit/README.md 硬约束 #2)。
  • 必须显式写 spec.dataset(短名 / 绝对路径),省略会落到默认 mix_calib.jsonl 并失败,见上节。
  • spec.process 本阶段仅触发 linear_quant;spec.save 默认 mindie_format_saver。
  • YAML 顶层除 apiversion / metadata / spec 外禁止额外字段:model_family / inference_repo 通过 subagent_io 协议字段传递,不写入量化 YAML。
  • INT8 动态量化推荐 act.scope: "per_token" / weight.scope: "per_channel";不要用 per_block(那是 mxfp8 配置)。
  • inference_config 字段名按目标 DiT 推理仓的 argparse 命名差异较大:详见 inference_config_field_map.md(统一字段表 + 默认值 + 入口脚本 + 定位方法)。
    • 推理入口脚本名因仓而异(Wan 系 generate.py、FLUX inference_flux.py、HunyuanVideo sample_video.py);定位方法:在 inference_repo 的 README.md 找推理示例命令,再到 <repo>/config.py / <repo>/hyvideo/config.py 找 parse_args 的 --<key> 列表
  • 模板见 assets/w8a8_dynamic.example.yaml(以 HunyuanVideo 为参考)。

save_path 命名

  • 与 LLM 路径一致:{workdir}/round_{N}/quantized(N 为调优轮次,DiT 阶段通常固定为 1)
  • 权重目录为 MindIE-SD 格式(与 LLM/VLM 不同),可被 msmodelslim CLI 正常加载(save/load round-trip)

输出结果

成功

{
  "protocol": "msagent.subagent_io",
  "subagent_type": "quant-tuning-quantize-dit",
  "status": "ok",
  "output": {
    "success": true,
    "quantized_path": "<workdir>/round_1/quantized",
    "save_format": "mindie_format_saver",
    "apiversion": "multimodal_sd_modelslim_v1",
    "exit_code": 0,
    "duration_sec": 123.4,
    "round_trip_check": "passed",
    "commands": [
      {
        "name": "quantize",
        "command": "msmodelslim quant --model_path ... --config_path ... --model_type HunyuanVideo ..."
      },
      {
        "name": "round_trip_check",
        "command": "msmodelslim quant --model_path <quantized_path> --config_path <practice.yaml> --save_path /tmp/rt_check"
      }
    ]
  }
}

失败

立即中止,回传:

{
  "protocol": "msagent.subagent_io",
  "subagent_type": "quant-tuning-quantize-dit",
  "status": "failed",
  "error": {
    "code": "QUANTIZE_ERROR",
    "message": "msmodelslim quant 执行失败摘要",
    "suggestion": "报 stderr 摘要,等待 orchestrator 决策"
  }
}

不续跑其它命令,不伪造输出。

失败信封格式与 subagent_io_protocol.md 一致(error.code + error.message);code 枚举、各场景的 suggestion 及处理原则见 references/error_handling.md。

错误处理

错误现象error.code处理
msmodelslim 未安装 / PYTHONPATH 未设置ENV_ERROR按 quantization-accuracy-tuning-orchestrator/references/prepare_environment.md 安装后重试
model_path / adapter_path / inference_repo 不存在或未加入 PYTHONPATHPATH_ERROR检查路径 / export PYTHONPATH=... 后重试或中止
误传 --quant_type 或 --quant_type 值非法;YAML apiversion 不是 multimodal_sd_modelslim_v1CONFIG_ERROR立即中止(防止误用其它方案 / LLM·VLM YAML),不重试
Adapter not registered: <model_type>ADAPTER_ERROR见 msmodelslim-model-adapt/references/registration_guide.md
Round-trip failed: shape mismatchADAPTER_ERROR检查 handle_dataset 输出字段是否对齐 forward
out of memoryOOM_ERROR换设备或减小输入尺寸
Provide text in dataset entries(漏写 spec.dataset 落到默认 mix_calib.jsonl)DATASET_ERRORYAML 显式写 spec.dataset(如 wan2_2_t2v)
calib_data missing for expert 'low_noise_model'EXPERT_CONFIG_ERROR检查 init_model 返回 dict 与 prepare_calib_data;立即中止
量化命令非零退出QUANTIZE_ERROR报 stderr 摘要,等待 orchestrator 决策
round-trip 校验失败ROUND_TRIP_ERROR报 stderr 摘要,标记 round_trip_check: failed,回传失败

各 code 的典型场景、suggestion 与处理原则详见 references/error_handling.md。未命中本表或多次解决仍失败时,按失败信封(code + message + suggestion)回传 orchestrator。

磁盘管理

  • 量化产物写入 output_dir
  • 由 orchestrator 管理磁盘空间(最多保留 2 份权重)
  • 本 skill 不主动清理历史产物

约束

  • 错误即停:命令失败后立即中止,不兜底续跑
  • 单轮单次:每次调用只执行一次量化
  • YAML apiversion 固定 multimodal_sd_modelslim_v1
  • 量化方案由 YAML 给定:Practice YAML 模板即动态配置;--config_path 与 --quant_type 互斥,不使用 --quant_type
  • save_path 命名:每轮使用 {workdir}/round_{N}/quantized
  • device:--device 仅接受字面量 npu(不要传 npu:0 / npu:x);卡号一律通过 ASCEND_RT_VISIBLE_DEVICES 环境变量指定,优先使用单卡(如 export ASCEND_RT_VISIBLE_DEVICES=0)

检查清单

  • model_path 存在且含 model_index.json(diffusers 布局)
  • adapter_path 存在且 model_family 为 dit
  • YAML apiversion: multimodal_sd_modelslim_v1
  • YAML 显式写 spec.dataset(短名 hunyuanvideo / wan2_2_t2v / wan2_2_i2v / wan2_2_ti2v,或含 index.jsonl 的绝对路径);不要省略(省略 → 默认 mix_calib.jsonl → 失败)
  • 自建校准集时 index.jsonl 每行含非空 text;I2V 场景含 image 且相对路径可解析
  • YAML dump_config.enable_dump: false(DiT data-free 不 dump 校准数据;true 仅在确需浮点推理 dump 时显式开启)
  • YAML 顶层除 apiversion / metadata / spec 外无额外字段
  • YAML act.scope 与 dtype 匹配: dtype=int8 → scope=per_token, dtype=mxfp8 → scope=per_block
  • YAML weight.scope 与 dtype 匹配: dtype=int8 → scope=per_channel, dtype=mxfp8 → scope=per_block
  • --device npu(不带卡号);卡号通过 ASCEND_RT_VISIBLE_DEVICES 环境变量指定,优先使用单卡(如 ASCEND_RT_VISIBLE_DEVICES=0)
  • save_path 为 {workdir}/round_1/quantized 形式且磁盘空间充足
  • msmodelslim quant --help 可正常执行
  • 未直接传 smooth / quarot / awq 等抑制策略参数;若需引入,由 orchestrator 直接调 quantization-expert-experience-tuning-rules/scripts/apply_rollback.py(整层回退)在 YAML 上叠加再回到本 skill 执行

参考

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

当用户直接要求进行数据集压缩测评,或在量化调优过程中需要使用 AISBench 评测工具输出数据集精度等场景时使用。 本 Skill 负责:使用 AISBench 数据集压缩代码、用 RBF Kernel Herding 算法生成压缩后的数据子集(coreset),并按用户目标交付两种产物之一: ① 接入量化调优主流程:产出独立的 coreset 数据集配置(不覆盖原始数据),回传「全集 config_name + coreset config_name」给编排层,供 evaluation.yaml 切换; ② 仅数据集压缩测评(不做量化调优):基于 example 模板生成「全集测试脚本」和「子集测试脚本」两份 shell 脚本。 暂时支持 AIME 2025 和 GPQA,其他数据集需要再结合 aisbench tools目录下 herding_coreset_selector 源码进行分析。

The English summary is being prepared. Showing the original description.

kali20gakki/msAgent32Updated Oct 17, 2026

Ascend cluster comparison tool. Invoke when user asks to compare two cluster datasets (DB or TEXT), or to generate cluster_analysis_output from raw profiling data via msprof-analyze and then compare.

The English summary is being prepared. Showing the original description.

kali20gakki/msAgent32Updated Oct 17, 2026

专门用于 Ascend 集群 Profiling 性能数据的“快慢卡”诊断专家技能。当用户提供【集群性能数据目录/路径】并要求分析【快慢卡】、【慢节点】、【负载不均衡】或【集群瓶颈】时,必须触发此技能。该技能会自动接收集群路径,调度相关工具输出快慢卡的宏观定性与微观根因(如 Host 下发瓶颈、算子计算劣化)。

The English summary is being prepared. Showing the original description.

kali20gakki/msAgent32Updated Oct 17, 2026

Analyze Ascend NPU collective communication profiling data with a DB-first workflow. Use when the user provides `cluster_analysis_output/cluster_analysis.db`, rank-level `analysis.db`, rank-level `ascend_pytorch_profiler_{rank_id}.db`, together with `profiler_info.json`, and asks about HCCL or hcom communication cost, collective communication TOP ops, wait time, slow rank/straggler, Notify Wait, bandwidth, retry, relay, SDMA/RDMA/HCCS links, communication matrix, or Ascend communication fault patterns.

The English summary is being prepared. Showing the original description.

kali20gakki/msAgent32Updated Oct 17, 2026

Analyze Ascend NPU computation-side profiling data for single-card runs or a selected rank from multi-card runs. Use this skill when the user asks to diagnose computation bottlenecks, AI Core / AI Vector / AICPU hotspots, dynamic shape overhead, block dim issues, redundant TransData/Transpose/Cast, cross-stream waits, frequency/runtime-state issues, or fusion opportunities.

The English summary is being prepared. Showing the original description.

kali20gakki/msAgent32Updated Oct 17, 2026

针对昇腾 NPU 上的 PyTorch 模型,识别可做融合算子替换的代码段、替换为 torch_npu 融合算子并做性能/精度验证。当用户提到融合算子、NPU 算子替换、RMSNorm/SwiGLU/RoPE/Attention 融合、torch_npu 亲和算子等关键词是,使用本 Skill。

The English summary is being prepared. Showing the original description.

kali20gakki/msAgent32Updated Oct 17, 2026

See all skills by kali20gakki

Report a problem with this skill