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

即便是最先进的LLM,在复杂的多步推理问题上仍然面临挑战。如何提高LLM的推理准确性和一致性,成为了AI研究者们关注的焦点。最近,巴黎圣母院大学和Salesforce的研究团队提出了一种新颖的方法,通过结合思维链(Chain-of-Thought, CoT)和思维程序(Program-of-Thought, PoT)来构建验证器,显著提升了LLM的推理表现。

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. 保持生成能力:研究如何在提高验证性能的同时,保持模型的生成能力。

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

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

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值