自一致性首选项优化SCPO,让LLM多次回答同一个问题,选输出频率最高的答案 |Meta最新
传统的训练方法通常依赖于大量人工标注的数据和外部奖励模型,这些方法往往受到成本、质量控制和泛化能力的限制。因此,如何减少对人工标注的依赖,并提高模型在复杂推理任务中的表现,成为了当前的主要挑战之一。

Meta的研究团队提出了 自一致性首选项优化(Self-Consistency Preference Optimization,SCPO) 这一创新方法,为解决这一问题提供了新的思路。SCPO通过一种独特的训练机制,利用模型自身的推理一致性来优化其能力,而无需依赖人工标注的答案或外部奖励模型。这个方法特别适用于数学推理、逻辑推理等多步骤的复杂任务,并能在没有金标准标签的情况下,显著提高模型的推理准确性。

图片由修猫制作
研究背景与现有方法的局限
现有方法的主要问题
1.人工标注的局限性
标注成本高昂,特别是复杂推理任务的标注需要专家参与。
标注质量难以保证,尤其是在规模扩展时,数据质量的控制成为瓶颈。
人工标注的扩展性受限,无法快速应对任务需求的变化。
2.外部奖励模型的问题
在分布外(OOD)问题上表现不佳,无法处理超出训练数据分布的新类型问题。
需要额外的训练成本,包括对奖励模型本身进行调优和标注。
奖励模型可能引入新的偏差,使得训练过程更为复杂。
3.自评估方法的不可靠性
模型难以准确评估自己的答案,特别是在多步骤推理中,模型往往难以判断其每一步的合理性。
自我确认偏差可能导致模型陷入错误的答案路径中,无法自我纠正。
缺乏客观的评判标准,自评估结果的可靠性较低。
SCPO方法详解
核心思想
SCPO的核心思想源于一个简单而深刻的观察:当模型多次回答同一个问题时,出现频率最高的答案往往更可能是正确的。这种方法依赖以下几个理论基础:
- 错误答案的随机性:错误答案通常是随机的,不同的错误答案难以在多次推理中导向相同的结果。
- 正确推理路径的稳定性:正确的推理路径更容易在模型多次采样时产生一致的结果。
- 一致性作为质量指标:答案的一致性程度可以作为答案质量的有效指标,出现频率高的答案往往有更高的可信度。
实现流程

问题生成阶段
如图中左侧部分所示,SCPO首先通过少样本提示(few-shot prompting)生成新问题。初始的种子问题会被用作模板,通过模型生成新的类似问题。这些新问题会经过一致性验证,即模型对同一问题生成多次回答并进行投票。只有那些模型在回答中一致性较高的问题,才会被保留并添加到训练数据中,以此不断扩展数据集。
2. 答案生成与评估
在图的中间部分,SCPO通过对每个生成的问题多次采样,得到多个不同的回答。这些回答通过投票机制进行评估,最终选出投票次数最多的答案作为“优选答案”,投票次数最少的作为“被拒绝答案”。这些答案对被称为首选项对(Preference Pairs),在训练过程中会用来优化模型,使模型更倾向于输出一致性高的答案。
3. 训练过程
如图右侧部分所示,SCPO通过一个创新的加权损失函数来训练模型。在每个首选项对中,“优选答案”和“被拒绝答案”根据其在投票中的表现赋予不同的权重。损失函数结合了直接偏好优化(DPO)和负对数似然(NLL),以确保模型不仅倾向于选择自一致性高的回答,同时逐步减少不一致性。这一迭代训练过程使得模型在每次迭代中都朝着更加精确、稳健的方向演化。
损失函数设计
SCPO使用了一个创新的加权损失函数,结合了直接偏好优化(DPO)和负对数似然(NLL)损失,以确保模型不仅在选择答案上更偏好一致性高的选项,而且在生成过程中减少不一致性。
实验结果分析
1. GSM8K和MATH数据集上的表现

实验结果表明,在GSM8K和MATH数据集上,SCPO方法在没有使用任何金标准答案的情况下显著提升了模型的零样本推理能力。在GSM8K数据集上,经过两轮SCPO训练,模型的准确率从基础模型的41.17%提升至63.91%,几乎达到了使用全量监督学习训练模型的表现(64.29%)。在MATH数据集上,SCPO的效果也非常显著,准确率从基础模型的14.46%提高到19.72%。
此外,研究者还发现,当SCPO与标准的监督学习结合使用时,模型的性能得到了进一步的提升。例如,在有监督的数据集上,使用半监督SCPO的模型在GSM8K数据集上的准确率比仅使用监督学习的基线模型提高了2.35%(从64.29%提高到66.64%)。
2. ZebraLogic数据集:逻辑推理的突破

在更具挑战性的逻辑推理任务ZebraLogic上,SCPO的效果尤为显著。经过两轮SCPO训练,模型在ZebraLogic测试集上的整体解谜准确率从基础模型的11.6%提升至18.1%,甚至超越了一些更大规模的语言模型,如Llama-3 70B(17.2%)和Claude-3 Haiku(14.3%),展示了SCPO在逻辑推理任务中的强大能力。
3. 无监督与半监督的对比
对比实验表明,SCPO即使在完全无监督的情况下,其推理性能几乎可以媲美使用全量标注数据进行监督训练的模型。而当SCPO结合部分标注数据进行半监督训练时,模型在多个任务上的表现甚至超过了传统的全监督训练方法。例如,在MATH数据集上,SCPO的半监督模型准确率达到了20.48%,超过了仅使用外部奖励模型的18.08%。这些结果进一步验证了SCPO的有效性和实用性。
进一步的分析与探讨
1. 权重损失函数的重要性
实验还表明,SCPO的加权损失函数对于模型的训练至关重要。与未加权的损失函数相比,加权的SCPO损失函数能够更有效地引导模型向正确答案学习,特别是在训练的早期阶段,准确率显著提升。在GSM8K数据集上,加权损失函数的模型在第一轮训练后的准确率比未加权的版本高出2.5%,这表明考虑答案的自信度是优化模型推理能力的重要因素。
2. 自一致性的影响
SCPO通过投票机制衡量模型对某个回答的自信度。在多轮训练后,模型在推理任务上的一致性显著提高,不仅提升了答案的稳定性,也增强了整体推理性能。研究者还发现,自一致性与模型的推理准确率密切相关,这进一步支持了SCPO在推理任务中的有效性。
3. 与外部奖励模型的对比
为了进一步评估SCPO的有效性,研究者将其与依赖外部奖励模型的IRPO方法进行了比较。结果显示,SCPO在各项任务中的表现均优于IRPO,尤其是在逻辑推理任务中,SCPO的方法更加稳定且泛化性更强。与依赖于外部奖励模型不同,SCPO不依赖于外部的金标准标签,从而能够更好地处理不同分布外的新类型推理任务。
对Prompt工程师的实践指导
1. 提示词设计策略
- 多样性采样策略:通过调整采样温度和top-p参数,可以生成具有多样性的回答。这种方法可以有效地帮助模型探索可能的解答路径,从而提高模型对答案的一致性。
- 一致性验证:通过多次采样同一个问题并对生成的回答进行投票验证,以确保最终的答案具有较高的一致性。
2. 应用场景建议
SCPO特别适用于以下几个应用场景:
- 复杂推理任务:如数学求解、逻辑推理和多步骤规划等,这些任务往往需要模型具有较强的推理和一致性。
- 质量控制:在需要对生成结果进行验证和筛选的场景中,SCPO可以通过一致性验证提高答案的质量。
- 领域适应和能力扩展:SCPO能够有效提高模型在特定领域的适应性,帮助模型在数据稀缺或无标注的场景中实现能力扩展。
3. 实施建议
- 数据收集阶段:使用高质量的种子问题来初始化模型,并使用少样本提示生成新问题,通过一致性筛选来保证数据的质量。
- 训练阶段:合理设置采样参数和一致性阈值,监控训练进展并根据需要调整模型的偏好。
- 评估阶段:通过多维度的评估指标(如一致性、准确性和多样性)对模型进行全面评估,确保其在实际应用中的可靠性。

Slide left and right to see more
方法局限性与解决方案
1. 计算资源消耗
- 问题:SCPO方法需要对同一问题进行多次采样,训练过程也需要多次迭代,计算资源需求较高。
- 解决方案:可以通过批处理优化、设置合理的采样数量和优化采样策略来降低计算成本。
2. 适用范围限制
- 问题:SCPO主要适用于有明确答案的问题,而在开放性问题上,其效果尚不确定。
- 解决方案:将SCPO与其他评估方法结合,针对特定场景优化,并开发混合评估策略来提高开放性任务的表现。
3. 一致性陷阱
- 问题:SCPO可能会在错误答案上达成一致,导致模型形成偏见。
- 解决方案:引入多样性机制,设置动态一致性阈值,并通过定期评估来避免模型陷入一致性陷阱。
SCPO方法为Prompt工程师提供了一个全新的视角,展示了如何通过巧妙的机制设计来提升模型能力。这种方法不仅降低了对人工标注的依赖,还提供了一条可扩展的模型能力提升路径,尤其是在标注困难的复杂推理任务中,SCPO的方法展示了强大的潜力和实践价值。它的出现,代表了LLM从“被动学习”向“主动自我优化”迈出的重要一步,为AI领域的自我对齐和自我改进提供了新的可能性。
文章来自于微信公众号“AI修猫Prompt”,作者“ AI修猫Prompt”












































全部评论
留言在赶来的路上...
发表评论