论文地址:https://arxiv.org/pdf/2403.10081.pdf
DRAGIN 是一种新型的检索增强生成框架,专门为大型语言模型(LLMs)设计,以满足其在文本生成过程中的实时信息需求。该框架旨在解决传统检索增强生成(RAG)方法在动态性和准确性方面的局限性,特别是在处理复杂、多步骤或长文本生成任务时。
DRAGIN框架包含两个核心组件:
- 实时信息需求检测(RIND):RIND负责在文本生成过程中实时监测LLM的不确定性,评估每个生成的标记的重要性和语义贡献,并据此确定是否需要激活检索模块。通过量化每个标记的不确定性,考虑标记在整个上下文中的重要性,以及标记之间的注意力分布,RIND能够更精准地决定何时进行信息检索。
- 基于自注意力的查询制定(QFS):一旦确定了检索的时机,QFS负责制定一个查询,该查询能够反映LLM当前的信息需求。QFS利用LLM的自注意力机制来分析整个上下文,并选择最能代表当前信息需求的标记来构建查询。这种方法使得查询不仅局限于最近生成的句子或标记,而是能够覆盖整个上下文,从而提高检索的相关性和有效性。
DRAGIN框架的设计使其能够无缝集成到任何基于Transformer的LLM中,无需额外的训练、微调或提示工程。通过在多个知识密集型生成数据集上的评估,DRAGIN展示了其在提高LLM生成性能方面的优越性,尤其是在需要复杂推理和多步骤任务的场景中。此外,DRAGIN的实验结果表明,其在减少不必要的检索、提高生成文本质量以及提升信息检索效率方面均优于现有的动态RAG方法。
传统RAG的缺陷
该研究指出了传统检索增强生成(RAG)的几个不足之处。首先,与其他方法相比,RAG的使用策略往往基于一套固定的规则,缺乏灵活性。其次,在对话式用户界面中,存在多个可能触发RAG调用的参数,这使得检索过程变得复杂。再次,决定检索内容的策略通常仅考虑语言模型最新生成的句子或标记,而忽略了更广泛的上下文信息。
此外,由于检索触发器未经优化,常常会导致不必要的检索行为。这些不必要的检索不仅增加了计算成本,还可能引入额外的噪声,尤其是在检索到的数据未经优化处理的情况下。同时,文本生成的额外开销会导致更高的成本和更长的推理等待时间,有时甚至可能导致超时。最后,RAG可能无法全面维护和考虑对话的完整上下文,从而影响了生成质量。
动态RAG
动态RAG