关于 checkpoint-promotion
用于微调流程中评估训练检查点是否可发布的技能。它按数据质量、能力漂移、成对竞技评估和金丝雀部署逐级设门,并生成带 PROMOTE 或 REJECT 结论的报告。
主要功能
- 01四阶段检查点发布门
- 02检测数据泄漏与标签噪声
- 03评估能力漂移和成对竞技表现
- 04规定漂移阈值及复测规则
- 05生成发布报告与单项修复建议
适用场景
- 01判断微调检查点是否进入导出
- 02发现训练集泄漏或能力退化
- 03为漂移超标选择优先修复措施
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ wshobson/ agents --skill checkpoint-promotion安装后在 Claude Code 中输入/checkpoint-promotion确认已加载。
附带文件references/gate-templates.md
详细介绍
检查点晋升
整个插件的第 5 阶段门禁:一个训练干净、且优于其任务指标的检查点,若未通过以下全部四个阶段,依然不能发布。eval-harness-first 构建了在此处重跑的套件——而本技能正是该套件的基线做出裁定的地方。
输入: 一个训练好的检查点、来自 eval-harness-first 的 eval/baseline-<model>.json,以及冻结的 eval/drift-suite.yaml。
输出格式: promotion-report.md——四个阶段的证据,外加一个终态的 PROMOTE 或 REJECT 裁定,供 /finetune 第 5 阶段和 /promote-checkpoint 直接消费。
四阶段门禁
每个阶段都为下一阶段设门——阶段 2 失败意味着阶段 3 不会运行。阶段 2 和阶段 3 共享一次昂贵的推理过程,因此在确定性竞技场上,并发运行它们并在裁定时刻套用门禁顺序是被许可的(串行化不会节省任何东西);基于评判的竞技场仍应先等待阶段 2——真正的节省正在于此。
- 数据质量门禁。 在任何评估触及该检查点之前:对训练集去重、检查评估金标准泄漏(正是
trace-to-training-data的 Hygiene 小节存在所要防止的那种确切故障),并扫描标签噪声。用泄漏的金标准训练出的检查点会让之后每一个阶段都失效。 - 留出集 + 冻结的能力漂移套件。 针对该检查点重跑
eval-harness-first的eval/drift-suite.yaml——MMLU/GSM8K/IFEval 外加 200–500 条领域相关条目——并按下面的漂移预算表,逐基准与baseline-<model>.json做差异比对。 - 与基线的配对竞技场。 位置随机化的评判,检查点对基线模型,相同提示词——或者当 harness 中每个评分器都是确定性的(无 LLM 评判;位置随机化在此不适用)时,采用
references/gate-templates.md中的确定性配对比较变体。留出集上的胜利若在实时竞技场中落败,则不能发布——阶段 2 的数字与阶段 3 的判定必须一致;在冻结金标准上获胜却在配对比较中落败是一个真实信号,而不是需要搪塞过去的差异。 - 金丝雀。 对任何触及生产流量的检查点,进行 5–10% 的分层灰度发布并配备自动回滚。仅本地用户止步于阶段 3——对本地部署跳过阶段 4 是正确的停止点,而非捷径。
漂移预算
| 漂移(pts) | 裁定 |
|---|---|
| ≤1 | 噪声——继续 |
| 2–5 | 在决定前用种子变体重跑 |
| >5 | 硬性失败——不因任务收益而例外 |
5pt 这一行凌驾于其他行之上:一个在目标任务上提升 8 分、却损失 6 分通用能力的检查点,在此依然失败——任务改进永远无法赎回对漂移预算的违反。
条目数由预算推导而来,而非图方便: 要在 5pt 硬性失败阈值的一半之下取得半宽,所需的严格 n 在典型准确率(p≈0.7)下约为 1,300;n=200 是务实下限(在同样的 p 下 ±6pt 半宽,n=50 时 ±13pt)——每次裁定都要报告半宽,并将小于它的裕度视为 REJECT (uncertain),而非 PASS/HARD FAIL。完整数学推导与一个 5 次运行的警示示例:references/gate-templates.md。
RERUN 不是裁定。 2–5pt 的漂移只有在种子变体重跑完成后才会产生 PROMOTE 或 REJECT——PROMOTE 要求回落到 ≤1pt(噪声);任何重跑后仍 >1pt 的情况——无论是 2–5pt 区间还是 >5pt 违反——都会将阶段 2 裁定为硬性 REJECT。任何报告都不得在阶段 2 仍显示 RERUN 的情况下进入 Verdict 小节。
灾难性遗忘
未加管理的 LoRA 微调会损失 真实的通用能力, 而第 2 阶段正是用来捕捉这一点的:
- 未加管理时约 43% 知识损失——无回放,无 正则化。
- 基础管理下约 10% ——一些回放或保守的 LR。
- 回放 + EWC 下约 3%——纪律严明的情形。
- 10–30% 通用数据回放 混合是标准的 缓解措施——将通用 领域数据混入训练, 而非仅用目标任务数据。
如果某个 checkpoint 在第 2 阶段触及 >5pt
硬性失败,按顺序执行此
升级阶梯——这是本 skill
和 references/gate-templates.md
都指向的唯一规范顺序:
- 调整回放混合 比例——替换行,而不是 添加行(添加会混淆 比例与总优化器 步数)。在小型运行规模(<~100 步)下剂量并非单调——任何替换后 都要重新检查漂移。
- 降低学习率。
- 减少 epoch。
- 更小的 LoRA rank——
lora-qlora-recipes和preference-optimization为训练运行所调的 同一组 rank/LR 杠杆, 在此反向应用。
此顺序是默认值,而非
定律:来自单一
前后运行对的修复指导
是一种假设——一旦任何杠杆
产生反转,就将其标记为
低置信度,并优先
进行 seed 变体重复,而不是
盲目信任下一级。
一个杠杆消除了漂移
越界,却使某个
成功标准指标低于
目标,这是需要人类
权衡的双向取舍,而不是
继续沿阶梯下行的理由。这两个注意事项背后的完整
推理和 5 次运行
轨迹:
references/gate-templates.md。
披露漂移套件的 指令复用。 某条回放行 复制了漂移测试框架的精确 指令措辞(而不仅仅是 不相交的源条目),会使该 基准的回放后得分成为 上界——将其标记为 指令熟悉,或用改写重新探测, 然后再将接近预算的通过视为 干净。
判定
promotion-report.md 以章节形式涵盖全部
四个阶段,
并且必须以终止
判定结尾:PROMOTE 或 REJECT,
以及产生该判定的证据,
还有当判定为 REJECT 时恰好一项首要
修复措施。
模板:references/gate-templates.md。
其他
skill 解析的终止契约:
## Verdict
REJECT
Evidence: domain-adjacent drift
suite dropped 6.2pt (threshold:
>5pt hard fail) despite +8pt on
the target task.
Top remediation: swap the
replay-mix fraction from 10%
toward 20%, holding step count
constant.
- REJECT 是结果,不是 错误。 未能通过第 2 阶段漂移预算或 第 3 阶段竞技场比较的 checkpoint 完成了它的职责。不要把 REJECT 当作需要重跑本 skill 的失败运行; 它是正常工作的门禁的 正确输出。
- 一项修复,而非 菜单。 证据章节可以 列出所有观察到的情况;判定章节则指明 按上述升级阶梯得出的 单一最高杠杆修复。一份在三种 可能修复之间含糊其辞的报告,没有完成本 skill 存在的意义所在,即 排定优先级。
- 不自动重训。 本
skill 产生判定和
报告,而非重新触发的
训练运行。
REJECT将 修复交回人类决策,在finetuning-method-selection或 相关训练 skill 处处理。
相关 Skills
eval-harness-first——拥有本 skill 重新运行并与之比对的漂移套件和基线; 没有baseline-<model>.json就没有东西可供门禁比对。quantized-export——在PROMOTE判定之后唯一 有效的下一步。preference-optimization和lora-qlora-recipes——拥有 灾难性遗忘升级路径中的 LR 和 rank 杠杆;本 skill 诊断越界,那些 skill 拥有导致越界的配置。dataset-curation——拥有 升级阶梯第一级所应用的 回放混合构建配方。
完整的 promotion-report.md
模板,包含全部四个阶段、
漂移套件评分表、
配对竞技场协议(条目
数、位置随机化、
胜率阈值)以及
回放混合配置示例:
references/gate-templates.md。