원클릭으로
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