微软CoRAG:提升多步骤问答任务的表现

文摘   2025-02-01 11:01   安徽  

微软推出了一种更智能的检索系统:CoRAG(Chain-of-Retrieval Augmented Generation, 链式检索增强生成)。



它利用动态检索过程,使得模型能够:

  • 逐步检索信息并进行调整

  • 根据需要重新制定查询

  • 自主决定需要多少次检索步骤


以下是 CoRAG 的工作原理及其训练方式的详细信息:


CoRAG 框架包含三个主要部分:

  • 生成检索链

  • 在这些增强数据集上训练模型

  • 调整测试时使用的计算资源




CoRAG 使用拒绝采样方法来自动生成检索链  




  • CoRAG 不是一次性检索所有信息,而是将搜索拆分为更小的步骤。

  • 它生成子问题及其对应的子答案。

  • 模型为每个子问题检索文档并提供答案,然后才进入下一步。

  • 这一过程持续进行,直到答案正确或步骤耗尽。

  • 最终,选择最有可能产生正确答案的最佳检索链。



使用 CoRAG 进行训练  




一旦 CoRAG 创建了自己的中间检索步骤,它会在这些增强数据集上微调 LLM,帮助模型同时学习执行三个任务:


  • 预测下一个子问题(学习如何拆解复杂查询)

  • 预测子答案(在每一步找到有用的信息)

  • 预测最终答案(将所有信息整合起来)




调整测试时的计算资源  




为了控制计算资源,用户可以:

  • 调整最大检索步骤数

  • 更改最佳 N 选取样本的检索链数量

  • 修改树搜索的搜索深度和展开次数




CoRAG 的结果  




  • CoRAG-8B 在多步骤问答任务和 KILT(知识密集型任务)基准测试中领先,甚至超越了更大的模型。

  • 检索链增强 相比传统的 RAG 是一大优势。

  • 扩展测试时的计算资源 能提高性能,但有一个限制。模型需要学会在何时停止检索。

  • 即使使用较弱的检索器,当使用更多的测试时计算资源时,性能依然得到提升。

  • Best-of-N 采样 对于复杂查询效果很好,而简单的策略则更适合较简单的任务。



论文地址:

https://arxiv.org/abs/2501.14342





PyTorch研习社
打破知识壁垒,做一名知识的传播者
 最新文章