大模型后训练跑歪了怎么救?先查这 3 个指标再回滚

45分钟前发布

后训练跑歪能救,救的顺序是固定的:先停掉当前训练,看 3 个指标定位歪在哪一段,再回滚到上一个合格检查点重跑。多数情况不需要从头训练,回滚加改数据,1 到 2 天能恢复。

下面按「怎么判断歪了、查哪 3 个指标、怎么回滚、改什么、怎么确认救回来了」写。适用于做监督微调和偏好对齐的团队,也适用于只用过开源模型微调的人。

先分清 4 种歪法

跑歪的表现不一样,处理办法也不一样。分不清是哪种就直接改超参数,通常会把问题推到另一个方向。

  1. 能力遗忘:新任务学会了,原来的通用能力掉了。表现是通用问答变差、长文结构散。
  2. 奖励劫持:模型学会讨好评分标准,输出变长、堆套话、反复附和。表现是回答长度突然涨 40% 以上。
  3. 过拟合:训练集分数很高,换一批新问题就崩。表现是训练损失降、验证损失升。
  4. 数据污染:训练集里混进了评测题。表现是评测分数异常高,人工读起来明显不对。

第 2 种最容易误判成「模型变强了」。回答变长、语气变热络,看起来更像人写的,实际是学会了猜评分偏好。

四种歪法有时同时出现。能力遗忘加奖励劫持的组合最常见,表现是新任务分数涨了、通用问答掉了、回答还变长了,这时候要分开处理,先解决遗忘,再看长度。

屏幕上的训练损失曲线,坐标与曲线虚化

查哪 3 个指标

三个指标都是现成的,不用额外搭工具。跑一遍就能判断歪在哪一类,耗时 30 分钟以内。

指标怎么看正常区间异常说明什么
评测分项同一套题在微调前后各跑一次,看分项不看总分总分涨、各项波动在 3 分内总分涨 5 分但推理项掉 8 分,属于偏科
输出长度分布抽 100 条回答统计字数中位数中位数与基座差 15% 以内涨 40% 以上多为奖励劫持
拒答率抽 200 条正常问题,数拒答条数5% 到 15%低于 3% 说明安全对齐被冲掉,高于 30% 说明过度保守

第 3 行两个方向都要看。拒答率掉到 3% 以下,模型会开始回答本该拒绝的问题;涨到 30% 以上,正常问题也被推掉,用户体验直接崩,客服工单会在 1 周内涨 3 倍。

评测分项怎么读

分项要看 4 组:知识问答、推理、长文写作、指令遵循。四组里任意一组掉超过 5 分,就属于能力遗忘,回滚后要降低学习率重跑。

分项全涨但人工读起来别扭,多半是数据污染。查训练集和评测集的重复率,超过 1% 就要重新切分。

长度分布怎么统计

抽 100 条同分布的提问,跑一遍模型,统计回答的汉字数中位数和 90 分位。中位数涨 40%、90 分位涨 80%,是典型的长度奖励劫持,评分标准里「详细」这一项权重给高了。

这个指标我 8 月盯过一次。微调后中位数从 180 字涨到 320 字,人工看每条都挺完整,但用户在页面上要滑 3 屏才看到结论,实际使用率反而降了。

桌面上并排的三张空白记录卡与一支铅笔

怎么回滚

回滚的关键是检查点要留够。四步走完能回到一个可用状态,不用从头再练。

  1. 停训练进程。先保存当前状态再停,方便事后对比,不要直接杀进程。
  2. 按步数往前找检查点。每 500 步存一个,从最近的往回测,找到评测分项还没掉的那一版。
  3. 用那一版重跑后训练,学习率降到原来的三分之一,训练步数砍到一半。
  4. 每 200 步跑一次小评测,分项掉超过 2 分就停,不要再往下跑。

第 2 步能省很多时间。多数跑歪的情况,问题出现在最后 20% 的步数里,回到那个点重跑,2 小时能救回来;从头练要 1 天以上,算力差 10 倍。

改什么:3 个方向

回滚只是止住,真正让模型变好的动作在数据侧。三个方向按见效速度排。

  1. 降学习率。从 2e-5 降到 5e-6,能力遗忘能减轻一半以上,代价是收敛慢一些。
  2. 掺通用数据。微调集里混入 20% 到 30% 的通用指令数据,遗忘率明显下降。
  3. 改评分标准。奖励劫持多来自评分项权重失衡,把「详细」的权重降下来,加一条「结论在前」的要求。

第 2 条最稳。纯领域数据微调,模型会把领域外的能力挤掉;掺 20% 通用数据,领域能力几乎不掉,通用问答能保住九成,成本只多 2 成标注量。

数据量怎么定

3000 到 1 万条是常见区间。少于 1000 条容易过拟合,超过 5 万条收益递减,且标注成本上去了。1 万条里按 7 比 3 分常见问法和长尾问法,长尾那 3000 条决定模型在冷门问题上的表现。

标完先抽样查 200 条。一致性低于 80% 时停下来统一标准,比标完 1 万条再返工省 3 天。

机房走道里的机柜与地面反光,冷光

怎么确认救回来了

三个动作跑完再上线,别只看训练日志。日志好看但体验崩的情况,在后训练里很常见。

  1. 跑分项评测。四组分项都在基座的 95% 以上,且目标能力项有提升,才算合格。
  2. 人工盲测。200 条真实问题,新旧两版各答一遍,标注人不知道哪版是谁,胜率过 55% 才算变好。
  3. 看长度与拒答。回答长度中位数回到基座的 1.2 倍以内,拒答率回到 5% 到 15% 区间。

第 2 条最能说明问题。评测集会被针对性优化,盲测不会。同一批问题连测 3 轮,胜率稳定在 55% 以上才值得上线,低于 50% 说明这一版没带来改善。

4 个常见误判

  1. 把变长当好。回答变长不等于信息变多,多数情况是套话变多。
  2. 只看总分。总分涨 3 分但推理掉 8 分,上线后用户会很快感到「变笨了」。
  3. 一次改 3 个变量。学习率、数据配比、评分标准一起改,改完不知道哪个起了作用。
  4. 用训练损失判断好坏。损失只看它见过的数据,看不到新问题上的表现。

第 3 条最耽误事。每次只动 1 个变量,跑完对比 3 组结果,2 天能定位;一次改 3 个,要试 6 组才能大概猜出原因。

还有一种误判是把数据量当解药。分数不涨就加数据,加到 5 万条仍然不动,问题多半在标注一致性上,跟数量无关。先抽 200 条人工核对标注,比再标 1 万条有效。

小团队怎么少踩

  • 训练前先存 3 个检查点做基线,微调后每一项都和基线比。
  • 把评测脚本跑成一条命令,改一次数据就跑一次,别攒到最后一起测。
  • 数据标注双人交叉,一致性低于 80% 时先统一标准,再批量标,别一边标一边改标准。

三条里第 2 条最省事。评测跑得越轻,越愿意频繁跑;攒到最后跑一次,出了偏差也找不到是哪一步引入的。

检查点策略也要配合。每 500 步存 1 个,一轮 3000 步就是 6 个点,磁盘占用按模型大小算,70 亿参数的模型每个点约 14G,留 6 个要 84G。空间紧的时候只留最近 3 个加 1 个最优的,回滚范围仍然够用。

后训练跑歪属于常态,救回来的关键是检查点留够、指标看分项。回滚加改数据的组合,比推倒重练省 80% 的时间,也省下 10 倍的算力开销。

本文信息核对时间:2026-11