引言
即便是最先进的 LLM,在复杂的多步推理问题上仍然面临挑战。如何提高 LLM 的推理准确性和一致性,成为了 AI 研究者们关注的焦点。

LLM 推理能力的局限性
尽管 LLM 在各种自然语言任务中表现出色,但在数学和代码推理等复杂任务中仍然存在明显的短板。研究者们发现,即使是最先进的 LLM,在生成单一解决方案时的准确率往往不尽如人意。然而,有趣的是,当允许模型生成多个解决方案时,正确答案通常能够在这些样本中被找到,召回率甚至超过 85%。

这一发现为解决 LLM 推理挑战提供了新的思路:通过扩大推理计算规模,采样多个候选解决方案,可能是一种有效的改进方法。然而,如何从这些候选方案中筛选出正确答案,成为了关键问题。
构建全面的验证器训练数据集
为了解决这一问题,研究团队首先构建了一个全面的训练数据集。这个数据集包含了多个 LLM 推理器生成的正确和错误解决方案,涵盖了数学和代码推理任务。
对于数学推理,研究者使用了 GSM8k 和 MATH 数据集作为种子数据集,从多个 backbone 模型中采样解决方案。这些模型包括通用 LLM(如 Mistral 和 Phi3) 以及专门用于数学的模型 (如 InternLM2-Math 和 MAmmoTH2-plus)。对于每个问题,他们采样了 10 个 CoT 解决方案并去除重复项。最终,他们得到了 159,778 个正确解决方案和 100,794 个错误解决方案,平均每个问题有 10.67 个正确解决方案和 6.73 个错误解决方案。
对于代码推理,研究者同样使用了通用 LLM 和专门用于代码的模型。他们选择了 MBPP 和 MagiCoder-75k 的 Python 子集作为种子数据集。通过生成过程,他们最终得到了 132,089 个正确解决方案和 145,345 个错误解决方案,平均每个问题有 11.10 个正确解决方案和 12.21 个错误解决方案。
这种多样化的数据集为验证器提供了丰富的学习资源,使其能够更有效地区分和排序不同 LLM 产生的解决方案。
验证器训练方法的深入比较
在构建了全面的训练数据集后,研究团队对不同的验证器训练方法进行了系统的比较。他们主要考察了两大类方法:结果奖励模型 (Outcome Reward Models, ORMs) 和偏好调优 (Preference Tuning)。这两类方法在原理和实现上有显著差异,各有优缺点。
结果奖励模型 (ORMs)
ORMs 是一种直接的方法,其核心思想是在 LLM 的输出层上添加额外的计算结构,用于评估生成内容的质量。
具体实现:
- 额外计算头:在 LLM 的每个 token 输出上添加额外的计算头。
- 标量输出:这些额外的计算头输出标量值,代表对应 token 的"质量"或"正确性"。
- 二元分类训练:使用二元分类损失进行训练,通常采用正确解答作为正例,错误解答作为负例。
优点:
- 直观:方法简单直接,易于理解和实现。
- 灵活性:可以为每个 token 分配不同的权重,理论上能捕捉更细粒度的信息。
缺点:
- 额外参数:引入了额外的参数,增加了模型的复杂度。
- 训练不稳定:可能面临训练不稳定的问题,特别是在处理长序列时。
偏好调优 (Preference Tuning)
偏好调优方法,如直接偏好优化 (DPO),采用了一种不同的策略。这类方法不直接学习评分函数,而是通过比较学习来优化模型输出。
具体实现:
- 成对数据:训练数据由成对的解答组成,一个被标记为"优选",另一个为"非优选"。





