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会基于此项工作。希望可以对感兴趣的同学提供帮助。

相关推荐
知来者逆1 小时前
ChemBench—— 探索大语言模型在化学领域的新基准框架是否胜过化学专家
人工智能·语言模型·自然语言处理·llm·大语言模型·化学
engchina6 小时前
LLM PPT Translator
llm·powerpoint·translator
蚝油菜花6 小时前
WebDreamer:基于大语言模型模拟网页交互增强网络规划能力的框架
人工智能·开源·llm
机智的小神仙儿6 小时前
InstructGPT——AI 模型的对齐革命
人工智能·深度学习·机器学习·llm
知来者逆19 小时前
首次公开用系统审查与评估大语言模型安全性的数据集
人工智能·机器学习·语言模型·自然语言处理·llm·大语言模型
CodeDevMaster1 天前
LangChain之检索增强生成RAG
人工智能·python·llm
Baihai IDP1 天前
从 Llama 1 到 3.1:Llama 模型架构演进详解
人工智能·ai·开源·llm·llama
量子位2 天前
吴恩达开源大模型套件:11 个模型平台一种方式调用,已获星标超 1.2K
人工智能·llm
Florian3 天前
解读Graph+AI白皮书:LLM浪潮下,Graph尚有何为?
ai·llm·graph·图计算·白皮书