CORAL
Abstract
RAG 是一种通过外部知识检索来提升 LLMs 性能的有效方法,但是当前已有的 RAG 都是单轮的问答,与我们现实中复杂的的多轮问答有所差距,所以本文提出了:CORAL 用于评估多轮对话情境下的RAG。
它涵盖了 RAG 的三个核心任务:段落检索、回复生成和引用标注。
Introduction
RAG 已成为在问答领域中的一种极具潜力的方法。它将 LLMs 与外部知识检索相结合,提高了生成的回答的质量和准确性。但是当前的单轮 RAG 评测和现实生活中的问答有一定差距:以常用的 GenAI 为例,我们让它们解决一个问题通常是分多步问答、不断改变的上下文和需求来实现的。
多轮 RAG 需要解决的问题有:(1)处理和合理地舍弃先前无用的、冗余的信息;(2)多轮问答的复杂性可能会降低检索和生成的质量。
因此,多轮的 RAG benchmark 应当包含这些特性:(1)涉及的领域广泛;(2)知识密集性,上下文中涵盖有深度的需求;(3)回复生成的格式很自由,确保回复全面、丰富;(4)可以评估大模型应对突然的上下文切换的能力;(5)引用标注,确保生成的回答来源透明。
本文提出了CORAL:来源于英文维基百科网页,包含8000个多样的信息寻求对话,构建的流程如下:将维基百科中的标题视为问题(比如下图中的 Deepfake 的定义、历史...),而将维基百科中内容整合成回答。同时,维基百科中的清晰结构(一级标题➡️二级标题➡️...)也很好地为构造多轮对话提供了帮助:
1 2 3 4 5 |
|
本文还提出了一个统一的框架,测评出了 baseline,并且发现:微调后的开源 LLM 性能比闭源的大模型好。
Related Work
检索增强生成和对话式搜索。
CORAL
数据来源: 对维基百科上的内容进行去噪(去模版、特殊符号、无效文本...),最终生成了一个包含20,000个高质量页面的清洁数据集。
数据集的构建: 共三个阶段:
标题树的提取:从维基百科页面的 HTML 代码中可以很清晰地提取出不同层级的标题,并且有清晰的架构。同时为了后续数据集的复杂和多样性,标题树的广度和深度也纳入考虑。
对话流程采样:在构造了标题树之后,如何从标题树开始构造多轮问题,实际上就是考虑如何“遍历”树上的每个节点,从而使问题更丰富。采样有四种方法:(1)线性下降采样:该策略从根节点开始,仅允许从父节点移动到子节点,类似人类 “刨根问底” 的逐步深入逼问;(2)包含兄弟节点的下降采样:在线性的基础上允许兄弟节点之间的移动,符合人类了解事物的时候,希望了解 事物多个不同的方面;(3)单树随机游走:在(2)的基础上添加了子节点到父节点的移动,符合人类深入了解了 某事物的某个方面后想去了解另外的方面;(4)双树随机游走:允许在两个不同但相关的树之间进行转移,符合人类询问时在 两个不同的主题之间游走和切换。
问题情境化:换言之就是讲上面提取的 “标题+内容”转变为一个个“问题+回答”,用 GPT-4 辅助完成。
数据集概况:
包含8,000个对话,每种对话结构类型各2,000个。LDS类型的对话每个对话包含3到6轮,而SIDS、STRW和DTRW——每种类型包含1,600组对话(每组6到10轮),以及400组(每组11到20轮)。
数据集格式:
其中,其中\(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)。
回复生成和引用标注评估: 用不同的大模型做生成器\(G\),比较在不同的压缩策略上的性能。
GPT-4的水平:
随着输入被逐步压缩(从原始上下文的2226个词符减少到LLM摘要的478个词符),性能的下降幅度出人意料地小,而在引用标注方面甚至有提升。这表明对话历史中的某些内容可能是不相关或冗余的,可以去除而不影响模型性能。
在三种对话压缩策略中,带有SFT的重写策略表现最佳,可能是因为该模型在简化的问答模式下学习能力更强。LLM摘要策略在回复生成方面的表现较弱,但在引用标注上显著提高。
模型参数的扩展分析:
对历史轮次的定量分析: 改变原对话的轮数,重新评测,效果如下:
微调后,尤其是在使用四轮历史时,性能显著提升。
微调前,使用六轮历史的回复质量相比四轮有所下降,可能是由于较长历史引入了冗余信息。
Conclusion
本文提出了一种自动化方法,利用LLM从维基百科页面生成大规模的信息寻求对话。生成的基准数据集CORAL支持评估对话式RAG系统的三项核心任务。此外,本文提出了一个统一的框架,用于标准化和评估多种对话式RAG方法,并在CORAL基准上对这些方法进行了全面评估。
局限性:(1)CORAL构建于维基百科之上,而现有LLMs通常已在维基百科和CommonCrawl等语料上进行过训练,使用这些LLM作为生成器可能会在对话式RAG过程中引发数据污染问题,因为它们的训练数据与生成数据集之间存在重叠;(2)CORAL中使用的三种对话压缩策略较为基础。
Tips
对话式查询重写(Conversational Query Rewriting, CQR)模型是一类专门用于改写用户查询的模型,主要应用于多轮对话搜索中。在多轮对话中,用户的查询通常会省略上下文信息,如指代和省略,因此单独处理这些查询可能会引发歧义或降低检索效率。CQR通过将用户的查询重写为独立的、上下文完整的版本,使得每个查询可以单独理解和处理,以更好地与传统的信息检索系统对接。
本页面最近更新:,更新历史
发现错误?想一起完善? 在 GitHub 上编辑此页!
本页面贡献者:OI-wiki
本页面的全部内容在 协议之条款下提供,附加条款亦可能应用