ワンクリックで
tune-practice-cfg
Use when 量化调优闭环中需要生成或修改一轮调优所需的 Practice YAML,包括敏感层分析、策略决策、写出 YAML 文件和校验。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Use when 量化调优闭环中需要生成或修改一轮调优所需的 Practice YAML,包括敏感层分析、策略决策、写出 YAML 文件和校验。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
当用户需要部署 msmodeling optix 服务化自动寻优工具时使用。负责安装与验证。
当首次使用 msmodeling optix 的用户需要根据硬件、模型、负载和优化目标推荐 MindIE/vLLM 寻优参数、搜索范围、benchmark 侧字段或 config.toml 片段时使用。
指导并自动化完成昇腾 NPU 上 MindSpeed-LLM 训练的 Profiling 数据采集。支持配置并运行带 Profiling 的模型训练,包括 CPU 采集、内存采集、不同采集级别(level0/level1/level2)和自定义 step 范围。生成的 Profiling 数据可用 MindStudio Insight 进行性能分析。当用户需要在模型训练中采集 Profiling 数据、进行训练性能分析、或执行 性能数据采集/Profiling采集 时触发。触发关键词:profiling、性能分析、性能数据采集、Profiling采集、训练框架profiling、MindSpeed-LLM profiling。
指导并自动化完成昇腾 NPU 上 MindSpeed-MM 模型训练的 Profiling 数据采集。通过识别训练脚本,自动找到配置文件并启用内置 Profiler,支持静态采集(指定起止 step)和动态采集(运行时动态开关),支持 Megatron 引擎(tools.json)和独立 FSDP2 引擎(YAML)两种配置方式。生成的 Profiling 数据可用 MindStudio Insight 进行性能分析。当用户需要在多模态模型训练中采集 Profiling 数据、进行训练性能分析、或执行 性能数据采集/Profiling采集 时触发。触发关键词:profiling、性能分析、性能数据采集、Profiling采集、多模态训练profiling、MindSpeed-MM profiling。
Skill for analyzing communication performance bottlenecks and detecting slow/fast rank issues in Ascend NPU systems. Use this skill whenever you need to analyze communication efficiency, data transfer bottlenecks, or identify slow/fast rank problems using profiling data.
用于分析Ascend NPU系统中计算性能瓶颈的技能,专注于算子效率和计算优化
| name | tune-practice-cfg |
| description | Use when 量化调优闭环中需要生成或修改一轮调优所需的 Practice YAML,包括敏感层分析、策略决策、写出 YAML 文件和校验。 |
| license | Apache-2.0 |
| metadata | {"version":"0.1.0","domain":"quantization","framework":"msmodelslim","protocol":"cli","skill_class":"tool","aliases":["practice-cfg","tune-practice"],"trigger_intents":["生成量化配置","修改 practice","敏感层分析并生成配置"],"keywords":["msmodelslim analyze","yaml_validation_validate","exclude","敏感层","practice yaml"]} |
在量化调优闭环中,根据敏感层分析和上轮评测结果,生成或修改一轮调优所需的 Practice YAML,确保其通过校验后交付给后续 model-quantize 执行。
| 负责 | 不负责(编排层) |
|---|---|
敏感层分析(msmodelslim analyze) | 缓存查询(accuracy_lookup) |
| 策略生成/修改 Practice YAML | 量化执行(msmodelslim quant) |
YAML 校验(validate_practice_yaml.py) | 评测执行(run_evaluation.py) |
缓存写入(accuracy_append) | |
历史记录(history_append) | |
| 策略终止决策 |
输入:
| 参数 | 类型 | 说明 |
|---|---|---|
model_type | str | 模型类型名 |
model_path | str | 模型路径 |
save_path | str | 工作目录,Practice YAML 写入此目录下 |
device | str | 分析设备,如 "npu"、"npu:0"、"gpu:0,1" |
strategy | str | 调优策略:"standing_high" 或 "standing_high_with_experience" |
max_iterations | int | 最大迭代轮次,由用户指定 |
prev_result | dict | None | 上轮评测结果(EvaluateResult 结构),首轮为 None |
anchor_practice | str | None | 当前已知最优且达标的 Practice YAML 路径(锚点) |
产出:practice_path(合法的 Practice YAML 文件路径)
工具:msmodelslim analyze(敏感层分析)、scripts/validate_practice_yaml.py(校验)
┌─────────────────────┐
│ ① 敏感层分析 │ ← 调优任务开始前执行一次
│ (msmodelslim analyze)│
└──────────┬──────────┘
│ 敏感度得分文件(各轮复用)
▼
(>>> 每轮循环 <<<) ◄──────────────────┐
▼ │
┌─────────────────────────────────┐ │
│ ② 根据策略选择回退层 │ │
│ + 生成/修改 Practice YAML │ │
└──────────┬──────────────────────┘ │
│ │
▼ │
┌─────────────────────┐ │
│ ③ 校验 Practice YAML │ │
│ (validate_practice_ │ │
│ yaml) │ │
└──────────┬──────────┘ │
│ practice_path │
▼ │
后续:model-quantize ──→ 下一轮 ─────┘
调度优化
通过 execute 调用 msmodelslim CLI 获取当前模型各线性层的量化敏感度得分(score 越高越敏感)。每个调优任务调用一次,后续各轮复用该得分结果。注意默认优先使用 mse_layer_wise 指标。
若 {save_path}/analysis_result.yaml 已存在,跳过本步骤,直接复用已有得分。
msmodelslim analyze layer \
--model_type Qwen3-32B \
--model_path ${model_path} \
--metrics mse_layer_wise \
--calib_dataset ${calib_dataset} \
--topk 999 \
--device npu \
2>&1 | tee "${SAVE_PATH}/analysis_console.log"
成功判定:命令 exit code 为 0。从控制台输出解析各层 Score,写入 {save_path}/analysis_result.yaml(格式见 敏感层分析)。
若命令失败或超时,可用经验规则占位,仍需产出相同格式的敏感度得分文件供步骤 ② 使用。仅作占位,弱于精确分析。
完整参数说明、metrics 选项与分析结果结构见 敏感层分析。
目的:根据预计算的敏感度得分和当前轮次的策略需要,选择本轮回退层并确定离群值抑制策略,构造完整的 Practice YAML 内容,并写入磁盘文件。
输入:
{save_path}/analysis_result.yaml(步骤 ① 产出,各轮复用)prev_result(首轮为 None)具体动作:
modelslim_v1 格式,详见 量化配置格式){save_path}/practice_round_{N}.yaml(N 为当前轮次),得到 practice_path| 改动项 | 说明 | 对应 YAML 位置 |
|---|---|---|
调整 exclude | 增减回退层 | spec.process[].exclude |
| 替换离群值抑制 | iter_smooth ↔ flex_smooth_quant ↔ flex_awq_ssz | spec.process[].type |
| 调整抑制强度 | 如 flex_awq_ssz 的 step、enable_subgraph_type | spec.process[].qconfig.ext |
修改粒度:
exclude 设计原则:
离群值抑制叠加原则:
iter_smooth)调优策略由入参
strategy决定。"standing_high"详见 standing_high 策略;"standing_high_with_experience"详见 standing_high_with_experience 策略。
始终保留锚点:掉精度时可回滚到上一已知达标配置。
脚本调用:
python skills/tune-practice-cfg/scripts/validate_practice_yaml.py --practice-path /path/to/practice.yaml
返回:
{
"ok": true,
"valid": true,
"errors": []
}
校验内容:
PracticeConfig.model_validate 通过(字段名、类型、必填项)label 必须是 dict 而非字符串、type 与字段是否匹配错误处理:
| 错误类型 | 说明 | 动作 |
|---|---|---|
parse_error | YAML 语法错误 | 修正语法后重试 |
schema_error | 字段缺失/类型不对 | 修正字段后重试 |
business_rule_error | 业务逻辑违规 | 按提示修正后重试 |
valid=false 时不可继续后续步骤,必须修正后重新校验。
YAML 字段名、类型、必填项等 schema 细节见 量化配置格式。
practice_path(合法的 Practice YAML 文件路径),交付给编排层进行缓存查询后,传递给 model-quantize 执行量化。
| 约束 | 说明 |
|---|---|
| ① 在首轮前调用一次 | 敏感度得分每个调优任务计算一次,各轮复用 |
| 一次只改一两处 | exclude 或离群值抑制,避免多因素同时变化 |
| 保留锚点 | 始终保留一份当前已知最优且达标的配置,掉精度可回滚 |
| 校验必过 | valid=false 时不可继续,必须修正后重新校验 |
| save固定 | spec.save 字段除非用户指定,默认情况下必须为 ascendv1_saver |
metadata.label 写成字符串而非 dicttype 与字段不匹配(如 flex_awq_ssz 缺少 qconfig),参见 量化配置格式valid=false 仍继续后续步骤--device 未使用 npu:0 这种格式,错误地使用了 DeviceType.NPU