微软提出IDFT:一种高效的大模型后训练算法,媲美强化学习效果

微软提出IDFT,一种高效的大模型后训练算法,通过量化SFT和RL的数据差异,结合域内微调和提示解码,实现媲美强化学习的效果,告别灾难性遗忘。

原文标题:用SFT打出RL的效果?微软联合提出高效后训练算法

原文作者:机器之心

冷月清谈:

微软和东南大学联合提出了名为IDFT(In-Distribution Fine-Tuning)的高效后训练算法,旨在结合监督微调(SFT)和强化学习(RL)的优势。该研究的核心在于量化和理解SFT和RL在数据层面的差距,通过中心化对数似然(CLL)这一指标更准确地衡量数据是否为模型自身生成(On-policy)。IDFT包括域内微调(损失层面)和提示解码(数据层面)两项技术,前者通过自适应调节机制避免SFT的盲目拟合和灾难性遗忘,后者则通过在Self-distill过程中基于模型输出熵进行模式切换,使模型更好地消化分布外知识。实验结果表明,IDFT在泛化能力和训练效率上均超越了SFT和Offline RL算法,为大模型后训练提供了一个新的思路。

怜星夜思:

1、文章中提到IDFT通过自适应调节机制避免SFT的盲目拟合,那么在实际应用中,如何选择合适的CLL阈值来平衡模型的学习速度和泛化能力?
2、Hinted Decoding通过Teacher模型的熵来决定是否采纳其输出,那么,如果Teacher模型本身存在偏差或错误,会不会对Student模型造成误导?如何避免这种情况发生?
3、文章中提到IDFT与CoT补全、dLLM解码、Speculative Decoding等领域有天然交集,那么,IDFT在这些领域的具体应用前景有哪些?例如,如何将IDFT应用于提升CoT推理的可靠性和效率?

原文内容


在大模型后训练阶段,监督微调(SFT)和强化学习(RL)是两根不可或缺的支柱。SFT 利用高质量的离线(Off-policy)数据快速注入知识,但受限于静态数据分布,泛化能力往往容易触及天花板并带来灾难性遗忘;RL 则允许模型在探索中不断自我迭代,产生与当前策略同分布(On-policy)的数据,上限极高,但往往伴随着训练极度不稳定、计算资源消耗巨大的痛点。


那么,我们有没有可能取长补短?直接产生 On-policy 数据并用高效的 SFT 训练,从而达到媲美甚至超越 RL 的效果?


为此,微软、东南大学联合提出新工作「Towards On-Policy SFT: Distribution Discriminant Theory and its Applications in LLM Training」。量化和理解 SFT 和 RL 在数据层面的差距,并提出 IDFT / 域内微调(损失层面)和 Hinted Decoding / 提示解码(数据层面)等高效后训练技术。



  • 论文地址: https://arxiv.org/abs/2602.12222

  • 代码地址: https://github.com/zhangmiaosen2000/InDomainCoT


「On-policy 数据」到底是什么?如何「量化」?

什么是 On-policy 数据?简单来说,就是模型用当前自身能力生成的数据,而传统的 SFT 使用的是外来的、人类或更强模型生成的「标准答案」(Off-policy)。这两者之间存在天然的分布偏移(Distribution Shift)


以往大家可能会想,直接用大模型领域最常用的困惑度(Perplexity, PPL)或者对数概率(Log-Likelihood)来衡量不就行了?PPL 低说明模型对这部分数据「很熟」,PPL 高就说明是陌生的分布外数据(OOD)。



但实际上,困惑度(PPL)会把「题目本身的难度」和「数据分布的偏移」混为一谈。比如在解答一道极具挑战性的数学题时,由于推理步骤复杂、可能的走向众多,模型输出的 PPL 自然会很高。但这仅仅是因为「题目难」(上下文难度大),并不代表这段推理不是模型用自己的「原生语感」写出来的。


换句话说,传统的对数概率或 PPL 在计算时,包含了大量来自上下文本身难易度的「噪声方差」。为了精准剥离这层干扰,本研究通过将问题建模为统计学假设检验背景来证明,存在一个信噪比(SNR)严格最优的量化指标——中心化对数似然(Centered Log-Likelihood, CLL)


图片


即:量化指标 = Token 的对数概率 + 当前上下文的预测熵。文章利用信号检测理论,证明了这个指标具有信噪比意义下的最优性,并给出了用和序列进行判断的误差界。具体细节见原文。



这套理论的优点是它几乎没有任何偏离 LLM 场景的理论假设,因此可以直接进行实验验证:



结果表明,文章中提出的指标确实明显地将来自模型生成的数据(红色)和其他来源的数据(蓝色)显著区分开。并且发现一条数据是否来自模型,事实上只受少量离群值 Token 的影响——就像你我语言风格不同,但区别也仅在少量语气词和用词习惯上不同,大部分 Token 为了满足语法和逻辑连贯性,区别是不大的。


这个工作的核心是一个简单清晰的第一性原理:先找一个稳定的量化指标指示 On- 和 Off-policy 数据的差距,然后在算法和数据上消除指标的差距,是否就意味着消除 SFT 和 RL 的差距?


损失层面:拒绝盲目「死记硬背」,
IDFT 让模型实现自适应学习

传统的 SFT 有一个致命的假设:它认为训练集里的每一个词都是绝对的「真理」


因此,SFT 的标准损失函数会对预测错误施加极其严厉的惩罚:当模型对某个词的初始预测概率趋近于 0 时,其梯度会直接爆炸(趋向于无穷大)。


这就导致了一个极其严重的后果:一旦训练数据中混入噪声,或者遇到了大幅超出模型当前能力的「分布外(OOD)」硬核数据,SFT 就会强迫模型通过剧烈的参数更新去「死记硬背」。这种暴力的拟合会粗暴地打碎模型在预训练阶段建立起来的通用知识网络和内在 Pattern。这也是为什么 SFT 往往会引发严重的「灾难性遗忘」,导致模型学了新知识,却丢了泛化能力。


为了拔除这个病根,文章提出了域内微调(In-Distribution Fine-Tuning, IDFT)



IDFT 放弃了强硬的盲目拟合,而是基于前文提到的量化指标 CLL(中心化对数似然),引入了一个精妙的「自适应调节」机制:



最终的实验结果也符合预期:



数据层面:让模型自己消化
分布外知识的「提示解码」

回到如何把数据集转化为 On-policy 版本的问题,一个非常直接的想法是给一个样例让模型重写 CoT 并模仿模型的风格。这被前人工作称为 Self-distillation。然而,文章表明,无论是 Case study 还是量化指标还是训练结果都表明:哪怕人眼看 Self-distill 的数据很像模型的分布,但对于模型训练来说,还是 Off-policy 的。



为了解决这个问题,文章提出了 Hinted Decoding,在 Self-distill(Teacher)和正常做(Student)之间做模式切换。以 Teacher 的熵为切换依据:如果看得到答案的模型认为当前 Token 确定性极高,说明是决定答案正确性的关键内容,则 Teacher 的比重增加;否则,则是风格性 Token,交给原本模型保持。结果表明,使用 Hinted Decoding 确实把模型的分布性指标提升上去了。



实验与 Case Study:
泛化超越 SFT,效率超越 RL


由于文章是对数据集一次性全处理的,因此与 Offline RL 算法公平比较。可以看见,文章提出的新方法不仅超越了出名的 Offline RL 算法,并使用远低于 RL 的资源。消融实验表明,Hinted Decoding 并不是简单的两种方案的加权,直接简单加权并不能取得很好的效果。基于熵的自适应模式切换是极其重要的。



写在最后

强化学习因为监督信号弱,被图灵奖得主 Yann LeCun 比作蛋糕上的樱桃。不可否认,在很多智能体、偏好学习等场景,强化学习难以替代。但对于拥有大量过程数据的场景,没有理由设计不出一个算法比只用答案验证的强化学习好。本文的工作提供了一个初步的尝试。


除此之外,这个工作还与多个领域和场景有天然交集:CoT 补全的过程和 dLLM 解码过程高度相似;文章中的指标可用于给定输入的 LLM 生成检测;双模型解码的过程与 Speculative Decoding 可以自然结合;文章中的理论可以应用于 On-policy Distill、OPSD 等的改进中;提示解码也可以应用于蒸馏当前不开放 CoT 只返回输出结果的商业模型。是一个具有发论文和应用潜力的基线工作。


作者介绍


本文两位共同一作:


  • 张淼森:微软亚洲研究院 & 东南大学联合培养博士四年级。研究方向包括多模态智能体、后训练算法等,擅长训练、评测数据构造与搭建。微软 Phi-Ground 作者,多个模型进入如 Windows Copilot 等微软产品。


  • 刘益杉:东南大学 2022 届计算机科学拔尖班。



© THE END 

转载请联系本公众号获得授权

投稿或寻求报道:liyazhou@jiqizhixin.com

这个问题很有意思!从理论上讲,CLL阈值的选取直接关系到模型学习的置信度。如果阈值设置过高,模型会过于保守,可能无法充分学习到新知识;如果阈值过低,模型又会受到噪声数据的干扰,导致性能下降。我认为可以从以下几个方面考虑:
1. 数据集质量: 如果数据集质量较高,可以适当降低阈值,让模型更多地学习数据中的信息。
2. 模型复杂度: 如果模型复杂度较高,可以适当提高阈值,避免模型过拟合。
3. 任务类型: 不同的任务可能需要不同的阈值。例如,对于需要高精度的任务,可以适当提高阈值。
此外,还可以考虑使用一些自适应阈值调整算法,例如基于验证集性能的动态调整方法,让模型在训练过程中自动学习到最佳的阈值。

CLL阈值的选择确实是个关键问题!我理解的阈值设置本质上是在控制“信任”数据的程度。阈值太高,模型可能只学到非常确定的知识,虽然稳定但缺乏探索,就像只吃自己舒适圈里的东西,进步缓慢。阈值太低,又容易引入噪声,导致模型学到错误的信息,反而适得其反。个人感觉可以考虑用A/B测试的方法,设置不同的阈值,观察模型在验证集上的表现,找到一个平衡点。另外,动态调整阈值或许也是个思路,比如训练初期采用较低的阈值鼓励探索,后期逐渐提高阈值保证稳定性。

除了NLP领域,IDFT还可以应用于图像生成、语音合成等领域。例如,在图像生成中,IDFT可以通过学习高质量的图像数据,并结合Hinted Decoding生成更逼真、更自然的图像。在语音合成中,IDFT可以通过学习高质量的语音数据,并结合Hinted Decoding生成更清晰、更自然的语音。感觉IDFT的应用范围非常广泛啊!

除了熵,我觉得可以考虑用KL散度来衡量Teacher和Student输出分布的差异。如果两个模型的输出分布差异很大,说明Student模型可能遇到了困难,这时候可以更多地依赖Teacher模型。反之,如果两个模型的输出分布比较接近,就可以让Student模型自由发挥,鼓励探索。