主题 27:什么是智能体链(Chain-of-Agents)和检索增强生成链(Chain-of-RAG)?
🔳 我们探索 Google 和 Microsoft 实施“链”方法以实现长上下文和多跳推理的进展
随着人工智能向深度、逐步推理的转变,我们继续观察到创建“链式…”方法的趋势。此前,我们探索了三种知识链以及在“从思维链到思维骨架,以及其间的一切”中提到的其他“链”变体,但“链”仍在不断涌现!今天,我们将讨论 Google Cloud AI Research 和 Microsoft 的两项进展,分别称为智能体链(Chain-of-Agents,CoA)和检索增强生成链(Chain-of-Retrieval Augmented Generation,CoRAG)。它们都从不同角度应对处理长上下文任务的挑战。Google 的 CoA 采用多智能体框架,其中工作智能体以结构化的链式顺序处理文本片段,而 Microsoft 的 CoRAG 引入了一种迭代检索方法,作为解决强大的多跳推理问题的方案。如果您致力于提高 AI 在复杂推理任务中的性能,了解 CoA 和 CoRAG 等技术至关重要。因此,让我们探索这些新的“链”如何影响 AI 模型的准确性和质量!
📨 点击关注!如果你想直接在收件箱中接收我们的文章,请在此订阅
在本期节目中,我们将讨论
Google 的智能体链(Chain-of-Agents):有什么想法?
即使在使用最先进的模型时,您也会发现处理长上下文的任务,例如整本书、长篇文章或冗长对话,对于大型语言模型(LLMs)来说仍然是一个挑战。一个普遍的想法是扩展模型的内存,换句话说,就是上下文窗口。然而,随着输入变长,模型往往会偏离主要信息。另一种方法是通过选择文本中最相关的部分来缩短输入。在这里,RAG 可以用于有效检索,但这种方法可能会导致丢失重要的信息。
怎么办?Google Cloud AI Research 和宾夕法尼亚州立大学的研究人员采取了另一种策略,创建了一种比 RAG、全上下文模型和多智能体 LLM 更好的方法。他们提出了智能体链(Chain-of-Agents,CoA)框架,其灵感来自于人类如何逐步处理长文本。CoA 不依赖于单一模型,而是允许多个 AI 智能体协作处理无限量的文本。
智能体之间的协作可能不是一个新概念,但研究人员发现了一些使其方法脱颖而出的技巧。许多方法使用树形结构,其中智能体独立工作,不直接通信(例如,LongAgent)。相比之下,CoA 遵循链式结构,具有严格的顺序,同时确保智能体共享信息以提高准确性。让我们看看 CoA 是如何精确地实现这一点的。
CoA 如何工作?
智能体链(CoA)框架分两阶段逐步处理长文本
阶段 1:工作智能体分解和处理信息
- 一个长文档被分成更小的块,使其更易于处理。
- 每个工作智能体阅读并分析其分配的文本块。
- 工作智能体按顺序通信,将重要信息沿链传递下去。这个过程被称为“通信单元”。
- 这种通信有助于建立对整个文档的完整理解。
总的来说,每个工作智能体处理一个文本块,将其与前一个智能体的发现结合起来,并将结果传递给下一个工作智能体。但是,在不同的任务中,工作智能体具体处理什么呢?
对于问答任务,工作智能体从其文本块中提取证据。对于摘要任务,它们对其分配的文本块进行摘要。对于代码补全任务,它们创建代码摘要,包括函数或类详细信息。
以下是此阶段工作原理的简单示例
- 如果文本的第一部分未能完全回答问题,第一个工作智能体可能会收集一些相关线索。
- 下一个工作智能体使用这些线索来完善答案。
- 如果某个文本块没有有用信息,工作智能体只会传递前一个工作智能体的发现,而不会增加噪音。
这种逐步处理确保模型不会遗漏关键细节,这与其他智能体独立工作的方法不同。
阶段 2:管理者智能体总结结果并生成最终答案
- 工作智能体完成处理后,管理者智能体介入。它收集最后一个工作智能体所收集的所有见解。
- 利用这些信息,它生成最终的响应,无论是答案、摘要还是完成的代码。
使用管理者智能体将文本分析与答案生成分离,让每个智能体专注于自己的任务。
CoA 实际表现如何?
CoA 在三种类型的任务上进行了测试:问答(QA)、摘要和代码补全,以展示其处理长上下文的能力。以下是主要结果
- 问答(QA)——需要理解和跨长文本进行推理。
- CoA 在所有数据集上都始终优于全上下文处理模型和 RAG。
- 改进包括 NarrativeQA(理解和生成基于长篇叙述的答案的能力)提高 +13.3%,MuSiQue(多跳推理)提高 +12.82%,以及 QuALITY(对扩展上下文的深度语言理解和推理)提高 +22%。
- 即使使用具有更长上下文窗口(32k)的 Gemini Ultra,CoA(8k)仍然超越了它。
- 摘要和代码补全
- CoA 在所有数据集上都优于 Vanilla 基线和 RAG。
- 与 RAG 不同的是,RAG 在 GovReport(从冗长的政府报告中提取关键信息)上表现不佳,而 CoA 显著提高了性能,表明即使没有特定查询,它也能很好地工作。
此外,CoA 击败了 Claude 3 (200k tokens) 等长上下文模型和其他多智能体框架。与采用树状结构的层级方法相比,其中工作智能体将信息传递给管理者,而无需相互直接通信,以及合并方法,其中每个工作智能体独立生成答案,并通过多数投票选择最终结果,CoA 的表现均显著优于两者。
在这些令人印象深刻的结果之后,问题随之而来:是什么让 CoA 在长上下文任务中超越了其他强大方法,包括 RAG?
CoA 的优势以及为什么它比 RAG 和其他方法更好
以下是 CoA 的主要优势,使其成为处理长文本的更好选择
- CoA 更擅长找到正确答案: 尽管 RAG 严重依赖重排序质量,并且只有当答案较早出现在其检索到的文本块中时才表现更好,但 CoA 在挑战性检索场景中保持更强的弹性。
- CoA 的性能随输入长度的增加而提高: 例如,当输入长度超过 40 万个标记时,CoA 的性能比基线提高高达 100%。
- 它将“中间丢失”问题减少了多达 21%。
- 它能有效处理复杂推理任务,如多跳推理:通过采用协作代理的逐步推理方法,CoA 在此任务上优于 RAG。RAG 的问题在于它根据与查询的相似性检索文本块,这使得处理多跳推理变得困难。这种情况发生是因为初始必需的事实可能与查询在语义上不相关。(多跳推理是一种高级人工智能推理技术,模型通过连接不同来源或上下文中的多个信息片段来得出结论。模型不依赖于单一的推理步骤,而是对不同的事实、文档或知识源进行多个逻辑“跳跃”。)
- 由于并行处理,计算时间缩短:CoA 比 RAG 多花费 30% 的时间,但并行智能体执行将运行时间缩短了 57.21%。
- 信息损失最小:智能体之间通信期间的损失为 1-4%。
- 无需额外训练:它可以与现有的 LLM 协同工作。
- 与输入缩减不同,CoA 不会跳过重要细节,因为它会逐步处理所有内容。
- 与窗口扩展不同,CoA 不会一次性给模型过多的信息。
CoA 有如此多的优点,以至于它似乎没有任何缺点。然而……
并非没有限制
以下是 CoA 的几点限制,它们也表明了 CoA 仍有改进空间:
- 运行多个智能体可能成本高昂且耗时。
- 智能体之间的结构化通信不如智能体之间的辩论或复杂讨论等方法动态。
- 当前的模型设计用于类人通信,不适用于 AI-AI 通信。这会影响 CoA 智能体之间交互的整体质量。
尽管如此,Google Cloud AI Research 和宾夕法尼亚州立大学提出了一个非常强大且灵活的框架。我们期待 CoA 的进一步研究和更多实施案例。
那么微软的更新呢?
微软的检索增强生成链 (CoRAG) 的关键思想
上面我们谈了很多 RAG 的局限性,特别是它不逐步处理信息、在长上下文任务中失败以及在多跳推理中遇到困难,而 Google 的 CoA 在这些方面表现出色。现在来看看来自微软公司和中国人民大学的答案。
他们提出了检索增强生成链(Chain-of-Retrieval Augmented Generation,CoRAG),一个逐步检索系统,它升级了传统 RAG,以克服这些局限性。CoRAG 允许模型逐步检索信息,而不是一次性检索所有信息,并动态调整其搜索过程。它经过专门训练,可以构建更好的检索链,并可以控制其采取的检索步骤数以及每个检索链的长度。换句话说,它有效地控制了其使用的计算量。
所有这些功能帮助 CoRAG 显著优于传统 RAG 和现有模型,特别是在长上下文任务和复杂推理任务(如多跳问题)中,因为这些问题需要多个推理步骤。此外,与强大的基线模型相比,它的准确性提高了 10 个百分点以上。
那么,让我们探索这种新型 RAG 的工作原理。
CoRAG 如何工作?
CoRAG 框架通过将复杂的搜索分解为逐步检索链,改进了 AI 模型检索和处理信息的方式。为了有效执行,该框架包括 3 个组件:
1. 检索链生成
与大多数缺乏中间搜索步骤的 RAG 方法不同,CoRAG 自动生成检索链,使用拒绝采样方法。这些链是子查询(Q1, Q2, ... QL)和子答案(A1, A2, ... AL)的序列,最终导向最终答案。
其工作原理如下:
- 生成子查询: CoRAG “要求”模型生成更小、更集中的问题,逐步指导检索过程。
- 检索相关信息: 对于每个子查询,CoRAG 搜索数据库并收集最相关的文档。
- 回答子查询: CoRAG 使用检索到的文档,为每个步骤生成答案。
- 构建链: 此过程持续进行,直到获得最终答案或达到最大步骤数。
- 选择最佳链: CoRAG 对所有可能的检索链进行排名,并选择最能支持正确答案的链。
一旦 CoRAG 生成检索链,它就会训练一个模型,以结构化的方法从中学习。
2. 在增强型数据集上训练模型
每个训练示例包含:1)原始问题和最终答案;2)检索链;3)每个检索步骤最相关的文档。
CoRAG 帮助模型同时学习执行 3 项任务
- 预测下一个子查询 → 学习在检索链中生成下一个问题。
- 预测子答案 → 学习从检索到的文档中提取有用信息。
- 预测最终答案 → 学习将所有先前步骤综合为正确答案。
通过对这些中间检索步骤进行训练,CoRAG 教导 AI 模型更有效地搜索和推理,从而提高长而复杂问题的准确性。
3. 在测试时控制计算
此步骤用于平衡准确性和速度。这种平衡可以通过控制模型在搜索上花费的计算能力,同时保持良好性能来实现。CoRAG 提供 3 种策略来控制它
- 贪婪解码(最快的方式): 模型遵循固定的逐步搜索,不探索多种可能性。它是最快的方法,但如果初始检索较弱,可能会错过更好的答案。
- N-最佳采样(平衡方法): 模型采样 N 个不同的检索链,并选择最佳的一个。为了确定最佳链,它会惩罚检索不相关信息的链。它比贪婪解码更健壮,同时仍能保持合理的计算量。
- 树形搜索(最准确的策略): 模型并行探索多个检索链。它扩展有希望的搜索路径并消除弱的搜索路径。这种方法非常有效和准确,但可能较慢,因为它处理更多的检索步骤。
为了进一步优化速度和准确性,CoRAG 允许调整检索步骤和搜索路径的数量,并微调树形搜索深度。这确保简单问题能够快速回答,而复杂问题则可以进行更深入的分析,而不会产生过多的计算。
总的来说,通过这些步骤,CoRAG 动态调整其搜索过程,在每一步都做出更智能的决策。如果第一次尝试未能提供有用信息,CoRAG 会重新措辞查询,完善其搜索,并再次尝试,这类似于人类研究复杂主题的方式。
CoRAG 的性能
CoRAG 的主要目的之一是克服多跳推理问题。研究人员在多步问答任务和 KILT(知识密集型任务)基准测试中对其进行了测试,发现 CoRAG 方法确实可以在这些任务中表现出色。看看 CoRAG-8B 在这些任务中如何领先于更大的模型(在 MuSiQue 上提高了约 13% 以上)
以下是其他重要发现,说明哪些因素会影响 CoRAG 的性能
- 增加检索链长度一开始会显著提高性能,但达到一定程度后,改进速度会减慢。
- 更多的检索步骤会带来更好的推理能力,但过多的步骤会浪费计算资源。
- 增加 N-最佳采样中的 N 值对不同数据集有不同的影响
- 在 MuSiQue 等难度更高的数据集上,更大的 N 值会提高准确性。
- 在 2WikiMultihopQA 等更容易的数据集上,较小的 N 值就足够了。
目前,让我们总结一下 CoRAG 的优势。
CoRAG 的优势
- 对检索链进行微调:它使 CoRAG 在复杂推理任务(如多跳问答数据集)中相对于其他少样本学习方法具有主要优势。
- CoRAG 可以通过迭代训练,随着时间推移完善自身的检索过程。
- 测试时间计算可动态调整:用户可以根据任务难度平衡准确性和效率。
- 扩大测试时间计算可以提高性能,但有一定限度。模型需要学习何时停止检索。
- 即使使用较弱的检索器,增加测试时间计算也能改善结果。无论如何,更强大的检索器仍能提供最佳的整体性能。
- 使用更小的模型可以降低计算成本,而不会牺牲太多性能。
然而,CoRAG 存在几个重要问题。
并非没有限制
- 高计算成本,因为多步检索需要更多的 GPU 小时。
- CoRAG 执行预设数量的检索步骤,即使可能已经找到正确答案。模型需要学习何时停止检索。
- 单跳问答数据集改进微乎其微:额外的检索步骤可能会增加计算量,而不会显著提高准确性,这效率低下。
- 用于完善推理链的额外训练并不总是有效。
为了解决这些问题并成为一种更改进的方法,CoRAG 需要自适应机制和早期停止技术等方面的进步。
结论
CoA 和 CoRAG 都旨在改进长上下文处理,但它们在不同领域各有优势。CoA 在处理超长上下文方面展现出强大优势。它在缓解“中间丢失”问题和复杂多跳推理方面也表现出色。另一方面,CoRAG 通过使用检索链增强和迭代检索,显著改进了传统 RAG,从而提高了多跳推理的准确性并改善了长上下文任务的表现。
CoA 和 CoRAG 都比传统 RAG 更好,主要区别在于它们的“专业领域”
- 如果任务涉及复杂的基于检索的多跳推理,CoRAG 是更好的选择。它在多跳任务中显示出略微更好的改进:在 MuSiQue 基准测试中比 CoA 的 +12.82% 高出 +13% 甚至更多。
- 如果任务需要高效处理极长上下文,CoA 通过多智能体协作表现更好。
那么这些方法中哪种更适合您呢?
作者:Alyona Vert 编辑:Ksenia Se
额外:深入学习资源
来自图灵邮报的资料
📨 如果您想直接在收件箱中收到我们的文章,请在此订阅