用这条Prompt构建CoT+PoT验证器评估LLM输出,显著提高LLM推理准确性和一致性

即便是最先进的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的输出层上添加额外的计算结构,用于评估生成内容的质量。

具体实现:

\1. 额外计算头:在LLM的每个token输出上添加额外的计算头。

\2. 标量输出:这些额外的计算头输出标量值,代表对应token的"质量"或"正确性"。

\3. 二元分类训练:使用二元分类损失进行训练,通常采用正确解答作为正例,错误解答作为负例。

优点:

  • 直观:方法简单直接,易于理解和实现。

  • 灵活性:可以为每个token分配不同的权重,理论上能捕捉更细粒度的信息。

缺点:

  • 额外参数:引入了额外的参数,增加了模型的复杂度。

  • 训练不稳定:可能面临训练不稳定的问题,特别是在处理长序列时。

偏好调优(Preference Tuning)

偏好调优方法,如直接偏好优化(DPO),采用了一种不同的策略。这类方法不直接学习评分函数,而是通过比较学习来优化模型输出。

具体实现:

\1. 成对数据:训练数据由成对的解答组成,一个被标记为"优选",另一个为"非优选"。

\2. 概率调整:模型学习调整其输出概率分布,使"优选"解答的生成概率高于"非优选"解答。

\3. 损失函数:使用特殊设计的损失函数,如DPO中的Bradley-Terry模型推导的损失。

优点:

  • 无额外参数:不需要引入额外的模型参数。

  • 保持生成目标:与LLM原有的自回归文本生成任务保持一致。

  • 相对评价:通过相对比较学习,可能更符合人类评判的直觉。

缺点:

  • 数据要求:需要成对的比较数据,数据准备可能更复杂。

  • 计算开销:在训练和推理时可能需要更多的计算资源。

无参考偏好调优方法(如SimPO)

研究团队发现,无参考的偏好调优方法(如SimPO)在训练验证器时表现最佳。这类方法是对标准偏好调优的进一步改进。SimPO 的有效性归因于一个关键设计:使用序列的平均对数概率作为隐含奖励,这种奖励公式更好地与模型生成保持一致,并且无需参考模型,从而提高了计算和内存效率。

特点:

\1. 移除参考模型:不使用参考模型来计算奖励函数,减少了内存和计算开销。

\2. 简化目标:直接优化生成模型和奖励函数之间的差异。

\3. 更好的泛化:理论上可以减少训练和推理之间的差异。

优势:

  • 效率:减少了计算和内存需求。

  • 一致性:训练目标与推理时的评分方式更加一致。

  • 灵活性:更容易适应不同的任务和数据集。

实验结果和分析

研究团队通过严格的实验比较了这些方法:

\1. 性能比较:SimPO在多个数据集上均优于ORMs和标准DPO。

\2. 稳定性:无参考方法表现出更好的训练稳定性和泛化能力。

\3. 计算效率:SimPO在训练和推理时都显示出更高的计算效率。

研究者推测,SimPO的优越性能可能源于以下几个因素:

  • 目标一致性:训练目标与实际使用场景(评分而非生成)更加匹配。

  • 减少过拟合:移除参考模型可能减少了对特定训练数据的过拟合。

  • 简化学习:直接学习相对偏好可能比学习绝对分数更容易。

CoTnPoT:结合语言和代码答案的创新验证方法

研究团队提出了一种名为CoTnPoT的创新方法,结合了CoT和PoT解决方案的优势。CoT解决方案更具描述性和可读性,而PoT解决方案高度抽象和结构化,可以直接执行以识别运行时错误。使用CoTnPoT和Math-Rev,在数学推理验证性能方面显著优于两个基线一Math-Shepard和Math-Minos。此外,如图所示,Math-Rev+Qwen2-72B-Instruct在LLMs中表现优于最先进的模型,包括LLaMA3.1-405B和GPT-4o。

CoTnPoT方法的工作流程如下:

\1. 使用coder LLM将CoT解决方案转换为PoT格式。

\2. 执行PoT解决方案,并将结果与CoT解决方案的最终答案进行比较。

\3. 过滤掉CoT答案与相应PoT结果不匹配的解决方案。

\4. 将剩余的CoT解决方案输入验证器进行评分。

\5. 选择得分最高的解决方案作为最终答案。

这种方法巧妙地结合了CoT的可读性和PoT的可执行性,有效提高了验证的准确性。

实验结果:显著提升的推理性能

研究团队在多个基准测试上评估了他们的方法,以下是实验结果。

数学推理任务

在GSM8k数据集上,使用Qwen-72B-Instruct作为backbone推理器,结合Math-Rev验证器和CoTnPoT方法,达到了95.6%的准确率。这一结果大幅超越了现有的最佳表现。

在更具挑战性的MATH数据集上,同样的组合达到了76.9%的准确率,超过了包括GPT-4o在内的多个强大基线模型。

代码推理任务

在MBPP数据集上,CoTnPoT方法同样表现出色。例如,使用CodeQwen作为backbone推理器,结合Code-Rev验证器和CoTnPoT方法,在MBPP测试集上达到了80.3%的通过率,比不使用CoTnPoT的版本提高了2.8个百分点。

与现有验证器的比较

研究团队将他们的Math-Rev验证器与两个最近的基线(Math-Shepard和Math-Minos)进行了比较。在保持一致的LLM推理器(MetaMath-7B-Mistral)的情况下,Math-Rev在GSM8k和MATH500数据集上都取得了最佳表现,分别达到90.75%和46.40%的准确率。这一成功归功于更有效的验证器训练方法(SimPO)和从多个LLM推理器采样的成对训练数据。

方法的局限性与未来方向

尽管这项研究取得了显著成果,研究团队也坦诚地指出了当前方法的一些局限性:

1. 计算开销: 采样和重新排序策略相比贪婪解码引入了额外的计算开销,这可能在大规模数据集或实时应用中带来挑战。

2. 解决方案级别反馈: 当前的验证器基于结果奖励模型(ORM),提供解决方案级别的反馈,而非步骤级别的反馈。虽然这种粒度在整体验证中很有效,但缺乏过程奖励模型(PRM)那样的细粒度评估能力。

3. 验证器生成能力的退化: 通过偏好对训练的验证器虽然在评分方面表现出色,但其生成连贯句子的能力迅速退化。这可能限制了验证器在某些场景下的应用。

未来的研究方向可能包括:

\1. 优化计算效率:探索更高效的采样和验证策略,以减少计算开销。

\2. 细粒度反馈:开发能够提供步骤级别反馈的验证器,同时保持可扩展性。

\3. 保持生成能力:研究如何在提高验证性能的同时,保持模型的生成能力。

对Prompt工程师的启示

这项研究对正在开发AI产品的Prompt工程师们具有重要的实践意义:

1. 多样化采样: 在设计推理任务的prompt时,考虑生成多个候选解决方案,而不是仅依赖单一输出。

2. 结构化输出: 鼓励模型生成结构化的解决方案,以便于后续的验证和分析。

3. 交叉验证: 考虑将自然语言解释(CoT)和可执行代码(PoT)结合使用,互相验证以提高可靠性。

最 后

您也可以像我这样,把论文里的这个方法写成SYSTEM PROMPT用于解决多步骤问题的自我验证,可以显著提高您项目里输出的准确性和一致性。以下图为例:

如何学习AI大模型?

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

四、AI大模型商业化落地方案

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

相关推荐
四口鲸鱼爱吃盐14 分钟前
Pytorch | 利用MI-FGSM针对CIFAR10上的ResNet分类器进行对抗攻击
人工智能·pytorch·python
zaim11 小时前
计算机的错误计算(一百八十七)
人工智能·ai·大模型·llm·错误·正弦/sin·误差/error
请你喝好果汁6411 小时前
机器学习架起了组学科学和植物育种之间的桥梁。
linux·人工智能·机器学习
合合技术团队1 小时前
高效准确的PDF解析工具,赋能企业非结构化数据治理
人工智能·科技·pdf·aigc·文档
瞻邈2 小时前
lpips使用笔记
人工智能·python·深度学习
瞻邈2 小时前
Diffusers使用笔记
人工智能·python·深度学习
dundunmm2 小时前
机器学习之KNN算法
人工智能·算法·机器学习·数据挖掘·knn·分类算法
程序员小灰2 小时前
OpenAI正式发布o3:通往AGI的路上,已经没有了任何阻碍
人工智能·aigc·openai
deephub2 小时前
LEC: 基于Transformer中间层隐藏状态的高效特征提取与内容安全分类方法
人工智能·深度学习·transformer·大语言模型·特征提取
Eric.Lee20212 小时前
数据集-目标检测系列 车牌检测&识别 数据集 CCPD2019
人工智能·python·目标检测·计算机视觉·车牌识别·车牌检测·yolo检测