跳到正文

SFT 复读机问题怎么解?

成因分析:重复样本如何加剧,从优化与数据分布角度

原题:监督微调(SFT)中常见的‘复读机’问题具体指什么?其成因有哪些?特别是训练数据中的重复样本为何会加剧该问题?请从模型优化和数据分布角度解释。

模型训练 · 字节真题

回答与解析

所谓复读机,是模型生成时出现不必要的token、短语、句子或整段循环,并且不能在合适位置结束。先要把它与任务本身要求的重复区分,例如代码中的变量复用、歌词结构或用户要求逐字引用都不算故障。评测时可以统计重复片段、连续相同n-gram、异常长度和EOS缺失,再结合人工样本确认。

训练数据重复会改变经验分布。同一文档或模板反复出现,相当于在损失中获得更高权重,模型更容易记住这些序列,也会浪费训练预算。近重复还可能跨越训练与评测集合,制造虚高指标。但这并不意味着只要有重复数据,模型就一定在解码时进入循环;是否循环还受到上下文、模型容量、训练阶段和生成策略影响。

从训练侧看,我会检查精确与近重复率、模板集中度、长文本截断、EOS标注和样本拼接。错误的EOS处理或大量未自然结束的样本,会让模型学不到何时停止;小数据上过度训练也可能放大模板记忆。MLE本身是在拟合条件分布,不能简单等同于概率坍缩,更不能把所有循环都归为MLE的固有结果。

从推理侧看,还要复现具体temperature、top-p、beam设置、重复惩罚和最大长度。过于贪心的解码可能把模型带入局部高概率回环;某些惩罚又可能破坏正常复现。处理顺序应是先在固定提示和固定随机种子下定位故障,再分别做数据去重、checkpoint对比和解码消融,确认问题来自哪里。

DPO通常建立在已完成SFT的策略上,用偏好对拉开优选与拒选回答的相对概率。它可以在偏好数据明确标注重复问题时帮助调整行为,但不是绕开MLE的通用替代,也不能修复错误EOS、严重数据污染或推理代码缺陷。偏好样本若只奖励短答案,还可能带来新的长度偏差。

我的验收会保留一组未参与调参的提示,按任务和长度分桶,对比重复率、完成率、事实质量与人工偏好,并监控修复后是否出现过度简短或内容缺失。只有数据侧和解码侧的对照都做完,才能说明去重或偏好训练确实解决了复读,而不是把现象暂时压住。

口语版讲法(约4分钟)

  • 定义可观测的重复类型
  • 拆开数据频率与生成循环机制
  • 排查训练和解码共同因素
  • 说明去重与偏好优化的边界
  • 建立可复现评测闭环

所谓复读机,是模型生成时出现不必要的token、短语、句子或整段循环,并且不能在合适位置结束。先要把它与任务本身要求的重复区分,例如代码中的变量复用、歌词结构或用户要求逐字引用都不算故障。评测时可以统计重复片段、连续相同n-gram、异常长度和EOS缺失,再结合人工样本确认。

训练数据重复会改变经验分布。同一文档或模板反复出现,相当于在损失中获得更高权重,模型更容易记住这些序列,也会浪费训练预算。近重复还可能跨越训练与评测集合,制造虚高指标。但这并不意味着只要有重复数据,模型就一定在解码时进入循环;是否循环还受到上下文、模型容量、训练阶段和生成策略影响。

从训练侧看,我会检查精确与近重复率、模板集中度、长文本截断、EOS标注和样本拼接。错误的EOS处理或大量未自然结束的样本,会让模型学不到何时停止;小数据上过度训练也可能放大模板记忆。MLE本身是在拟合条件分布,不能简单等同于概率坍缩,更不能把所有循环都归为MLE的固有结果。

从推理侧看,还要复现具体temperature、top-p、beam设置、重复惩罚和最大长度。过于贪心的解码可能把模型带入局部高概率回环;某些惩罚又可能破坏正常复现。处理顺序应是先在固定提示和固定随机种子下定位故障,再分别做数据去重、checkpoint对比和解码消融,确认问题来自哪里。

DPO通常建立在已完成SFT的策略上,用偏好对拉开优选与拒选回答的相对概率。它可以在偏好数据明确标注重复问题时帮助调整行为,但不是绕开MLE的通用替代,也不能修复错误EOS、严重数据污染或推理代码缺陷。偏好样本若只奖励短答案,还可能带来新的长度偏差。

我的验收会保留一组未参与调参的提示,按任务和长度分桶,对比重复率、完成率、事实质量与人工偏好,并监控修复后是否出现过度简短或内容缺失。只有数据侧和解码侧的对照都做完,才能说明去重或偏好训练确实解决了复读,而不是把现象暂时压住。

定位循环时还可以查看每一步候选token概率和EOS概率。如果在某个重复片段后分布越来越尖,说明模型与解码形成回环;如果换成教师强制输入就恢复,问题更偏推理暴露。对照去重前后checkpoint时要保持解码完全一致,否则无法判断改善来自数据还是采样参数。

关键一句:训练数据重复为什么只是风险因素,而不是生成循环的充分条件。

核验来源

  1. Deduplicating Training Data Makes Language Models Better
  2. The Curious Case of Neural Text Degeneration
  3. Direct Preference Optimization

面试官还可能这样问

  1. 问法 1 · 场景切入

    假设一个客服模型完成 SFT 后,在部分对话里反复输出同一句话。训练集存在大量近重复模板,但 EOS 标注和解码参数也可能有问题。你会怎么设计对照实验,判断复读主要来自哪一环?

  2. 问法 2 · 层层追问

    先定义什么算异常复读……重复样本会怎样改变经验分布和样本权重?……EOS、过度训练和解码策略又可能怎样造成循环?……为什么不能把所有复读都直接归因于 MLE?

  3. 问法 3 · 直球技术

    解释 SFT 复读问题的表现与成因,重点说明重复样本如何改变训练分布,并给出区分数据、训练和解码问题的验证方案。

同模块相关题目