释放多圈 Rag 系统的能量:深入了解 Mtrag 基准测试!
在检索增强生成 (RAG) 应用上进行评估
对 检索增强生成 (RAG) 应用进行几次评估让我想起了深度学习早期的日子,那时数据或架构的细微变化可能对最终性能产生巨大的影响。
RAG 也在以类似的方式发展:单轮查询可能会被大型语言模型处理得非常出色,但一旦引入多轮查询,它突然会显示出明显的性能差距。
为什么多轮对话如此具有挑战性
在许多现有的 问答 和 信息检索 基准中,场景是简单明了的:我们有一个单一的问题和一组静态的文档。
然而,现实世界绝非静态。
人类对话曲折多变,人们会偏离主题或引用过去的言论。
标准基准往往忽视这些复杂性——尤其是现实用户所期望的动态上下文更新。
确实存在一些多轮基准,但许多忽略了检索组件。
从软件工程的角度来看,这就像只测试“对话协调”子模块,而忽略了整个提供上下文知识的“检索微服务”。
这就是 多轮检索增强生成基准(MTRAG)派上用场的地方。
IBM Research 的 MTRAG 是第一个反映多轮对话现实世界特性的 端到端人生成多轮检索增强生成基准。
以下是它与之前的多轮检索增强生成基准的比较:
MTRAG基准:超越一次性问题
MTRAG如何解决两个主要痛点:
-
段落多样性:真实的对话并不仅限于单一文档。随着讨论的深入,参与者会探索新的角度,这要求系统不断获取新信息。MTRAG对话平均涉及约17个独特的相关段落,这在考虑到典型的信息检索任务可能只需要一两个的情况下,显得非常重要。
-
非独立问题:在随意对话中,我们很少在每个回合中重述所有上下文。我们可能会说:“他们最新的型号怎么样?”这是基于五个回合前提到的内容。MTRAG确保系统能够无缝跟踪和整合这些上下文。
这些特性——加上FANC(忠实性, 适当性, 自然性, 完整性)——确实推动了多轮检索增强生成系统在提供引人入胜和准确响应方面的边界。
如何构建基准
团队创建了一个自定义聊天应用程序,供人类注释员与实时的RAG代理进行对话。
他们使用ELSERv1 (ElasticSearch 8.10) 作为检索器,使用Mixtral 8X7B Instruct 作为语言模型,捕捉人机对话的自然流畅性。
当系统的响应缺乏清晰性或正确性时,注释员会“修复”这些响应。
有趣的是,超过90%的响应需要某种程度的人类干预——这提醒我们,尽管大型语言模型功能强大,但仍需要指导来处理细微或不断变化的问题。
多领域语料库
我也很欣赏他们的领域驱动设计方法。他们收集了四个文档集:
- CLAPNQ (维基百科子集)
- FiQA (来自StackExchange的财务建议)
- Govt (.gov和.mil网站)
- Cloud (来自主要云服务提供商的技术文档)
以下是包含在MTRAG基准中的文档语料库的统计数据:
下面你可以看到CLAPNQ领域中对话的5/8轮:
对话中丰富了问题维度、段落多样性和修复。可回答性通过代理响应颜色显示:可回答、不可回答和部分可回答。多轮类型通过问题圆圈显示:后续和澄清。不同的相关段落突出多样性,原始文本显示了模型响应的修复。
每个语料库被分块为512个标记的段落。
这种模块化结构不仅与搜索索引的工作方式相一致,还与软件工程师可能设计的“内容微服务”相一致,这些微服务为检索器提供数据。
对我来说,这是将研究与稳健的工程实践结合的一个明确例子。
以下是基于每个基准维度的MTRAG任务分布:
检索与生成策略
他们测试了一系列检索器(词汇 — BM25,稠密 — BGE-base 1.5 和稀疏 — Elser),以及下一节介绍的九个大型语言模型。
以下是使用召回率和 nDCG 指标的模型检索性能:
在所有指标中,Elser 的表现优于 BM25 和 BGE-base 1.5。
下表还显示了 Elser 的表现 按 领域、首次与后续回合,以及问题是否为 独立:
结果还显示,与仅使用最后一次对话而不进行重写相比,查询重写始终提高了检索性能。
例如,“他们最新的模型怎么样?”可能变成“公司 X 最近推出的模型是什么?”这显著提高了检索精度,突显了 上下文消歧义 对于稳健的多轮检索增强生成 (RAG) 的重要性。
主要发现包括:
- 后续回合的 检索性能 较首次回合 低。
- 非独立问题 仍然具有挑战性,尽管查询重写有助于改善结果。
这些发现强调了改善检索系统的两个关键领域:
- 多轮检索 — 解决对话回合之间的性能下降。
- 处理非独立问题 — 改善对上下文依赖查询的检索。
模型
在设计多轮检索增强生成基准 (MTRAG) 时,团队探索了几种模型,每种模型都有其自身的优势和局限性。尽管它们在规模和架构上存在差异,但在多轮对话中仍面临相似的挑战:
- Llama 3.1 模型 (Dubey et al., 2024): 参数范围从 8B 到 405B,均支持高达 128K 的上下文令牌。
- Mixtral 专家混合模型: Mixtral 8×22B,一种经过指令调优的专家混合方法,支持高达 32K 的上下文令牌。
- GPT-4o 模型: GPT-4o 及其较小的兄弟 GPT-4o-mini,均支持高达 128K 的上下文长度。
- Command R+5: 104B 参数的多语言模型,针对检索增强生成和工具使用进行了调优。
- Qwen 2.5 模型 (团队, 2024): 7B 和 72B 模型,均具有高达 128K 的上下文长度。
这一系列模型在上下文长度、参数大小和专业化方面的权衡尝试上尤为引人注目。
基于指标的评估
在评估这些系统时,团队使用了三个主要指标:
- RBalg — 一种混合算法得分(基于Bert的召回率和精确度,Rouge-L)。
- RBllm — 受RADBench启发的LLM评估器,将生成的响应与参考答案进行比较。
- RLF — 专门针对忠实性的指标,来自RAGAS的LLM评估器(在RAG场景中很重要)。
他们还包括一个“我不知道”(IDK)探测器,以查看模型是否能够处理无法回答或部分可回答的查询。
如果系统无法回答,它应该说明,而不是幻想一个答案。
以下是不同检索设置下的整体生成结果:
按检索设置的生成结果:参考(•),参考+RAG(),和RAG(◦),带有IDK条件指标(n = 426)。每列中,最佳结果用粗体表示,第二好的结果用_下划线_表示。
像GPT-4o和Llama 3.1 405B这样的大型模型在各个检索设置下表现最佳,但仍然不及参考答案。当检索任务变得更加困难时,性能下降。
研究提出了一些关键观察:
- 无法回答的问题对模型来说很困难,尤其是当它们需要承认不知道答案时。Llama 70B/8B通过频繁地说**“我不知道”**来更好地处理这个问题,但代价是准确性降低。
- 第一轮问题的表现优于后续轮次,确认了多轮查询由于对话上下文而更难。
- 各领域的表现通常是一致的,除了FiQA,在这里模型由于金融论坛帖子非正式、主观的性质而表现不佳。
总体而言,提高对多轮案例和无法回答问题的处理能力仍然是一个关键挑战。以下是单轮与多轮生成的详细生成结果:
您还可以看到在参考(•)检索设置下使用单一指标RBalg的生成结果,涵盖三个不同维度:(a)可回答性,(b)轮次,以及(c)领域。
几乎在所有情况下,模型在第一轮与后续轮次的问题上表现更好。
关键见解与持续挑战
对我来说,最令人警醒的收获是后续对话轮次的性能下降。
第一轮的问题可能在 Recall@5 上达到约 0.89,但在接下来的几轮中,它滑落到 0.47。
这突显了一个根本性挑战:上下文积累。随着对话的深入,系统必须跟踪越来越微妙的引用。
查询重写有所帮助,但这并不是灵丹妙药。
这 reaffirmed 了我对将检索组件与生成模型集成的信念——通过更好的上下文处理——这是一个广阔的进一步研究领域。
合成对话与人类对话
他们还研究了自动生成合成对话——这对于扩展数据集创建非常有用——但机器生成的对话通常较短(5.9 与 7.7 回合)且段落多样性较低。
人类创造力在对话中仍然难以复制。
结果是检索到的段落多样性较低,因此不可避免地导致数据集更为狭窄。
虽然有所进展,但差距仍然存在。
前景展望
从长远来看,我看到一个将先进的 上下文感知检索 和 查询理解 直接融入模型架构的机会。
通过考虑领域知识、用户历史和对话风格,我们可以推动检索增强生成 (RAG) 朝着一致性、忠实性和上下文基础对话的新前沿发展。
您可以在 论文中找到关于多轮检索增强生成基准 (MTRAG) 的更多信息 和 github 仓库。
附加内容:与 AI 一起构建
并且不要忘记查看我们最近发布的一些从业者资源: