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技术4 小时前
云上一键部署 DeepSeek-V3 模型,阿里云PAI Model Gallery 最佳实践
人工智能·llm·强化学习
zyplanke19 小时前
Ollama私有化部署大语言模型LLM(上)
人工智能·ai·llm·大语言模型·ollama
大模型铲屎官1 天前
大模型(LLM)面试全解:主流架构、训练目标、涌现能力全面解析
人工智能·面试·架构·大模型·llm·nlp·大模型面试
大模型之路2 天前
提示词(Prompt)书写框架:解锁高效与精准的AI交互
人工智能·llm·prompt
zaim12 天前
计算机的错误计算(二百零四)
人工智能·ai·大模型·llm·等价·arcsin·arccot
AI趋势预见2 天前
AI投资分析:用于股票评级的大型语言模型(LLMs)
人工智能·深度学习·神经网络·语言模型·llm·llms
量子位3 天前
陈丹琦团队降本大法又来了:数据砍掉三分之一,性能却完全不减
人工智能·llm
tiger1194 天前
大模型与EDA工具
ai·llm·rtl·hdl·eda工具
zaim15 天前
计算机的错误计算(二百零一)
人工智能·ai·大模型·llm·错误·误差/error·幂指数
几米哥5 天前
Aider LLM性能排行榜最新动态:AI编程助手能力全面评测
开源·llm·aigc