今天分享的论文来自于北京大学。
题目是RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Horizon Generation.
RAT:检索增强思维链在长周期生成中的上下文感知推理
文章链接:https://arxiv.org/pdf/2403.05313
demo链接:https://craftjarvis.github.io/RAT
摘要
这篇文章主要关注的是如何提高大语言模型在需要长序列推理(Long-Horizon Reasoning,指的是在处理需要跨越较长时间跨度或包含多个连续决策步骤的任务)和生成任务中的表现。研究人员发现,通过引入一种称为“检索增强型思维链”(RAT)的技术,可以有效地改进模型的性能。这种方法的核心思想是在模型生成初步的思考链之后,利用RAG来逐步校正和完善这一链条,确保每一步都基于与当前任务最相关的信息进行修正。
主要方法
对于RAG+CoT的结合,其实思路是都很朴素。无论是迭代式的纠正思维链的内容还是递进的根据检索内容来继续生成思维链都是一些实战中常规的思路。但在这套体系中仍然还是两个核心问题分别是什么是要检索的相关信息、如何用相关的事实信息有效地纠正推理步骤。
本文的核心方法可以用一张流程图来总结。
- CoT生成初步思维步骤:
- 首先,给定一个任务提示(Prompt),让LLM生成一系列初步的思维链,这些思维步骤可能是不完整的或者包含错误信息(如幻觉)。
- RAG增强的思维步骤修正:
-
对于每一个生成的思维步骤,将其与任务提示以及之前已修正的思维步骤一起转换成一个查询,这个查询可以用来从检索系统中获取相关文档。
-
使用检索到的相关文档来修正当前的思维步骤,生成一个新的修正后的思维步骤。
- 最终响应生成:
-
当所有的思维步骤都被修正后,这些修正后的思维步骤可以作为最终的模型响应输出。
-
对于某些任务,比如代码生成或创意写作,LLM还会根据修正后的思维步骤进一步生成完整的响应。
方案优势
-
信息利用更有效:通过查看所有生成的思维步骤以及任务提示,可以提供更多的线索来进行更有效的检索。
-
中间问题更容易解决:对于复杂的推理问题,直接检索最终答案相关的全部信息可能会很困难,但检索与中间问题相关的较简单信息则更容易实现。
-
针对性修正幻觉:逐一修正每一个思维步骤可以避免在整个思维链上应用RAG时可能引入的新错误,从而使得修正更加可靠。
RAT的场景分析
文章中作者通过这两个例子,展示了RAT如何通过持续地检索和修正来改善模型的生成质量。
我的世界游戏中的规划任务
在这个场景中,RAT 的优势在于它能够通过针对特定任务步骤的持续检索和修正,来改进初始思维链(CoT)生成的结果。具体表现在以下几个方面:
-
知识密集型任务:Minecraft中的长序列规划任务需要考虑多种物品才能完成任务,这是一项知识密集型的工作。
-
互联网知识碎片化:由于互联网上的Minecraft知识分散在各个地方,单靠一个来源无法完成任务。
-
CoT 存在的不足:尽管像ChatGPT这样的语言模型可以通过零样本CoT推理识别必要的物品,但它们在程序步骤上常会出现不准确的情况。例如,ChatGPT 错误地认为制作工作台需要4个木块,而实际上需要4块木板。
-
传统RAG算法的局限性:传统的RAG算法通过问题作为查询来检索知识,主要关注最终目标物品,但未能充分检索中间物品,导致任务改进有限。
-
RAT 的优势:RAT 改进了CoT的初始答案,通过有针对性的检索不断修正思维步骤,与任务进度和相关物品知识紧密对齐。这种方法显著增强了规划的有效性,确保了对计划中所有物品的全面理解和检索。
开放式创意写作任务
对于开放式的创意写作任务,评估通常侧重于完整性和准确性。以“根据时间线总结美国内战”为例:
-
CoT 和 DIRECT 提示下的局限性:在这种提示下,语言模型经常产生严重的幻觉。例如,错误地将美国内战开始的时间标记为1860年而不是正确的1861年。
-
直接网络查询的局限性:对于此类任务,直接从互联网查询往往只能检索到有限的事件,经常忽略战争的确切开始日期(1861年4月12日)。
-
传统RAG方法的不足:即使是RAG-1或RAG-5,它们倾向于总结搜索结果中的内容,但也经常错过这个关键事件。
-
RAT 的优势:RAT 基于语言模型的草稿答案进行搜索,发现幻觉通常发生在具体细节上,如特定日期,但这并不妨碍搜索引擎识别相关的信息(如美国内战开始日期)。RAT 利用检索到的内容来识别并纠正草稿答案中的错误,而不仅仅是总结检索到的内容。因此,RAT 可以通过推理实现完整的生成,并通过利用检索到的知识来提高答案的准确性和可信度。
总结
本文提出了一个RAG+CoT的实现思路。笔者认为这确实是目前主流的落地应用最普遍也是最实用的思路。当然技术路径并不局限于论文中实现的方案。在哪个阶段进行检索以及用什么文本进行检索是需要结合应用场景去设计的。每一步都检索和反思也容易带来更多的噪音数据和资源开销。
如何学习大模型 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 的正确特征了。