宣布 LlamaCloud 全面上市(以及我们 1900 万美元的 A 轮融资)!
LlamaIndex

Ravi Theja 2023-10-22

NVIDIA 研究:利用长上下文 LLM 进行 RAG

引言

为何长上下文至关重要以及检索增强如何介入

在不断演进的大语言模型(LLM)领域,两种方法日益受到关注并似乎占据了中心位置:扩大大型语言模型(LLM)的上下文窗口,以及通过检索能力增强这些模型。GPU 技术的持续发展,加上注意力机制的突破,催生了长上下文 LLM。同时,检索的概念——LLM 只从独立的检索器中获取最相关的上下文——预示着效率和速度的革命。

在这些不断发展的论述中,出现了一些有趣的问题:

  1. 检索增强与长上下文窗口,哪种方法对下游任务更有利?
  2. 这两种方法能否结合起来以发挥各自的最大优势?

为了剖析这些问题,在本篇博文中,我们回顾了 NVIDIA 最近的一项研究,该研究利用了两个强大的 LLM:专有的 GPT-43B 和 LLaMA2-70B,该研究旨在为 AI 从业者提供可操作的见解。

先前研究与 NVIDIA 的不同发现

有趣的是,尽管 NVIDIA 的发现在许多方面都引人入胜,但 Bai 等人(2023 年)最近的另一项工作也探索了相似的领域,尽管结果有所不同。

他们的工作探索了检索对长上下文 LLM 的影响,评估了 GPT-3.5-Turbo-16k 和 Llama2-7B-chat-4k 等模型。然而,他们的发现与 NVIDIA 在关键方面存在分歧。Bai 等人发现,检索仅对具有 4K 上下文窗口的 Llama2-7B-chat-4k 有益,而对 GPT-3.5-Turbo-16k 等扩展上下文模型则无益。对此差异的一种假设是,这可能与使用黑盒 API 进行实验以及他们使用的较小规模白盒 LLM 相关,这些模型通过检索整合上下文的能力可能有限。

NVIDIA 的工作之所以与众不同,在于它利用了更大规模的 LLM,所得结果不仅媲美 ChatGPT-3.5 等顶级模型,甚至表明结合检索方法后性能还有进一步提升。

模型、数据集和评估指标

探索的大语言模型(LLM)

研究人员深入探讨了大语言模型在生成式问答和摘要等任务中的潜力。具体来说,重点关注了两个模型:

  • Nemo GPT-43B: 一个专有的 430 亿参数模型,在 1.1 万亿个 token 上进行训练,其中 70% 为英文。该模型使用了丰富的训练数据,包括网络档案、维基百科、Reddit、书籍等。它包含 48 层,并使用 RoPE 嵌入进行训练。
  • LLaMA2-70B: 一个公开可用的 700 亿参数模型,在 2 万亿个 token 上进行训练,主要为英文。它由 80 层构成,同样使用了 RoPE 嵌入。

上下文窗口扩展

为了增强模型处理更长上下文的能力,其初始的 4K 上下文窗口长度得到了扩展。GPT-43B 被修改为处理 16K,而 LLaMA2-70B 被扩展到 16K 和 32K,采用了位置插值方法。

指令微调

为了优化 LLM 以应对当前的任务,实施了指令微调。创建了一个包含 Soda、ELI5、FLAN 等来源的多元数据集混合。多轮对话训练采用了统一的格式模板,并对模型进行了精心微调,以突出答案部分。

测试的检索模型

测试了三种检索系统:

  • Dragon: 一种最先进的双编码器模型,用于有监督和零样本信息检索。
  • Contriever: 利用基本的对比学习框架,进行无监督操作。
  • OpenAI 嵌入: 使用了最新版本,最大输入为 8,191 个 token。

检索方法包括将每个文档分割成 300 字的部分,对问题和这些文本块进行编码,然后合并最相关的文本块以生成响应。

用于评估的数据集

该研究采用了七个不同的数据集,这些数据集来源于 Scroll 基准和 LongBench。

这些数据集的简要介绍包括:

  • QMSum: 一个基于查询的摘要数据集,QMSum 包含来自不同会议的转录本及其对应的摘要,基于上下文查询构建。
  • Qasper: 一个以 NLP 论文为中心的问答数据集,Qasper 提供了来自 Semantic Scholar 开放研究语料库的生成式、抽取式、是/否以及无法回答等多种类型的问题。
  • NarrativeQA: 旨在对整本图书和电影剧本进行问答,NarrativeQA 提供了从这些大量来源的摘要创建的问题-答案对。
  • QuALITY: 一个基于故事和文章的多项选择问答集,QuALITY 强调仔细阅读,其中一半问题设计得具有挑战性,需要认真思考。
  • MuSiQue: 专为问答中的多跳推理而设计,MuSiQue 从单跳问题创建多跳问题,强调关联推理并最大程度减少捷径。
  • HotpotQA: 基于维基百科,HotpotQA 需要阅读多份支持文档进行推理。它包含各种类型的问题,并为答案提供句子级支持。
  • MultiFieldQA-en: 旨在测试跨领域的长上下文理解能力,MFQA 使用法律文件和学术论文等来源,并由博士生进行标注。

评估指标

研究团队使用了适用于每个数据集的多种指标。主要的指标包括 QM 的 ROUGE 分数的几何平均值、QLTY 的精确匹配 (EM) 分数以及其他数据集的 F1 分数。

结果

  • 没有检索功能的基线模型,由于序列长度为 4K,有价值的文本会被截断,因此表现不佳。
  • 结合检索功能后,LLaMA2-70B-4K 和 GPT-43B-4K 等 4K 模型性能显著提升。
  • HotpotQA 作为一个多跳数据集,尤其受益于更长序列的模型。
  • 具有更长上下文(16K、32K)的模型即使在输入相同的证据文本块时,其性能也优于 4K 模型。
  • LLM 由于存在中间丢失现象,表现出独特的“U 形”性能曲线,这使得它们更擅长利用输入开头或结尾的信息。
  • 这项研究提出了与 LongBench 发现不同的观点,强调检索对模型有益,无论其上下文窗口大小如何。

与 OpenAI 模型比较

  • 结合检索功能的 LLaMA2-70B-32k 模型性能超越了 GPT-3.5-turbo 的变体,并且与 Davinci-003 具有竞争力,这突显了其在处理长上下文任务方面的强大能力。

不同检索器的比较

  • 检索功能持续提升了不同检索器的性能。
  • 公共检索器表现优于 OpenAI 嵌入等专有检索器。

与检索的文本块数量比较

  • 通过检索前 5 或 10 个文本块可获得最佳性能。检索更多,例如多达 20 个文本块,并不能带来额外的好处,甚至可能降低性能。
  • 增加更多文本块导致性能下降的原因可能是由于中间丢失现象,或者模型被不相关的信息分散了注意力。

结论

通过深入研究检索增强和长上下文扩展在应用于针对长上下文问答和摘要任务微调的领先语言模型时如何相互作用,我们得出了一些值得注意的结论:

  1. 结合检索的性能提升:实施检索技术显著提升了 4K 短上下文语言模型及其 16K/32K 长上下文对应模型的性能。
  2. 结合检索的 4K 模型效率:4K 上下文语言模型与检索增强结合时,可以达到与 16K 长上下文模型相似的性能水平。此外,它们在推理过程中还具有更快的优势。
  3. 最佳模型性能:在经过上下文窗口扩展和检索增强后,表现突出的模型 LLaMA2-70B-32k-ret(结合检索的 LLaMA2-70B-32k)超越了 GPT-3.5-turbo-16k 和 davinci-003 等知名模型。

参考资料

  1. Retrieval meets long context, large language models. (检索遇上长上下文大型语言模型)
  2. Longbench: A bilingual, multitask benchmark for long context understanding. (Longbench:一个用于长上下文理解的双语多任务基准)

我们相信这篇关于利用长上下文 LLM 进行检索增强论文的回顾博文为您提供了有意义的见解。我们很想知道您的实验结果是否与我们的发现一致,或者是否提供了新的视角——不同的结果总是能带来有趣的讨论和进一步的探索。