来自fans投稿,提出动态参数化RAG,即插即用无缝和RAG结合,减少RAG幻觉的发生,来看看具体思路。
检索增强生成(RAG)通过从外部源检索相关文档并将其合并到上下文中来增强大语言模型(LLMs)。虽然它通过提供事实文本提高了可靠性,但随着上下文长度的增长,显著增加了推理成本,并引入了具有挑战性的RAG幻觉问题,这主要是由于LLM中缺乏相应的参数知识造成的。
参数化RAG (PRAG)通过离线训练将文档嵌入大模型参数有效地降低推理成本。然而其高昂的训练和存储成本以及有限的泛化能力,极大地限制了其实际应用。
我们提出 动态参数化RAG,在推理时将文档知识动态转化为模型参数知识,能有效补充相应知识 。并且 能即插即用无缝和RAG结合,提升模型知识内化水平同时减少RAG幻觉的发生 。
论文:Better wit than wealth: Dynamic Parametric Retrieval Augmented Generation for Test-time Knowledge Enhancement
方法
检索增强生成(RAG)
设
为大型语言模型(LLM),基本参数为
。给定查询
,RAG从外部语料库
中检索相关文档,并选取前
个高相关性文档,将它们与
拼接后输入
进行生成。这种方式称为 上下文注入 (In-context Injection),但长上下文会导致推理成本大幅增加。
参数化RAG(PRAG)
PRAG直接将文档整合到模型参数中,避免长上下文带来的开销。每个文档
通过映射函数
转换为参数表示
。为了提升效果,PRAG对文档进行 数据增强 ,生成多种改写版本
,并自动生成
个问答对
。最终,PRAG使用 参数注入 (Parameter Injection)方法,将增强后的文档集
以LoRA方式通过离线训练融入模型参数,实现高效知识存储和调用。
然而,PRAG的训练成本较高,且难以适应新文档。因此,我们提出 动态参数化RAG(DyPRAG) ,实现更高效的参数注入。
动态参数化RAG(DyPRAG)
DyPRAG的核心思路在于训练一个轻量的 参数转换器 来建模从 文档->参数 的潜在映射,仅需要少量的训练数据就能有效学习到泛化性极强的转换器,在推理时几乎不会引入额外的计算开销且能提升模型性能,最少只需要 2MB存储开销 。
DyPRAG对比RAG和PRAG
- 文档-参数对收集(离线)
我们首先收集多个文档
及其对应的参数表示
,形成对齐数据集
。
- 训练动态参数翻译器(离线)
DyPRAG引入 参数翻译器 (Parameter Translator)
,用于将文档表示
转换为LoRA参数。具体步骤:
- 计算文档
的隐藏状态
,使用模型最后一层(输出层之前)的最后一个token的embedding。
- 通过多层感知机(MLP)映射
至LoRA参数
MLP超网络工作流程
- 训练时优化三种损失:
- 预测损失
,确保生成文本质量。
- MSE损失
,对齐
和
。
- KL损失
,保证概率分布一致性。
- 总损失函数:
,其中
和
控制不同损失的权重。
- 高效推理(在线)
推理阶段,只需输入新文档
,即可通过
生成动态LoRA适配器
,实现 无上下文参数注入 ,大幅降低推理成本。
DyPRAG整体框架图
实验
分布内QA实验
在多个问答数据集上训练参数转换器并进行实验,DyPRAG表现出极优的性能:
- DyPRAG能有效注入参数知识 :对比RAG,在没有提供任何文档拼接到上下文的情况下,DyPRAG表现出明显优于RAG的性能同时减少了推理开销。
- 上下文知识+动态生成参数知识有效促进知识融合: DyPRAG-Combine将文档加入上下文结合动态生成参数知识,在所有情况下取得最好效果,有效促进了模型知识和上下文知识的融合。
分布内主实验
分布外QA实验
DyPRAG能有效转换 分布外的文档 到参数知识,在补充参数知识后始终可以作为相比RAG更强更鲁棒的基线。
分布外数据集实现
为什么DyPRAG能减少RAG幻觉?
- RAG幻觉(或叫知识冲突)经常由于模型内部知识和外部提供上下文知识发生冲突导致发生。可能 模型包含正确的参数知识 但 结合上下文知识报错 ,也可能 上下文知识正确 但 模型包含错误参数知识 导致模型回答错误。
- DyPRAG首先动态将 检索文档转换为模型参数知识 ,提前让模型 “做足了功课” ,在遇到相对应的上下文内容时就能 极大程度避免知识冲突发生 ,这也是DyPRAG-Combine性能提升的直接来源,极低的开销使得DyPRAG有希望成为RAG幻觉的有效解决方式。
RAG幻觉示例分析
知识内化实验
基于RAGTruth幻觉数据集衡量DyPRAG-Combine对知识的内化程度(使用GPT-4o打分)。
RAGTruth中的文档来源和训练时完全不同并且大模型训练时完全没有见过——DyPRAG能 有效将没有见过知识进行内化 ,内化程度显著优于RAG方法。
RAGTruth数据集验证
计算/存储开销
通过详细的时间复杂度计算和实际运行时间对比,我们提出的DyPRAG能有效提升模型性能,同时减少RAG带来的高推理开销以及PRAG带来的极高训练和存储开销(仅1%),更证明方法 即插即用提升性能的高可用性!
实际存储和训练开销
理论分析推理、存储、训练开销
结论
-
我们提出动态参数化RAG (Dynamic Parametric RAG),一个 轻量级框架可以以即插即用的方式以最小的成本有效地将文档转换为参数 。
-
我们提出了一个强大而实用的RAG范式: 有效地将上下文知识与测试时动态生成的参数知识结合起来,实现更强大的知识融合 。
-
实验结果表明,DyPRAG具有 极优的泛化能力 ,能够有效地注入参数并无缝地融合上下文知识, 在减少RAG幻觉的同时提高了模型性能 。