Skip to content

CORAL

Abstract

RAG 是一种通过外部知识检索来提升 LLMs 性能的有效方法,但是当前已有的 RAG 都是单轮的问答,与我们现实中复杂的的多轮问答有所差距,所以本文提出了:CORAL 用于评估多轮对话情境下的RAG。

它涵盖了 RAG 的三个核心任务:段落检索、回复生成和引用标注。

Introduction

RAG 已成为在问答领域中的一种极具潜力的方法。它将 LLMs 与外部知识检索相结合,提高了生成的回答的质量和准确性。但是当前的单轮 RAG 评测和现实生活中的问答有一定差距:以常用的 GenAI 为例,我们让它们解决一个问题通常是分多步问答、不断改变的上下文和需求来实现的。

多轮 RAG 需要解决的问题有:(1)处理和合理地舍弃先前无用的、冗余的信息;(2)多轮问答的复杂性可能会降低检索和生成的质量。

因此,多轮的 RAG benchmark 应当包含这些特性:(1)涉及的领域广泛;(2)知识密集性,上下文中涵盖有深度的需求;(3)回复生成的格式很自由,确保回复全面、丰富;(4)可以评估大模型应对突然的上下文切换的能力;(5)引用标注,确保生成的回答来源透明。 alt text

本文提出了CORAL:来源于英文维基百科网页,包含8000个多样的信息寻求对话,构建的流程如下:将维基百科中的标题视为问题(比如下图中的 Deepfake 的定义、历史...),而将维基百科中内容整合成回答。同时,维基百科中的清晰结构(一级标题➡️二级标题➡️...)也很好地为构造多轮对话提供了帮助:

1
2
3
4
5
Human:"Do you know '一级标题'? "
GPT:"..."
Human:"Talk about '二级标题'. "
GPT:"..."
...

alt text

本文还提出了一个统一的框架,测评出了 baseline,并且发现:微调后的开源 LLM 性能比闭源的大模型好。

检索增强生成和对话式搜索。

CORAL

数据来源: 对维基百科上的内容进行去噪(去模版、特殊符号、无效文本...),最终生成了一个包含20,000个高质量页面的清洁数据集。

数据集的构建: 共三个阶段:

  • 标题树的提取:从维基百科页面的 HTML 代码中可以很清晰地提取出不同层级的标题,并且有清晰的架构。同时为了后续数据集的复杂和多样性,标题树的广度和深度也纳入考虑。 alt text

  • 对话流程采样:在构造了标题树之后,如何从标题树开始构造多轮问题,实际上就是考虑如何“遍历”树上的每个节点,从而使问题更丰富。采样有四种方法:(1)线性下降采样:该策略从根节点开始,仅允许从父节点移动到子节点,类似人类 “刨根问底” 的逐步深入逼问;(2)包含兄弟节点的下降采样:在线性的基础上允许兄弟节点之间的移动,符合人类了解事物的时候,希望了解 事物多个不同的方面;(3)单树随机游走:在(2)的基础上添加了子节点到父节点的移动,符合人类深入了解了 某事物的某个方面后想去了解另外的方面;(4)双树随机游走:允许在两个不同但相关的树之间进行转移,符合人类询问时在 两个不同的主题之间游走和切换。 alt text

  • 问题情境化:换言之就是讲上面提取的 “标题+内容”转变为一个个“问题+回答”,用 GPT-4 辅助完成。

数据集概况:

包含8,000个对话,每种对话结构类型各2,000个。LDS类型的对话每个对话包含3到6轮,而SIDS、STRW和DTRW——每种类型包含1,600组对话(每组6到10轮),以及400组(每组11到20轮)。 alt text

数据集格式:

\[C = \{(q_i, r_i)\}_{i=1}^{n}\]

其中,其中\(q_i\)是在第\(i\)轮生成的上下文化查询,\(r_i\)是第\(i\)轮的黄金回答,即 HTML 中对应的未处理的文本。同时,我们整合得到一个包含200,000个段落的段落语料库\(P\),它是所有回答相关的黄金段落的集合,包含所有黄金引用。

评估任务:

三种基础的对话型任务:

  • 对话式段落检索:给定\(H_k = \{(q_i, r_i)\}_{i=1}^{k-1}\)\(q_k\),换言之就是给定了对话历史和当前问题,让检索器\(R\)从黄金段落库\(P\)中找到和问题相关的段落\(P_k\),用一些现有指标来评价检索的效果;

  • 回复生成:在给定对话历史\(H_k\)、当前请求\(q_k\)和相关段落\(P_k\)的情况下,生成器\(G\)生成一个信息丰富的回复来回答问题,用一些现有的指标和评测方法来评价生成的效果;

  • 引用标注:该任务评估方法在生成回复中准确标注信息来源的能力。对于生成回答中的每一个陈述都有一个引用标注\(C_i=\{c_{i,1}, c_{i,2}, ...\}\),而每一个\(c_{i,j}\in P_k\),用召回率等来评判标注的准确性。

Conversational RAG Framework

为了解决随着对话不断增加、噪声增多,系统的效率会下降。因此,将对话压缩很重要,本文采取了用 LLM 充当压缩函数\(f\)的方法。

压缩方法有:

  • 最近回复策略:\(f_{LR}(H_k) = \{q_i\}_{i=1}^{k},r_{k-1}\)

  • 重写策略(这个我在后面写了Tips):\(f_{RW}(H_k) = \text{Rewrite}(q_k, H_k)\)

  • LLM 摘要策略:\(f_{SUM}(H_k) = \text{LLM abstract}(H_k)\)

Experiments

检性能评估: 考察了对话式搜索中对话式密集检索(CDR)和对话式查询重写(CQR)。 alt text

回复生成和引用标注评估: 用不同的大模型做生成器\(G\),比较在不同的压缩策略上的性能。 alt text

GPT-4的水平: alt text

  • 随着输入被逐步压缩(从原始上下文的2226个词符减少到LLM摘要的478个词符),性能的下降幅度出人意料地小,而在引用标注方面甚至有提升。这表明对话历史中的某些内容可能是不相关或冗余的,可以去除而不影响模型性能。

  • 在三种对话压缩策略中,带有SFT的重写策略表现最佳,可能是因为该模型在简化的问答模式下学习能力更强。LLM摘要策略在回复生成方面的表现较弱,但在引用标注上显著提高。

模型参数的扩展分析: alt text

对历史轮次的定量分析: 改变原对话的轮数,重新评测,效果如下:alt text

  • 微调后,尤其是在使用四轮历史时,性能显著提升。

  • 微调前,使用六轮历史的回复质量相比四轮有所下降,可能是由于较长历史引入了冗余信息。

Conclusion

本文提出了一种自动化方法,利用LLM从维基百科页面生成大规模的信息寻求对话。生成的基准数据集CORAL支持评估对话式RAG系统的三项核心任务。此外,本文提出了一个统一的框架,用于标准化和评估多种对话式RAG方法,并在CORAL基准上对这些方法进行了全面评估。

局限性:(1)CORAL构建于维基百科之上,而现有LLMs通常已在维基百科和CommonCrawl等语料上进行过训练,使用这些LLM作为生成器可能会在对话式RAG过程中引发数据污染问题,因为它们的训练数据与生成数据集之间存在重叠;(2)CORAL中使用的三种对话压缩策略较为基础。

Tips

对话式查询重写(Conversational Query Rewriting, CQR)模型是一类专门用于改写用户查询的模型,主要应用于多轮对话搜索中。在多轮对话中,用户的查询通常会省略上下文信息,如指代和省略,因此单独处理这些查询可能会引发歧义或降低检索效率。CQR通过将用户的查询重写为独立的、上下文完整的版本,使得每个查询可以单独理解和处理,以更好地与传统的信息检索系统对接。