RAG新动向:CORAL,多轮对话RAG的benchmark

背景

RAG(检索增强生成)是目前大模型应用技术中最火热的方向之一,通过外挂数据进行检索的方式增强LLM的生成能力。在实际应用中,RAG常应用于对话应用,然而之前对于对话型RAG的研究的关注点一直局限于单轮对话中,这和现实场景中的多轮对话其实是存在一定gap的。最近开始有关于RAG的研究将关注点聚焦到了多轮对话上,他们构造了关于多轮对话RAG的benchmark。本文是对《CORAL: Benchmarking Multi-turn Conversational Retrieval-Augmentation Generation》学习、理解和重新整理,希望帮助感兴趣的同学更容易掌握这一块的内容。

论文贡献

在这篇论文中,作者针对多轮对话RAG的场景,做出了以下贡献:

  • 提出了一种自动构建信息检索型对话数据集的方法。并基于这种方法,构建了CORAL(CO nversational R etrieval-A ugmented Generation Language)Benchmark,用于评估RAG的相关任务。
  • 提出了一个统一的框架来规范对话式RAG。
  • 在CORAL上基于规范对现有的一些对话式RAG方法进行了评估。

本文接下来的内容会针对论文内容解答以下问题:1. CORAL是怎样构建的?2. 对话式RAG的统一范式是什么样的?

CORAL构建

数据源选择

为了构造能够评估多轮对话的benchmark,首先要识别出这样的benchwmark应该具有哪些特征,论文中,作者指出了5种特征:

  • open-domain coverage
  • knowledge-intensiveness
  • freeform response
  • handling of topic shifts
  • citation labeling

因此,在选择数据源的时候也要考虑对齐这些标准。CORAL的数据源最终选择了Wikipedia,除了能够满足上面的特征外,还因为Wikipedia还具有广泛的话题、丰富的内容和较好的结构化格式。

语料处理

对于原始的Wikipedia的数据其中存在一些噪声文本和比较长的引用页,在进一步生成之前,需要先对这些数据进行处理。对于噪声文本,作者通过移除Wikipedia模板、过滤非法文本等方式进行了处理;对于比较长的引用页,作者将其进行分割成较小的段,然后过滤掉一些不合理的段。经过处理后得到20000条高质量的文本页。

标题树提取

对于处理后的wiki数据,首先提取出网页中的标题树。构造这样一个树结构是因为html中的标题本身携带了一定的层次信息,这个层次其实也是对内容的一个概括,相当于层次化的表示了内容信息,为后续构建问题提供了基础。

对话流采样

接下来就是基于这个树来构建对话。这里首先要获取一些关键词样本,这个过程我们称作对话流采样。不同的采样方式会得到不同的对话结果,论文中给出了4种采样策略。他们的流程如下图所示:

简单总结一下:

  1. Linear Descent Sampling(LDS) 线性下降采样。从根节点出发,仅允许从父节点到子节点。模拟真实对话场景中的渐进对话搜索场景。
  2. Sibling-Inclusive Descent Sampling (SIDS) : 这个策略在LDS的基础上在兄弟节点之间构建有向链接。模拟真实对话场景中搜索关联查询场景。
  3. Single-Tree Random Walk (STRW) :把父子链接和兄弟链接并入进来从而增强SIDS。模拟真实对话场景中更复杂的场景(我理解是单个话题上的来回提问)。
  4. Dual-Tree Random Walk (DTRW) : 模仿了真实对话场景中出现的话题转换。

策略上是不断递进的。

构造问题

经过上述采样,我们可以得到一些关键词(这些关键词基本上是树节点的标题),接下来需要将这些关键词转换成真实场景中的问题。这是一个多轮迭代处理的过程,在每一轮的处理过程中,需要将每个节点、它的所有祖先节点、当前节点的答案(标题下对应的内容)一起提交给GPT去生成一个自然语言问题,然后将这个生成的结果再提交给GPT去加工,加上一些更符合人类语言现象的内容(比如标点符号等),最终得到一个更加符合真实对话场景的问题。这个过程中两个GPT的prompt是不一样的。经过多轮迭代,最终完成所有数据集的构建。

完成构建

完成构建后,最终会得到8000个对话数据,每种采样得到的数据各2000条,其中LDS的数据包含3-6轮的对话,其他类型的数据中1600个对话是6-10轮,400个是11~20轮,用来模拟真实世界中的长上下文对话的场景。

对话RAG范式

论文中对对话RAG系统进行规范化,范式如下:

其中G表示生成任务,qk表示第k次查询,f表示压缩函数,Hk表示第k次历史,fp表示对检索结果Pk进行压缩。更加形象化的理解如下图所示:

压缩是为了减少无关信息的干扰,使生成任务更加的高效。压缩这里主要的方法包括:

  • Last Response Strategy:使用对话的历史中的问题和最后一个回答。
  • Rewrite Strategy :使用一个rewrite模型结合历史数据对当前问题进行改写。
  • LLM Summarization Strategy:使用LLM模型进行对话历史进行总结。

任务评估

CORAL主要支持3种RAG任务的评估:

  • Conversational Passage Retrieval:这个任务主要评估RAG系统从大量文档中获取关联信息的能力。
  • Response Generation:这个任务评估RAG系统生成准确、详细且符合上下文的答案的能力。
  • Citation Labeling:这个任务评估RAG系统在生成的回复中准确地归因信息来源的能力。

基于上述范式和CORAL数据集,论文中对不同任务进行了评估。具体实验数据可以参考论文,这里不截图了。

总结

本文基于对CORAL论文的理解,对论文中提到的内容进行了整理和表达,使论文内容更加清晰易懂。未来应该会有更多的多轮对话RAG会基于此项工作。希望可以对感兴趣的同学提供帮助。

相关推荐
阿里云大数据AI技术3 小时前
Qwen3.6、Kimi-K2.6、Minimax-M2.7、GLM-5.1 来啦!PAI支持海量模型一键部署!
人工智能·llm
Irissgwe5 小时前
LangChain之核心组件(少样本提示词)
人工智能·langchain·llm·langgraph
litble6 小时前
如何速成LLM以伪装成一个AI研究者(4)——PPO,GRPO,DAPO,GSPO
人工智能·llm·ppo·grpo·gspo·dapo
强殖装甲凯普7 小时前
我把「3小时播客变成可搜索文本」做成了 Claude Code 的一条命令
llm·skill·播客·claude code
Baihai IDP7 小时前
为什么 AI Agent 重新爱上了文件系统(Filesystems)
人工智能·ai·llm·agi
雪碧聊技术8 小时前
一文讲透AI大模型相关的专业名词
llm·token
山顶夕景10 小时前
【多模态RAG】Purifying Multimodal Retrieval
大模型·llm·mllm·多模态rag
swipe1 天前
别再把 AI 聊天做成纯文本:从 agui 这个前后端项目,拆解“可感知工具调用”的流式 AI UI
后端·langchain·llm
TheRouter1 天前
Agent Harness系列(三):记忆层的3种持久化架构——从SQLite到向量库
人工智能·架构·sqlite·llm·ai-native
Baihai_IDP1 天前
为什么 AI Agent 重新爱上了文件系统(Filesystems)
人工智能·llm·agent