RAG评测完整指南:指标、测试和最佳实践包含哪些内容?
摘要:原文: https:mp.weixin.qq.comsam89yasxAvuYUToEAWNyTA RAG(Retrieval-Augmented Generation,检索增强生)最初由Facebook AI Research(现
原文: https://mp.weixin.qq.com/s/am89yasxAvuYUToEAWNyTA
RAG(Retrieval-Augmented Generation,检索增强生)最初由Facebook AI Research(现Meta AI)团队在论文 Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks 中提出,并发表于NeurIPS 2020。
如果你有使用RAG应用,你会发现,RAG框架是一个复杂的工作流,包括分块、搜索、上下文拼接和内容生成等步骤,一旦系统最终响应的内容不符合预期,对于问题的定位会非常复杂,是模型出现了幻觉?还是从一开始就没有获取到正确的信息?
这就需要一个完善的RAG评估体系:评估RAG系统各个模块运行的效果,在用户之前分析问题、甚至是预判问题。这篇文章会和大家详细聊聊,如何在开发和生产环境中评估RAG系统。
全文速览
基本概念:RAG系统能够从大量的语料库中检索出与输入问题相关的上下文信息,并利用这些信息生成准确、合理的回答, RAG评估用于评价RAG系统性能的系统方法。
RAG评估核心内容:检索(查找有用信息)、生成(生成最终答案)。
检索评估:分为排序、上下文相关性指标,前者可以采用Top-K召回,后者可以采用人工或LLM来判断。
生成评估
有真值:使用LLM作为评判员或语义相似性,将输出与正确答案进行比较。
无真值:可以检查响应的忠诚度、完整性、语气或结构质量
合成测试数据:一种帮助RAG评估的方法,通过从知识库中生成问答对来实现,用以在没有真实数据的情况下快速构建和测试集。
鲁棒性测试和对抗性测试:确保RAG系统在面对风险输入或极端情况时,响应仍然安全一致。鲁棒性测试评估RAG系统在正常场景之外的行为,并观察其能否从容的应对。对抗性测试侧重系统的安全性,测试RAG系统能够抵御恶意攻击或误操作,并保护用户的数据和隐私。
基本概念
什么是 RAG?
RAG作为当下主流的LLM应用框架,将外挂的知识库(如网络数据、企业私有文档)、LLM内置的知识完美融合,有效解决LLM中存在的信息过时、输出幻觉、行业数据隔离等痛点问题,产生更准确、更有用的结果。
举个例子,对于一家公司的客服机器人,LLM是很难知道这家公司的产品功能、业务逻辑的。相反,RAG系统在用户提出问题时,会检索公司内部的产品或业务文档,将检索到的相关内容交给LLM,由LLM生成最终的答案。
RAG 系统可以分为两大步骤:
R(Retrieval): 尝试找到与用户查询最相关的信息片段,信息的来源包括文档存储库、知识库、SQL查询数据库等。
G(Generate): 利用检索到的信息生成答案
需要提醒的是,RAG系统是一种设计理念,而非单一的实现形式。比如,检索部分的实现形式是多样的,如语义搜索、关键词搜索、SQL查询,甚至是API调用,为模型提供有用的上下文信息。
在企业应用中,检索实际上是对内部的大量非结构化文档进行搜索的系统,包括文档的准备、存储、索引方式和排序。
检索完成后,需要为LLM构建完整的提示信息,包括:
用户的问题
检索到的上下文
系统提示,约定模型按照什么格式输出答案
什么是 RAG 评估?
定义:旨在衡量RAG系统在实际应用中的性能表现。比如:是否提取了正确的信息?是否给出了正确的答案?输出结果是否可信?一个合理的评估体系有助于回答这些问题,并指导开发工程师做出更好的设计决策。
RAG系统就像一台精密的机器,要让它稳定运转,每个关键环节都要做扎实:文档的分块和存储方式、使用的嵌入模型、检索逻辑、提示格式、LLM 版本等等。
一套靠谱的评估方法,就像这台精密机器的调试工具箱,能解决很多实际问题:
快速给出不同方案的对比效果,比如哪种文档分块方式找答案更准
追踪哪些因素能提高或降低效果
精准定位问题,当系统答非所问或出错时,能更快找到症结在哪儿,调试起来更省心。
说了这么多,到底该如何评估呢?一种简单的方式,对RAG系统进行端到端评估,重点关注最终答案的质量,这种方式尽管也可行,但不利于问题的排查、效果的优化。
更优的方式是,将检索和生成阶段分开评测,这对于调试也至关重要。当你得到错误答案时,你首先应该问自己:哪里出错了?
系统是否检索到正确的上下文信息
上下文正确了,模型是不是出现了幻觉
接下来,我们将分别介绍检索和生成阶段的评估方法
检索阶段的评估方法
下面将介绍有真值、人工标注和LLM三种评估方法。
有真值的评估方法
检索评估并非一个新话题,所有搜索引擎的背后都有一套这样的评估机制,比如百度、谷歌,这是一个典型的机器学习应用场景。
