引言: 寻求高效适配

在当前的人工智能领域,我们正目睹两大主流趋势的剧烈碰撞。一方面是 检索增强生成 (Retrieval-Augmented Generation, RAG) , 这种技术允许大型语言模型 (LLM) 访问外部数据 (如公司的维基百科或书籍库) 以准确回答问题。另一方面是 参数高效微调 (Parameter-Efficient Fine-Tuning, PEFT) , 这是一套旨在让这些庞大模型适应特定任务的方法,而无需承担从头重新训练的高昂成本。

但这其中存在一个尚未得到充分解答的关键问题: 在这个新世界中,究竟哪种模型架构更胜一筹?

我们是应该坚持使用依靠内部记忆的标准、流行的 GPT (Generative Pre-trained Transformer) 架构?还是应该转向 RETRO (Retrieval-Enhanced Transformer),一种从底层开始就设计为处理外部数据的架构?

NVIDIA 研究人员最近发表的一篇题为 “GPT vs RETRO: Exploring the Intersection of Retrieval and Parameter-Efficient Fine-Tuning” 的论文深入探讨了这一对比。他们在 8.23 亿到 480 亿参数的各种模型规模上进行了广泛的实验。结果令人惊讶且耐人寻味,为希望构建下一代 AI 应用的学生和工程师提供了实用的路线图。

在这篇文章中,我们将剖析他们的方法论,解释所涉及的架构,并分析结果,以了解当效率遇上检索时,哪种模型能称王。

背景: 舞台设定

要理解这篇论文的发现,我们需要先了解支撑这项研究的三大支柱: 架构 (GPT 与 RETRO) 、RAG 以及 PEFT。

1. 参赛选手: GPT vs. RETRO

GPT (生成式预训练 Transformer) 模型是我们都熟悉的标准“稠密”模型。它们在海量数据集上训练,用于预测序列中的下一个 token。它们的知识是“参数化”的——意味着知识存储在模型数十亿个权重之中。如果 GPT 模型不知道某个事实,它经常会产生幻觉。

RETRO (检索增强 Transformer) 采取了不同的方法。这是一种显式设计为在生成过程中与外部数据库交互的架构。

  • 工作原理: RETRO 不仅仅阅读提示词 (prompt)。它将输入切分成块,从数据库中检索相似的块,并使用一种称为 分块交叉注意力 (Chunked Cross-Attention) 的机制将检索到的信息直接集成到模型的处理层中。
  • 理论基础: 由于 RETRO 在预训练时就设计为查找信息,理论上它在需要外部知识的任务 (如回答有关时事或特定文档的问题) 上应该表现得更好。

2. 检索增强生成 (RAG)

本研究中的两种模型都在 RAG 设置下使用。这意味着在模型回答问题之前,检索系统 (在本例中是一个名为 Dragon+ 的模型) 会在数据库中搜索相关文本。然后将这些文本输入给 LLM 以帮助其生成正确答案。

3. 参数高效微调 (PEFT)

微调一个 480 亿参数的模型极其昂贵,因为通常需要更新每一个权重。PEFT 通过冻结主模型并仅训练极少量的额外参数来解决这个问题。这篇论文重点关注三种流行的 PEFT 方法:

  1. P-Tuning: 这种方法在输入提示中添加可训练的“虚拟 token”。模型参数不动;我们只优化提示向量来引导模型。
  2. Adapters (适配器) : 这涉及在 Transformer 块内插入小型的全连接层。我们只训练这些小层。
  3. LoRA (低秩适应): 这是一个数学技巧,将权重更新分解为更小的低秩矩阵。它非常高效,在开源社区中被广泛使用。

为了说明这些 PEFT 方法有多“高效”,请看下面的表格。虽然基础模型拥有数十亿参数,但增加的 PEFT 参数只有几百万。

展示 GPT 和 RETRO 模型参数量以及 P-Tuning、Adapters 和 LoRA 可训练参数量的表格。

如表 2 所示,使用 LoRA 微调一个“超大 (Extra Large)”的 43B GPT 模型只需要训练大约 5000 万个参数。这大约只是模型总大小的 0.1% , 使得在较小的硬件上进行微调成为可能。

实验: 正面交锋

研究人员在 GPT 和 RETRO 之间设置了一场严格的“大逃杀”。

  • 模型规模: 他们测试了两种架构的五种不同尺寸: 超小 (~800M)、小 (~2B)、中 (~8B)、大 (~22B) 和超大 (~43B/48B)。
  • 任务: 他们使用了六个需要外部知识的挑战性数据集,包括 Natural Questions (NQ)TriviaQAQMSum (摘要) 。
  • 设置: 对于每个模型尺寸和数据集,他们测试了四种配置:
  1. 零样本 (Zero-Shot): 模型尝试在没有特定微调的情况下回答。
  2. P-Tuning
  3. Adapters
  4. LoRA

结果分析

这项研究的结果描绘了模型架构与训练策略之间权衡的迷人图景。让我们分解关键发现。

发现 1: RETRO 赢得零样本之战

当我们不微调模型 (零样本设置) 时,RETRO 通常优于 GPT。

这在直觉上是合理的。RETRO 在预训练时就考虑到了检索。其架构包含一个专门设计的编码器,用于处理检索到的邻居并通过交叉注意力将它们集成进来。它“知道”如何使用小抄。

相比之下,GPT 的训练仅仅是为了预测下一个词。当你将检索到的文档粘贴到 GPT 的提示中时,模型必须即时弄清楚它应该依赖该文本。虽然它做得还不错,但缺乏 RETRO 的结构优势。

然而,一旦我们开始微调,情况就发生了巨大的变化。

发现 2: PEFT 的反转——GPT 占据领先地位

这篇论文最令人惊讶的发现是, 在使用 PEFT 时,GPT 模型比 RETRO 模型具有更高的性能潜力。

一旦研究人员应用了 P-tuning、Adapters 或 LoRA,GPT 模型通常会超越 RETRO 对手。我们可以通过查看超大模型的性能来验证这一点。

比较超大 GPT 和 RETRO 结果的条形图。GPT 在 P-tuning、Adapters 和 LoRA 中得分较高,而 RETRO 在零样本中获胜。

在上面的图 3 中,观察灰色条 (GPT) 与蓝色条 (RETRO):

  • 零样本 (左) : RETRO (21.79) 击败 GPT (17.66)。
  • PEFT 方法 (右侧三组) : GPT 的得分持续走高,使用 Adapters 时达到 42 分以上,而 RETRO 最高在 38 分左右。

为什么会这样? 作者推测,因为 GPT 并非 针对检索进行预训练,所以对于这种特定能力来说,它实际上是一张“白纸”。当你用 RAG 数据对其进行微调时,它有很大的提升空间,并能迅速学会利用上下文。另一方面,RETRO 已经专业化了。它的预训练目标已经类似于微调任务,因此 PEFT 带来的边际收益较小。它更早地达到了“饱和点”。

发现 3: 80 亿参数的“甜蜜点”

对于预算有限的学生和从业者来说,这可能是最有价值的见解。研究人员分析了性能如何随模型规模扩展。

折线图显示了 GPT 和 RETRO 在不同模型尺寸下的平均得分。性能在中等 (约 8B) 尺寸后趋于平稳。

在图 1 中,看这些曲线。GPT (上图) 和 RETRO (下图) 都显示出从 800M 到 8B 参数时性能急剧上升。然而,在 8B (中等) 标记之后,曲线开始变平。

虽然 43B/48B 模型在技术上是最好的,但 8B 模型在计算成本和性能准确度之间提供了最佳平衡。如果你正在构建一个 RAG 系统,一个用 LoRA 或 Adapters 微调的 8B 模型能给你带来最高的“性价比”。

发现 4: 并非所有 PEFT 方法都生而平等

研究结论性地表明, P-tuning 落后于 Adapters 和 LoRA。

如果你回顾图 1 或图 3,“P-tuning”的条形和线条始终低于 Adapters 和 LoRA。

  • Adapters 和 LoRA 通过将可训练参数注入注意力层 (对于 RETRO,也注入到检索编码器中) 来修改模型的内部行为。
  • P-tuning 仅更改输入提示。

作者认为,P-tuning 的弱点 (特别是在 RETRO 中) 源于架构限制。在 RETRO 中,来自 P-tuning 的虚拟 token 被添加到解码器中,但未包含在检索编码器中。这意味着提示调优机制对模型如何处理检索到的数据没有太直接的影响。

我们可以在下面看到所有尺寸下不同方法的直观细分:

四个折线图组成的网格,比较了 GPT 和 RETRO 在零样本、P-Tuning、Adapters 和 LoRA 方法下的表现。

在图 5 (右下角 “LoRA”) 中,你可以看到在较小尺寸下 GPT 与 RETRO 的紧密程度,但 GPT (虚线) 保持着微弱的优势或持平,而在零样本图表 (左上角) 中,RETRO 在大多数尺寸下都是明显的赢家。

发现 5: 成败的定性观察

数字虽好,但在实践中这意味着什么?研究人员使用 Natural Questions 数据集提供了一个失败案例分析。

展示样本输入和输出的表格。零样本 RETRO 获取了正确的上下文但格式错误。P-Tuning 产生幻觉。LoRA 回答正确。

在图 2 中,模型被问到: “板球比赛何时改为每回合 6 球?”

  • 上下文: 包含正确答案 (“1979/80”) 。
  • 零样本 RETRO: 找到了正确的信息,但只是简单地复制了一长串短语。它没有学会数据集所要求的特定“简短回答”格式。
  • P-Tuning: 产生了幻觉 “1947” (这是文本中出现的一个日期,但是错误的) 。这凸显了 P-tuning 在控制模型推理方面的挣扎。
  • LoRA: 正确识别了日期并完美地格式化了它。这展示了 LoRA 如何有效地将模型的检索能力与所需的输出格式对齐。

关于指令微调 (Instruction Tuning)

研究人员增加了最后一个转折。他们采用了一个已经经过“指令微调” (训练为遵循指令) 的 RETRO 模型,然后对其应用 PEFT。

假设: 一个指令微调过的模型应该更聪明,所以进一步微调它应该会产生一个超级模型。 现实: 收益递减。

虽然指令微调后的 RETRO 在零样本任务上比基础 RETRO 更好,但应用 PEFT 并没有提供巨大的提升。事实上,微调后的指令版 RETRO 的平均得分明显低于微调后的基础版 RETRO。这表明存在一个“性能天花板”。如果一个模型已经被大量调整以遵循指令,那么在 RAG 任务上对其应用参数高效微调可能会过度约束模型,或者与微调基础模型相比提供的额外收益很少。

结论与关键要点

这项研究为在 LLM、检索和微调的交叉领域中导航提供了一份全面的地图。以下是给学生和开发者的核心要点:

  1. 如果你无法进行微调: 使用 RETRO 。 其原生的检索架构使其在需要模型“开箱即用”地使用外部数据的零样本设置中表现优异。
  2. 如果你可以进行微调: 使用 GPT + LoRA/Adapters 。 一个标准的稠密模型,当配备高效微调时,能更好地适应 RAG 任务,并达到比 RETRO 更高的性能上限。
  3. 规模很重要 (适度即可) : 80 亿 (8B) 参数范围是最佳平衡点。再大虽然好,但计算成本显著增加,而收益递减。
  4. 在 RAG 中避免使用 P-Tuning: 与修改模型内部处理检索数据方式的 Adapters 和 LoRA 相比,它的表现始终不佳。

随着我们迈向更高效的 AI 系统,这篇论文强调了一个至关重要的现实: 专用架构 (如 RETRO) 有先发优势,但通用架构 (如 GPT) 是适应性极强的快速学习者。借助 LoRA 等工具,我们可以教通用模型成为检索专家,其表现往往能超越专为此目的构建的模型。