pp009.SELF-RAG: LEARNING TO RETRIEVE, GENERATE, AND CRITIQUE THROUGH SELF-REFLECTION

 
AI前沿 SELF-RAG: 结合检索并反思的生成模型

针对LLM生成回复时因为只能依赖于模型中的知识导致的事实性不准确的问题,检索增强的生成RAG稍微缓解了问题,但一味检索并融合固定数量文章,不管检索是否需要、文章是否相关,会让模型多元性减少或导致生成没有帮助的回复。作者提出自反思的RAG框架SELF-RAG,同时通过检索与反思增强模型质量与事实性。该框架训练一个单独的LM来适应性地检索所需文章,并在推理阶段生成并在检索出来的文章与其用特殊token(一种叫反思token的东西)生成的回复上反思。生成反思token使得模型在推理阶段可控,使其能够根据不同的任务要求调整行为。实验显示,SELF-RAG(7B,13B)显著优于sota LLM以及针对不同任务集的检索增强模型。SELF-RAG在开放域QA、推理和事实验证任务上优于ChatGPT和检索增强的Llama2-chat,并且相对这些模型,在长格式文本生成上的事实性与引用准确性有了大大提升。

作者以端到端的方式训练任意LM,通过生成任务输出和间歇性特殊token(即反思token)来学习反思模型在给定任务输入的情况下自身的生成过程。反思token分为检索和评判token,分别指示检索的需要及其生成质量(figure1右)。特别是,给定输入提示和先前的生成结果,SELF-RAG首先确定用检索到的段落增强后续生成是否有帮助,如果是,它会输出一个检索token,根据需要调用检索器模型(步骤1)。随后,SELF-RAG同时处理多个检索到的段落并评估它们的相关性,再生成相应的任务输出(步骤 2)。然后,它生成评判token来评判自己的输出,并根据事实和整体质量选择最佳的输出(步骤3)。该过程与传统的RAG(figure1左)不同,传统的RAG始终检索固定数量的文档进行生成,而不管检索的必要性(如,左下示例无需事实知识),且从不重访生成质量。此外,SELF-RAG为每个片段提供引用,并自我评估输出是否得到检索片段的支持,从而更容易进行事实验证。

见figure2,训练一个任意LM时,将反思token扩充进词表,训练集是插入了反思token和检索到的文章的文本。反思token的插入由一个训好的评价者模型离线插入,这可以消除训练时用到评价者模型的开销。该评价者模型某种程度上受到输入、输出和通过提示适当的LM收集的相应反思token的数据集的监督,训好的LM在每个生成的片段作为生成输出的组成部分之后使用批判token来评估其自身的预测。

SELF-RAG还支持定制化解码来满足由反思token预测定义的硬约束或软约束。如在推理时能够灵活调整不同下游应用程序的检索频率,以及通过在分段级束搜索中将反思token概率的加权线性和作为分段分数来实现根据用户偏好定制化模型行为。

实验结果见table2。