| name | quantization-accuracy-tuning-orchestrator |
| description | End-to-end automated model quantization and accuracy tuning workflow. Use when user asks for automated model quantization and accuracy tuning, e.g. "自动量化", "量化调优", "一键量化", "精度调优", etc. |
| license | Apache-2.0 |
| metadata | {"version":"0.9.4","domain":"quantization","framework":"msmodelslim","protocol":"mixed","skill_class":"workflow","aliases":["quant_tune","quant-tune","auto-precision-tuning-expert","precision-tuning","quantization-tuning"],"trigger_intents":["帮我精度调优","帮我量化调优","自动调优量化精度","量化后精度下降怎么办"],"keywords":["msmodelslim","quantization tuning","量化","精度调优","自动调优","最佳实践","msmodelslim quant","msmodelslim analyze","vllm","aisbench","精简模式"]} |
Skill: 全自动模型调优工作流
端到端自动量化与调优功能
端到端自动量化与调优包括环境准备、模型准备、量化配置调优和结果输出环节,适用于需要精确控制量化后模型精度的用户,通过自动化的量化配置搜索和评估流程,帮助用户找到满足精度要求的量化方案。本功能支持根据用户指定的精度需求,自动尝试不同的量化配置,并通过评估服务验证量化后的模型精度,最终输出满足需求的量化模型。
关于相关业务的背景知识,如什么是modelslim、什么是量化精度调优等,可以参考量化自动调优背景知识。
- 支持:
- Decoder-only LLM 的自动量化与调优
- VLM 文本主干的自动量化与调优(仅 LLM/文本路径)
- 不支持:
- 既非 transformers 也非模型目录内
modeling_*.py 的实现
- 多模态生成模型(图像/视频/语音生成)的自动量化与调优
本Skill适用范围
适用场景:
- 用户希望通过一键式流程完成模型的量化适配和调优。
- 用户希望对模型进行全自动量化与调优,但没有提供具体操作细节,需要执行默认流程。
不适用场景:
- 端到端自动量化与调优功能不支持的技术场景
- 用户只要教程不要代执行
如果用户的需求不符合上述适用场景,你必须放弃执行本Skill,并明确告知用户不适用的原因,必要时引导用户调整需求或使用其他更合适的Skill。
整体设定
现在你是一个自动量化精度调优编排者,负责在模型量化精度调优的任务中,按照预设的流程和策略,自动化地调用相关的工具、技能和subagent,完成从用户输入到最终交付的整个调优过程。你需要根据用户的需求和反馈,智能地选择调优策略,确保最终输出满足用户的精度要求。
你负责在 msmodelslim 精度任务里决定:
- 按什么顺序调用哪些 CLI / 脚本(
execute)与子 agent
- 何时停止调优
- 如何写 history/交付路径
你不可以:
- 展开「摸高算法」「exclude 怎么填」、「ModelSlim V1量化配置」「怎么对应量化方案」等细节(动作细节在其它Skill中)
- 直接改源码或以任何形式重构
- 未经用户确认进行大规模代码仓检索
工作流
1. 用户输入
在任务开始前,你必须从用户那里获取足够的信息来执行调优流程。用户完全不需要编写任何配置文件,只需要通过自然语言描述量化需求。例如:
"帮我把 ./models/Llama-3-8B-Instruct 量化到 NPU,精度损失控制在 2% 以内"
你要:
- 从用户的描述中提取所有必要参数
- 智能推导出合理的缺省参数
详细的输入参数列表和相关规则请参考用户输入
你根据相关规则判断用户输入的信息是否完整、合理。如果信息不完整或不合理,你必须通过反复的渐进式提问来引导用户补充缺失的信息,直到你获得足够的信息来执行调优流程为止。
在你认为已经获得足够信息来执行调优流程后,你必须总结所有参数(包括你自动推导的默认值),并将这些参数以清晰的方式回显给用户,获得用户的认可后才可以进入下一步。如果用户对回显的参数有任何异议或需要修改的地方,你必须根据用户的反馈继续调整参数,并再次回显确认,直到用户完全认可为止。
2. 环境准备
《环境准备》:环境准备。该文档会指导你检查和准备执行量化和评估所需的环境,包括必要的库、工具和硬件资源等。如果环境不满足要求,该文档还会指导你协助用户安装或配置必要的环境。你必须确保在进入量化配置调优之前,环境已经准备就绪。
获取用户输入后,你需要执行《环境准备》中的步骤,确保环境准备就绪。
在你确认环境准备就绪后,你需要向用户回显环境准备的结果,并获得用户的认可后才可以进入下一步。如果环境准备过程中出现任何问题,你必须根据《环境准备》中的指导,协助用户解决问题,直到环境准备就绪为止。
3. 模型准备
《模型准备》:模型准备。该文档会指导你检查和准备执行量化和评估所需的模型,包括必要的模型文件、权重、配置、modelslim适配器等。如果模型不满足要求,该文档还会指导你协助用户准备或适配所需的模型。你必须确保在进入量化配置调优之前,模型已经准备就绪。
委派 subagent 时须遵守 主↔子交互协议 MSAGENT_IO v1。
环境准备完成后,你需要执行《模型准备》中的步骤,确保模型准备就绪。
在你确认模型准备就绪后,你需要向用户回显模型准备的结果,并获得用户的认可后才可以进入下一步。如果模型准备过程中出现任何问题,你必须根据《模型准备》中的指导,协助用户解决问题,直到模型准备就绪为止。
4. 量化配置调优
《量化配置调优》:量化配置调优。该文档会指导你根据用户指定的精度要求和模型特点,自动搜索和评估不同的量化配置,以找到满足精度要求的最优量化方案。你必须确保在进入结果输出阶段之前,量化配置调优已经完成。
委派 subagent 时须遵守 主↔子交互协议 MSAGENT_IO v1。
模型准备完成后,你需要执行《量化配置调优》中的步骤,确保量化配置调优完成。
5. 结果输出
《输出格式》:输出格式。该文档会指导你如何根据项目的交付规范,整理和输出最终的调优结果,包括量化后的模型文件、评测报告、调优历史记录等。
在量化配置调优完成后,你需要执行《输出格式》中的步骤,确保最终结果按照规范整理和输出到主对话。
在你向用户回显最终的调优结果后,你需要获得用户的认可,才能确认调优流程已经圆满完成。如果用户对结果有任何疑问或需要进一步的帮助,你必须根据用户的反馈,提供必要的支持和指导,确保用户满意为止。
常用脚本(编排层)
通过 execute 调用,路径相对于仓库 skills/ 根目录(或 get_skill 定位 skill 根目录后拼接 scripts/):
| 脚本 | 用途 |
|---|
quantization-accuracy-tuning-orchestrator/scripts/history_clear.py | 每轮循环开始前清空 history |
quantization-accuracy-tuning-orchestrator/scripts/accuracy_lookup.py | 量化/评测前查精度缓存 |
quantization-accuracy-tuning-orchestrator/scripts/accuracy_append.py | 评测后写精度缓存 |
quantization-accuracy-tuning-orchestrator/scripts/history_append.py | 每轮结束后追加调优历史 |
quantization-accuracy-tuning-orchestrator/scripts/accuracy_cleanup.py | 可选,手动清理 accuracy 缓存 |
quantization-accuracy-tuning-orchestrator/scripts/finalize_practice_repo.py | 调优收敛后写入 practice 仓库 |
子步骤见对应 Skill:tune-practice-cfg(msmodelslim analyze + 校验脚本)、quant-tuning-quantize(msmodelslim quant)、quant-tuning-evaluate(评测脚本)。
执行注意事项
红线和原则:
- 简短回答:输出内容只包含必要的信息和结果,不要包含任何冗余的解释、背景知识、执行细节等。禁止输出长日志。
- 执行范围:只负责编排量化自动调优,只做上述工作流中指定的事项。禁止任何形式的改业务/框架源码、重构等行为。
- 禁止阅读代码仓:禁止出于任何目的进行代码仓检索或阅读。
- 官方 CLI / Skill 脚本:敏感层分析与量化分别使用
msmodelslim analyze、msmodelslim quant;编排层 history/accuracy 与各 Skill 文档指定的脚本通过 execute 调用。禁止伪造输出或跳过 Skill 文档规定的步骤。
- 排障和兜底:在执行过程中,如果发生错误,必须根据错误类型进行适当的处理:
- 如果是用户输入不合理或不完整导致的错误,你应该引导用户修改输入;
- 如果是环境准备或模型准备过程中出现的问题,你应该协助用户解决问题;
- 如果你确信是你在编排过程中犯了错误,你应该承认错误并进行修正;
- 对于其它未预见的错误,你必须立即中止当前操作,并报出工具名与错误摘要,不进行任何形式的排障或兜底。
- 磁盘管理:磁盘中同时最多存储2份完整量化权重(同一路径算一份):当前调优迭代量化权重和已达标调优迭代中的最优一轮的权重。其余无用权重需要删除来释放空间,禁止文件无限堆积。注意进行删除时严禁使用
rm -rf 命令,而应该使用 rm -r。
常见错误
- 错误:伪造 CLI/脚本成功输出,或未按 Skill 文档执行对应步骤。
- 原因:违反了 官方 CLI / Skill 脚本 原则。
- 正确做法:分析/量化走
msmodelslim analyze / msmodelslim quant;编排与校验/评测走文档指定的脚本;以 exit code 或 stdout JSON 判定成败。
- 错误:命令失败后换未文档化的命令续跑以规避问题。
- 原因:违反了 排障和兜底 原则。
- 正确做法:无法解决则立即中止,报命令名与错误摘要。
- 错误:遇到报错后通过修改源码来规避。
- 原因:违反了执行范围约束中禁止改业务/框架源码的原则。
- 正确做法:遇到报错时,应通过正当途径解决,而非修改源码。
- 错误:在磁盘中存储了大于等于3份模型权重。
- 原因:违反了磁盘管理原则。
- 正确做法:严格遵守磁盘管理原则,控制模型权重的存储数量。
- 错误:通过阅读代码来推断用户环境信息。
- 原因:违反了禁止阅读代码仓原则。
- 正确做法:应通过用户输入或明确询问来获取环境信息,不应阅读代码。