大模型后训练跑歪了怎么排查,6 步回退与纠偏流程

5小时前发布

后训练跑歪通常表现为 5 类:拒答变多、答非所问、中英混杂、反复复读、回答突然变长。按 6 步排查,多数情况能在 2 小时内定位到数据侧,不必重跑整轮。

去年底我处理过 1 次很典型的偏移。1 个客服问答模型做完对齐后,凡是问退换货就直接答「建议您联系人工」,拒答率从 4% 涨到 31%。查了 3 小时才发现,偏好数据里凡是「转人工」的回答都被标成了更好,模型很快学会了偷懒这条路。

偏移分 2 类:能力回退与风格漂移。能力回退是原来会的题答错了,风格漂移是答案变长、变客气、爱加免责声明。两类修法不同,先分清再动手。

下面按「先判断、再备料、然后 6 步排查、卡在哪、怎么核验」写,顺序照做就能收敛。

一、先判断是真歪了还是错觉

判断要用固定题集,不能靠感觉。准备 200 条覆盖主业务的题,同一批题在新旧两版模型上各跑 1 遍,输出存成 2 个文件,逐条对比才叫有依据。

  1. 拒答率:从 5% 以内涨到 15% 以上,属异常
  2. 答非所问:200 条里有 20 条以上答偏,属异常
  3. 中英混杂:正文出现成段英文,或术语被译成英文,属异常
  4. 复读:同一句在 1 条回答里重复 3 次以上,属异常
  5. 长度暴涨:平均字数比上一版多 1 倍,信息量却没增加,属异常

记录方式要统一。每次迭代存 1 个文件夹,放 200 条题的输入、输出、评分表 3 个文件,命名带日期与版本号。我吃过亏:1 次对比拿错文件,把 2 个版本的输出搞反,白查 2 小时。

5 条里命中 2 条以上,就别再往下猜了,直接进第 3 节排查。只命中 1 条且幅度小的,先记录,等下一次迭代再看,很多时候是采样温度波动带来的假象。

二、排查前要备齐的 4 样东西

这 4 样缺 1 样,排查就会变成盲猜。下表第 3 列写「没有怎么办」,当场能补的当天补上。

物料作用没有怎么办
上一版检查点回退与逐层对比的基准只存了权重没存优化器,回退后效果会掉,先补存档规范
训练日志看 loss、学习率、梯度范数只剩控制台输出也要留,按步数整理成 1 张表
数据版本号确认这轮到底喂了哪批数据按文件修改时间倒推,重建 1 份清单
评测基线判断「歪了多少」的标尺用旧版模型现场跑 200 条,当天就能建基线

三、6 步回退与纠偏流程

检查点要连 3 样一起存档:权重、优化器状态、学习率调度器状态。只存权重是最省事的做法,代价是回退后续训掉几个点,这个坑我踩过 1 次。

6 步按顺序走,前 3 步只做诊断,第 4 步才开始动手改。跳过诊断直接改数据,等于把 2 个变量叠在一起,越改越乱。

步骤 1 到 2:复现与打标

  1. 复现:固定 200 条题、固定温度、固定最大长度,把当前输出存成 1 个文件
  2. 打标:把错例按 5 类归因,统计每类占比,占比最高的那一类就是主攻方向

任务清单要归档到能搜到的地方。文件只放本地文件夹,半年后自己都翻不出来;放共享盘或知识库,按题号与结论能直接搜到,交接时省 1 轮口头说明。

打标要 2 个人分开做,各自标完再对。我对过 1 次,2 个人对「答非所问」的判断差 18 条,逐条讨论后把标准写成 3 句话,第 2 轮一致率才上来。

步骤 3 到 4:定位阶段与回退

定位靠单变量对比:只换微调数据、只换对齐数据、只换学习率,3 组各跑 1 次小规模训练,看哪 1 组的偏移复现。回退则直接切到最近 1 个指标正常的检查点,先让线上恢复,再慢慢修。

回退这 1 步别犹豫。带病版本每多跑 1 天,用户的错误印象就多积累 1 天,修回来要花更久。我那次是先回退到 3 天前的版本,线上投诉当天就停了,剩下的时间全用来查数据。

工作台上笔记本电脑与分格记录本

步骤 5 到 6:数据审计与回归

数据审计查 4 项:重复样本、模板化答案、超长答案、标注方向错误。第 4 项最隐蔽,标注员把「更啰嗦」当成「更详细」的情况很常见,偏好数据一旦带了这个偏差,模型会稳定地学会写长。

数据审计要按批次查,别看总量。1 批 5000 条里混进 200 条带偏差的样本,占比 4%,看总量根本看不出来,按批次查能直接定位到那 1 批的标注员。

漂移的早期信号常在日志里:梯度范数突然放大、loss 在某些批次上反复震荡。这两个数每天扫 1 眼,能比用户投诉早 3 到 5 天发现问题。

回归用小批量重跑,3 个 epoch 以内先看趋势。同一批 200 条题跑完,拒答率、答偏率、平均字数 3 个数都回到基线附近,再放量重训。我那次删掉 1200 条「转人工」偏好样本、重跑 2 个 epoch,拒答率回到 6%。

四、卡在哪:5 个常见堵点

下面 5 条按出现频率排,每条写「现象、原因、怎么解」。

  1. 回退后指标还差 3 个点:只存了权重,优化器状态丢失,续训等于重新初始化
  2. 单变量对比 3 组都歪:说明问题在基座或分词,不在后训练
  3. 越修越差:同时改了数据和超参,两处影响叠在一起没法归因
  4. 小批量正常,放量就歪:数据分布在小样本里没体现,扩大采样比例再验
  5. 评测分数回来了,用户仍不满意:评测题与真实问法不一致,从工单补 100 条真实问法

越修越差还有 1 个原因:评测集被污染。训练数据混进评测题,分数会虚高,实际用起来反而差。查法简单:评测题与训练数据做 1 次相似度比对,重合率超过 5% 就得清。

第 2 条要早点接受。后训练修不了基座的知识缺失,遇到这类情况,改数据只能缓解表述,答案本身仍然错。判断方法很简单:问 20 个纯知识题,错得系统性,就说明该补语料而不是调对齐。

五、修完怎么核验

3 个动作,1 天内完成,做完再对外。

  1. 200 条固定题全跑,3 个核心指标与基线差异控制在 2 个点以内
  2. 抽 30 条抽样人工盲评,评分人不看版本号,只看回答好不好用
  3. 同一问题跑 3 次,看结论是否稳定,出现互相矛盾就查采样参数

3 个动作之外还有 1 项长期活:把每轮偏移的原因记成清单。我这份写到第 9 条,后面再出问题,先对清单就能省掉一半排查时间。

第 2 个动作防的是「指标好看但不好用」。盲评时把新旧两版回答打乱顺序,评分人给分,两版差距小于 0.3 分就说明这轮修改没带来实际改善。

机房走道尽头的机柜

回退不等于认输,先把线上止血,修数据放在回退后的分支上做,两边不冲突。我那次线上跑旧版 3 天,数据修完再切新版,用户侧没有察觉。

后训练的偏移大多来自数据,不来自算法。每轮迭代前留 1 份数据快照,出问题能 10 分钟内回到上一版,这套习惯比任何调参技巧都值钱。

白板前地面放着的记号笔

各框架的检查点格式、日志字段不同,参数名按你用的框架文档对。本文的数字是排查时的判断阈值,具体项目按业务基线调整。

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