通过最终代币偏好优化减少厄运循环
厄运循环是在推理过程中常见的失败模式:模型发出一个跨度(通常类似于“等一下,让我考虑一下……”),然后一次又一次地重复相同的跨度,直到上下文窗口耗尽。小型推理模型更容易出现这种行为,尤其是在长时间思考的痕迹和复杂问题上[1]。常用的推理时间修复方法是对输出分布应用重复惩罚(repetition_penalty)。然而,这只是一个权宜之计,可能会降低性能。强化学习可以针对重复循环,但它通常需要精心校准的奖励和昂贵的在线执行。我们的方法采取了一种更有针对性的方式。我们识别出开始循环的确切代币,训练模型在该单一位置更倾向于连贯的替代方案,同时保持其余分布基本不变。该方法适应了反斜线(Antislop)[2],在代表单个完成代币的选择/拒绝对上进行训练,使用最终代币偏好优化(Final Token Preference Optimization,FTPO)。我们将我们的方法称为“反厄运”。在LFM2.5-2.6B的早期检查点上,10.2%的关于困难数学和编程提示的完成产生了重复循环。在反厄运训练后,该比率降至1.4%,评估分数普遍提高,直接源于循环减少。厄运循环的结构 厄运循环在推理中可能由于三种机制共同作用而产生:机制1:过度训练的代币 + 不确定性 在词汇中,一些代币通常更容易被选择。现实世界中的知名例子包括“深究”和“见证”。如果在模型的训练集中使用了合成数据,就可能出现这种情况,从而导致这些词的分布高于人类写作中通常发生的情况。在推理模型中,高优先级的延续通常包括话语标记和自我反思代币,如“等一下”或“另外”。这些代币并不一定是坏的,可以标记有用的策略改变、验证步骤或推理痕迹中的分支。然而,当模型不确定或陷入困境时,它们可能成为有吸引力的回退延续,重新启动相同的局部推理模式,而不是帮助模型取得进展。对于LFM2.5-2.6B的早期检查点,最常见的开始厄运循环的代币是:代币数量 2277 11.39% ' the' 902 4.51% ' So' 644 3.22% ' 另外' 511 2.56% ' 等待' 493 2.46% ' 但是' 当模型不确定时,这些过度训练的代币在下一个代币分布中占主导地位,这似乎是循环在困难数学和编程问题的推理痕迹中最常出现的原因。先前的工作[4,5]给出了相似的退化描述:基于可能性训练的模型可能会过度分配概率给重复和频繁的词,而推理模型在低温解码时可能会在未能识别出有用的下一步时循环,反而回落到重复。机制2:先前的上下文加强循环 早期的序列使得之后更有可能出现这些相同的序列。随着每次重复,循环跨度中每个代币的概率朝1靠拢。Duan等[6]在他们对循环推理的研究中研究了这种循环。他们将其与“V形”注意模式相关联,并发现语义重复(模型卡在一个想法上) precedes文本重复(相同的词出现在输出中)。机制3:贪心采样 推理模型通常在低温下运行,以使得痕迹保持稳定和可复制。在温度为0时,总是选择最可能的代币,而局部加强的循环没有出口。理论上,更高的温度有助于,但一旦机制2将循环代币的概率推至接近1,其余词汇几乎没有被分配概率,因此在更高温度下采样仍可能卡在循环中(我们的结果表明,即使在temp=0.67时,循环依然显著)。温度越低,循环越严重。定位失败 为了构建一个有针对性的训练集,我们在设计用于引发循环的提示组合(LiquidAI/antidoom-mix-v1.0)下以低温生成完成,然后挖掘失败。如果一个样本中的某一部分至少重复四次,且字符数超过60个,则检测到一个循环。在实践中,这些约束有助于避免假阳性和假阴性。一旦识别出循环序列,我们针对第一个重复的第一个代币。在该位置,我们提取基础模型的top-k对数概率替代方案,过滤掉短或非字母数字噪声,保留多达20个合理的替代品作为被选择的代币。每个训练行由一个[提示前缀,一个被拒绝的代币,一个或多个被选择的代币]元组组成。然后我们在训练前对拒绝和选择的分布进行正则化:一小部分罪魁祸首(等候、所以、the)否则将占主导地位,过度抑制它们会降低推理效果。最终代币偏好优化 最终代币偏好优化(FTPO)是一种偏好优化算法。
本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。
☕请我喝杯咖啡