1. 推理模型循环现象的本质剖析
最近在调试DeepSeek-R1等推理模型时,发现一个令人困扰的现象:在低温(low temperature)或贪心解码(greedy decoding)策略下,模型特别容易陷入重复输出的循环。起初我们团队也认为这只是随机性不足导致的常见问题,但经过大量实验分析后发现,这背后隐藏着更深层次的训练机制缺陷。
1.1 现象观察与初步假设
在AIME 2024/2025测试集上的统计数据显示(如图1所示),1.5B参数的小模型在T=0(完全贪心)设置下,30%的响应会出现30-gram重复≥20次的情况,而32B的大模型几乎不会出现这种现象。这个对比立刻引起了我的注意——如果只是简单的随机性问题,大小模型的表现差异不应该如此显著。
关键发现:升温到T=1.0后,小模型的循环现象确实会消失,但其生成的推理链平均长度仍然是大模型的1.5倍。这说明模型只是通过随机性"逃出"了循环,并没有真正学会正确的推理路径。
1.2 两种核心机制的发现
通过设计精密的对照实验(包括简化版的"星图随机游走"测试),我们识别出导致循环的两种根本机制:
风险规避机制:当模型面对多个看似合理的后续选择时,如果正确选项难以学习(比如在复杂数学推理中),模型会将这些"难学动作"的概率值摊薄到多个候选项上。而那些简单、重复性的动作(如回到上一步)反而会因此获得相对更高的概率权重。在贪心解码时,模型就会持续选择这些简单循环动作。
时序相关误差:Transformer架构的一个隐蔽特性是会对自身先前产生的错误产生记忆效应。当模型在某一步犯了一个微小错误后,这个误差会在后续步骤中自我强化,导致模型不断重复同样的错误路径。这与人类解题时"钻牛角尖"的现象颇为相似。

需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 机制背后的数学原理
2.1 风险规避的形式化证明
研究团队给出了一个精妙的命题证明:假设教师模型(teacher model)给正确动作的概率为1-p,给循环动作的概率为p。当学生模型(student model)完全无法区分n个正确动作时,最大似然训练会使学生将1-p的概率均摊到(1-p)/n每个正确动作上,而循环动作仍保持p的概率。
这就导致一个关键不等式:当p > (1-p)/n时,贪心解码永远会选择循环动作。举个例子,如果p=0.3,n=5(即有5个可能的正确后续步骤),那么循环动作的概率0.3将大于每个正确动作的(1-0.3)/5=0.14,模型就会陷入循环。
2.2 时序相关误差的量化分析
在设计的对照实验中,我们发现一个惊人的现象:在T=0设置下,同一子节点连续两次被赋予最高概率的比例高达96.7%(理想情况下应该≤20%)。这说明Transformer的注意力机制对历史路径有着极强的依赖性。
我们尝试在训练数据中加入"margin"惩罚(对已访问节点降权),虽然将相关性降到了61%,但仍远未达到理想水平。这提示我们可能需要更根本的架构改进,而不仅是训练技巧的调整。
3. 实际案例中的"自信飞轮"效应
在分析真实场景的循环trace时,我们发现一个正反馈循环现象:一旦模型开始重复,它对"继续重复"的预测概率会迅速飙升到0.99以上。就像图15展示的那样,模型会进入一种"越重复越自信"的状态。
实操心得:我们在玩具任务中故意注入仅0.1%的确定性循环数据,就足以使低温下的循环次数翻三倍,并将准确率打到接近零。这说明预训练语料中偶发的重复序列(如列表项、代码块等)可能已经给模型植入了不良的先验。
4. 系统性解决方案
4.1 训练阶段的关键改进
数据增强策略:针对学生模型预测loss特别高的位置,我们在训练数据中插入中间提示标签。例如在数学推理中,对关键转折步骤显式标注"这里需要应用余弦定理"。实验证明这能显著降低动作的"学习难度"。
课程学习设计:采用渐进式训练策略:
- 先使用强约束(如完全禁止重复)训练基础能力
- 逐步放宽约束,引入可控的重复机制
- 最后在完整任务上微调
蒸馏策略优化:传统蒸馏直接模仿教师轨迹,我们改为:
- 先对教师输出进行去循环处理
- 在关键决策点插入解释性标注
- 用处理后的数据训练学生模型
4.2 模型架构的创新尝试
我们试验了几种打破对称性的新结构:
- 子图记忆单元:在Transformer层间加入图神经网络模块,显式记录已访问的推理路径
- 时间相关注意力掩码:对最近n步的注意力权重施加衰减因子
- 多视角预测头:并行预测后续k步的可能路径,避免局部最优
其中子图记忆单元在星图测试中表现最佳,将循环率从50%降至18%,但带来了约15%的计算开销。
4.3 解码时的工程技巧
虽然治标不治本,但这些方法在工程实践中很实用:
- 动态重复惩罚:根据上下文长度自适应调整惩罚系数
python复制def get_penalty(context_len):
base = 1.2
return base ** (context_len / 10)
- 对比搜索:在候选序列中引入差异性度量
- n-gram阻塞:设置动态窗口大小的重复检测
5. 实践中的经验教训
在DeepSeek-R1的实际部署中,我们总结出几条关键经验:
-
监控循环的早期信号:不要等出现完全重复才干预。当连续3步的预测熵值低于阈值时(如<0.3),就应该触发修正机制。
-
温度参数的动态调节:不要固定使用T=0或T=1。建议的启发式规则:
- 初始步骤:T=0.3(适度探索)
- 中间推理:T=0(保持严谨)
- 最终结论:T=0.7(多样化输出)
-
混合精度训练的重要性:我们发现使用纯FP16训练会放大时序误差约40%。采用AMP(自动混合精度)并保持关键层(如注意力softmax)在FP32,能显著改善稳定性。
-
批处理策略的影响:当batch size>64时,循环现象会加剧。建议在微调阶段使用较小的batch(16-32),并在推理时禁用批处理。
6. 未来改进方向
基于当前研究成果,我们认为这些方向最有潜力:
- 基于因果发现的课程设计:通过分析错误传播路径,反向推导最优训练顺序
- 神经符号混合架构:在关键决策点引入符号推理模块
- 多模态监控信号:结合眼动追踪等生物指标评估模型"注意力分配"的合理性
- 分布式训练策略优化:探索模型并行中梯度同步频率与学习稳定性之间的关系
这项研究最深刻的启示是:大模型表现出的"智能缺陷",往往反映了训练数据或目标函数中的深层偏差。就像教育孩子一样,与其在犯错后惩罚,不如从一开始就提供更清晰的学习指引。
