2025-02-02 16:44 云南
传统 RAG 方法通常只在生成前执行一次检索,这在处理复杂查询时效果有限。微软&人大提出了一种用于训练o1-like的RAG模型的方法CoRAG,在生成最终答案之前逐步检索并推理相关信息。
CoRAG(Chain-of-Retrieval Augmented Generation) 的核心在于通过 拒绝采样(rejection sampling) 自动生成中间检索链,从而扩展现有的 RAG 数据集。每个检索链由一系列子查询和子答案组成,模型通过逐步检索和推理来逐步接近最终答案。
CoRAG概览。利用拒绝采样为仅包含问答对的数据集增加检索链。每条链从原始查询开始,随后是一系列子查询和子答案。然后对开源的大型语言模型(LLM)进行微调,以基于当前状态预测下一步操作。在推理过程中,提供了多种解码策略来控制测试时的计算量。
检索链生成:通过拒绝采样生成中间检索链,每个链由子查询和子答案组成。模型根据当前状态动态生成新的子查询,并通过检索获取子答案。
模型训练:使用增强后的数据集对开源语言模型进行微调。训练任务包括子查询预测、子答案预测和最终答案预测。
测试时解码策略:提出多种解码策略(如贪婪解码、最佳采样和树搜索)来控制测试时的计算量,通过调整检索链长度和采样数量来平衡性能和计算成本。
实验评估了 CoRAG 在多个基准测试中的表现,包括多跳问答数据集(如 2WikiMultihopQA、HotpotQA 和 MuSiQue)和 KILT 基准测试(涵盖多种知识密集型任务)。
多跳问答任务:CoRAG 在这些任务中表现优异,与强大的基线模型相比,EM(Exact Match)分数提高了超过 10 个百分点。例如,在 MuSiQue 数据集中,CoRAG 的 EM 分数达到了 72.5%,显著优于其他模型。
KILT 基准测试:CoRAG 在几乎所有任务上都取得了新的最佳性能,尤其是在需要复杂推理的任务中。例如,在 FEVER 任务中,CoRAG 的准确率达到了 93.1%,接近甚至超过了部分参数量更大的模型。
CoRAG 模型在测试时可以通过增加检索链长度和采样数量来显著提升性能,尤其是在处理复杂推理任务时。然而,这种提升存在边际效应,且不同数据集的扩展行为存在显著差异。
HotpotQA数据集验证集中的示例。为简洁起见,每一步检索到的文档均已省略。正确答案以蓝色突出显示,错误答案以红色突出显示。
https://arxiv.org/pdf/2501.14342
Chain-of-Retrieval Augmented Generation
推荐阅读
• 对齐LLM偏好的直接偏好优化方法:DPO、IPO、KTO
• DeepSeek R1/o1大型推理模型蓝图:架构设计及快速原型实现框架x1
• RAG全景图:从RAG启蒙到高级RAG之36技,再到终章Agentic RAG!
• Agent到多模态Agent再到多模态Multi-Agents系统的发展与案例讲解(1.2万字,20+文献,27张图)
欢迎关注我的公众号“PaperAgent”,每天一篇大模型(LLM)文章来锻炼我们的思维,简单的例子,不简单的方法,提升自己。