检索增强生成(RAG)管道使大型语言模型(LLM)能够在其回答中使用外部信息源。但是,RAG应用在向LLM发送的每个请求时都会检索外部信息。这会使过程变得低效,因为LLM已经包含了大量无需检索即可使用的知识。
如果我们能够配置LLM仅在内部知识不足以使用时才使用RAG呢?Adapt-LLM是一种由博岑-博尔扎诺大学和布鲁诺·凯斯勒基金会研究人员开发的技术,它训练LLM在问答任务中动态确定是否需要检索额外的上下文信息。Adapt-LLM有助于避免不必要的检索,并使LLM应用更加高效。
记忆与检索
LLM回答问题的主要有两种方法。第一种是依赖在训练过程中获得的参数记忆。参数记忆的局限性在于它完全基于训练语料库。你可以通过微调或少量样本提示技术来提高参数记忆的性能,这些技术使模型关注于相关参数。但是,在模型必须动态使用新信息(如最近的新闻或未包含在训练语料库中的私人信息)的场景中,这些技术并没有帮助。
第二类方法使用信息检索器为模型提供上下文信息。检索增强生成就属于这一类。
信息检索的问题在于,有时模型不需要额外的上下文信息,已经拥有足够的内部知识来回答问题。这两种方法可以比作闭卷和开卷的问答方式。
人类采用了一种混合方法。例如,当我们对问题的答案了如指掌时,我们可以立即回答。但是,当我们对自己的知识不够自信时,我们会使用外部来源。一些LLM技术通过流行度评分来使用这种混合方法。假设当一个问题非常流行时,模型有内部知识来回答。对于不太流行的问题,模型将需要RAG系统的帮助来获取必要的信息。
然而,这种方法要求问题具有与之相关的流行度评分,而这并不总是可用的。
Adapt-LLM
Adapt-LLM训练语言模型进行“自适应检索”,使它们能够自主决定何时使用信息检索系统来获取额外的上下文。
研究人员写道:“在这种方法中,如果任务的解决方案已编码在模型的参数中,模型将直接用于生成解决方案。相反,如果答案没有编码在模型的知识中,答案生成将使用外部知识进行增强。”
Adapt-LLM的工作分为四个步骤。
这种灵活的行为允许模型在使用外部上下文和给出直接回答之间取得平衡。
训练Adapt-LLM
要训练一个用于Adapt-LLM的模型,你首先需要一个包含问题、上下文和答案的数据集。然后,对于数据集中的每个元组,模型会被给予没有上下文的问题,以及如果它对自己的知识有信心则直接回答,或者如果需要额外的上下文则返回<RET>的指令。
如果模型返回了正确的答案,那么它就有参数知识,并会创建一个新的训练实例,其中包含问题和答案(但不包含上下文)。如果模型返回了错误的答案,则会创建两个训练实例:一个“参数提示”,其中包含问题和<RET>作为答案;一个“上下文提示”,其中包含问题、上下文、指令和答案。
然后,基础模型会在包含这两种类型示例的数据集上进行训练,从而得到Adapt-LLM的行为。
Adapt-LLM 的实际应用
研究人员在 PopQA 数据集上对 Adapt-LLM 进行了几项实验,PopQA 是一个从各种在线平台收集的问题数据集。他们使用 Llama-2 7B 作为基础 LLM,并在由 NQ 和 SQuAD 问题回答数据集创建的 Adapt-LLM 数据集上进行了训练。他们将 Adapt-LLM 模型与纯从不检索和总是检索的模型进行了比较。
可预测的是,他们的发现表明,Adapt-LLM 的性能远优于仅依赖参数记忆的从不检索模型。
与总是检索模型相比,它还减少了检索的使用,同时在其参数记忆优于 RAG 系统返回的信息时提高了性能。
“当 ADAPT-LLM 决定检索额外信息时,使用上下文获得的结果明显好于没有上下文的结果。类似地,当 ADAPT-LLM 直接依靠其参数记忆回答问题时,它实现了高准确率,”研究人员写道。“这些观察结果表明,该模型能够有效地判断何时检索信息,以及何时可以在没有进一步上下文的情况下回答问题。”
优点和缺点
不幸的是,研究人员没有发布 Adapt-LLM 的代码和模型,这使得验证他们实验的结果变得困难。由于这是一项非常实用的技术,如果他们发布了有关令牌使用和推理时间的研究发现,那将是很好的。
幸运的是,该算法易于实现,任何人都可以创建自己的 Adapt-LLM 版本。看到它在其他领域的数据集上的表现,以及可以在其上构建哪些实际应用,将是非常有趣的。