COLM 24 | 从正确中学习?大模型的自我纠正新视角

大型语言模型(LLMs)虽然进展很快,很强大,但是它们仍然存在会产生幻觉、生成有害内容和不遵守人类指令等问题。一种流行的解决方案就是基于【自我纠正】,大概就是看自己输出的结果,自己反思一下有没有错,如果有错就自己改正。目前自己纠正还是比较关注于让大模型从错误中进行学习。更多相关内容可以参考这篇 TACL 的 survey [1]。

但是呢,现有的很多自我纠正的方法依赖于复杂的 prompt engineering,人类反馈,或外部工具,但这些方法往往比较麻烦(试 prompt),不稳定(换了个模型 prompt 可能就要修改了),昂贵(人类反馈很贵的),增加时延(要调用不同的外部工具)。为了克服这些限制,本文提出了一种无需 prompt engineering 也无需外部反馈的方法 ——Learning from Correctness(LeCo,是的,作者们是乐高爱好者 XD),我们想倒反天罡,从正确而不是错误中进行学习,让自己变得更强大。

  • 论文链接:https://arxiv.org/pdf/2403.19094arxiv.org/pdf/2403.19094

  • 代码链接:https://github.com/starrYYxuan/LeCo

一句话总结:LeCo 通过大模型自己生成的推理步骤进行自我纠正,无需人类反馈,手工提示和外部工具。其核心思想就是:模型如果知道更多的正确推理步骤,那他的搜索空间就可以压缩,从而更有高效地找到完整的正确推理路径。LeCo 为每个推理步骤计算置信度分数,通过分数给推理步骤打分,低分的推理步被视为潜在错误,之前的步骤被视为正确。通过将这些正确步骤附加到输入中,模型可以逐步接近正确答案。如下图所示,LeCo 首先得到对当前问题的解(左边 output), 然后我们逐渐去收集正确的推理步骤知道得到最后正确的解。这种渐进式学习方法不仅提高了推理准确性,还减少了 tokens 消耗(穷人友好)和迭代次数(和投票,从错误中学习相比)。

LeCo 方法示意图

如何找出正确的推理步骤?

一些预设知识:在生成任务中,logits 代表候选词被选为下一个词的对数概率。另一方面,置信度指的是模型对其预测的确定性。在推理任务中,我们提出步骤置信度来衡量模型对每个推理步骤的正确性的置信度。于是我们设计了三种基于 logits 的评分,从单步推理步和不同推理步出发,全面评估每个推理步骤的置信度。

方法:为了找出大模型自己生成的正确推理步骤,本文开发了一种基于生成 logits 的高效方法来测量每个推理步骤的置信度,无需额外标注或工具。通过综合考虑每个步骤中的平均置信度、步骤置信度差异和步骤传递概率,LeCo 能识别出近 65% 的错误步骤。具体来讲,我们的置信度设计考虑了 3 个不同的角度:

单步置信度(average token score):一种简单的方法来衡量步骤置信度是平均计算某一步中的 token 概率。这个平均值反映了模型在该步骤中推理的确定性。单步置信度定义为:

单步散度分数 (step divergence score):虽然平均 token 概率看似直观,但它可能会产生误导。在一个步骤中,大多数 token 通常是常见词汇,具有高置信度分数,但携带的信息很少。相反,对于推理至关重要的 token,例如数学计算,通常置信度较低。这种矛盾导致整个步骤的平均 token 置信度偏高。为了解决这个问题,本文提出了 Step Divergence Score。这个指标测量了步骤中标记概率的分布均匀性。理想情况下,正确的推理步骤 token 概率不仅高,而且在所有 token 之间均匀分布。为此我们定义了 token 概率的归一化分布

和均匀分布 U 来设计:

步间转移分数 (Inter-step Transition Score) : 在步骤内部测量之后,我们寻求量化连续步骤之间的转换。初步实验发现了两个关键点:

(1)整体置信度较低的步骤倾向于在初始的几个 tokens(通常是前三个)中具有较低的置信度,更多讨论可以在附录中找到。

(2)这些初始的几个 tokens 也是在不同程序运行中最有可能改变的。基于这些观察,我们建议使用步骤中的开头的借个 tokens 概率来表示该步骤和下一个步骤之间的交叉转换分数。换言之,转换分数:

结合以上三个分数,我们可以得到针对每个推理步骤的置信分数:

LeCO:从正确的推理步中学习

好了,现在我们已经拥有了衡量推理步置信分数的方法,现在只需要迭代式地收集正确的推理步骤,优化搜索空间去拿到最后的正确推理路径。LeCo 分为两个阶段:

  • 初始阶段(Initial Stage):用任何 CoT 的方法生成一个初始的解即可,要求就是需要这个解是有推理步骤的。

  • 反思阶段(Rethink Stage):拿到这个解之后,我们用上述方法去计算每个推理步骤。然后选择分数最低的那个步骤作为 “犯错的第一步”。之前的的推理步骤我们都认为是 “正确的步骤”。然后我们将正确的步骤也作为输入给到大模型去进行推理。

LeCo 就是在推理和反思两个阶段交替进行直到达到停止的条件。我们设置的条件有两个:1. 达到最大的迭代次数;2. 连续两次的解都是一致的。

LeCo 算法总结如下:

实验结果

我们使用 LeCo 在推理任务上面进行了验证,包括逻辑推理,常识推理和数学推理。对比的基线系统包括了也是需要多次推理的 Self-Consistency(SC [2]),Adaptive Consistency(ADPSC [3])和 Recursively Criticizes and Improves(RCI [4],从错误中学习):

表 1:LeCo 在逻辑,常识和数学推理上面的性能表现

表 2:LeCo 在需要更加复杂的推理 MATH 上的表现

从上面的两个表格中我们可以看到:

  • LeCo 的普适性:适用于不同的模型(GPT3.5,GPT4,DeepSeek)和不同的 CoT 方法(Initial Stage 用的);

  • LeCo 的性能提升:在不同类型的推理任务上面都有提升,越难的任务,需要越多推理步骤的任务提升越多(比如 MATH);

  • LeCo 的效率提升:如下两个表格所示,LeCo 除了在各种任务上对性能有一定提升之外,所消耗的 token 数量更少(如:比 self-consistency 低 80%),并且所需的迭代轮数更低。

表 3:LeCo 和不同方法的 Token 消耗比较

表 4:LeCo 和不同方法的迭代次数比较

人工分析:为了进一步验证 LeCo 是否真的能识别到推理中正确的步骤,本文人工标注了 100 题 GSM8K,找出推理过程中正确和错误的时间步。Exact Correct 表示 LeCo 能精确定位到第一步犯错的步骤,Partial Correct 表示定位在 1 步的误差范围内,Wrong 表示定位误差范围大于 1 步。总体来说,LeCo 可以通过计算置信度的方式而无需外部信息较为准备地找出正确和错误的步骤,不过仍然存在提升空间。

表 5:不同方法计算推理步骤置信度的准确率(人工分析 100 题)

总结

1. 本文提出了一种新的多步推理范式,称为从正确中进行学习(LeCo),通过逐步积累正确步骤接近最终答案;

2. 本文挑战了高质量反馈只能来自外部的观点,并提出了一种仅仅使用模型自身的 confidence score 来近似每个推理步骤的正确性的方法;

3. 无论是开源和闭源模型,都可以在各种多步推理任务中从 LeCo 中获益,同时减少 token 和迭代轮次的消耗。更令人振奋的是,和我们的题目一样,LeCo 消除了 rethink 阶段重新编写 prompt 的需求。

如何学习大模型 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、付费专栏及课程。

余额充值