链载Ai

标题: 给RAG系统做一次全面「体检」,亚马逊开源RAGChecker诊断工具 [打印本页]

作者: 链载Ai    时间: 1 小时前
标题: 给RAG系统做一次全面「体检」,亚马逊开源RAGChecker诊断工具

亚马逊上海人工智能研究院成立于 2018 年,已成为深度学习研究领域的领先机构之一,共发表了~90 篇论文。研究领域包括深度学习的基础理论、自然语言处理、计算机视觉、图机器学习、高性能计算、智能推荐系统、欺诈检测与风险控制、知识图谱构建以及智能决策系统等。研究院率先研究和开发了世界领先的深度图学习库 Deep Graph Library (DGL),结合了深度学习和图结构表示的优势,影响许多重要应用领域。

检索增强生成(Retrieval-Augmented Generation, RAG)技术正在彻底革新 AI 应用领域,通过将外部知识库和 LLM 内部知识的无缝整合,大幅提升了 AI 系统的准确性和可靠性。然而,随着 RAG 系统在各行各业的广泛部署,其评估和优化面临着重大挑战。现有的评估方法,无论是传统的端到端指标还是针对单一模块的评估,都难以全面反映 RAG 系统的复杂性和实际表现。特别是,它们只能提供一个最终打分报告,仅反映 RAG 系统的性能优劣。

人生病了需要去医院做检查,那 RAG 系统生病了,如何诊断呢?

近日,亚马逊上海人工智能研究院推出了一款名为 RAGChecker 的诊断工具为 RAG 系统提供细粒度、全面、可靠的诊断报告,并为进一步提升性能,提供可操作的方向。本文详细介绍了这个 RAG 的 “显微镜”,看看它如何帮助开发者们打造更智能、更可靠的 RAG 系统。



RAGChecker: RAG 系统的全面诊断工具

想象一下,如果我们能对 RAG 系统进行一次全面的 “体检”,会是什么样子?RAGChecker 就是为此而生的。它不仅能评估系统的整体表现,还能深入分析检索和生成两大核心模块的性能。


RAGChecker 的主要特点包括:

  1. 细粒度评估:RAGChecker 采用基于声明(claim)级别的蕴含关系检查,而非简单的回复级别评估。这种方法能够对系统性能进行更加详细和微妙的分析,提供深入的洞察。
  2. 全面的指标体系:该框架提供了一套涵盖 RAG 系统各个方面性能的指标,包括忠实度(faithfulness)、上下文利用率(context utilization)、噪声敏感度(noise sensitivity)和幻觉(hallucination)等。
  3. 经过验证的有效性:可靠性测试表明,RAGChecker 的评估结果与人类判断有很强的相关性,其表现超过了其他现有的评估指标。这保证了评估结果的可信度和实用性。
  4. 可操作的洞察:RAGChecker 提供的诊断指标为改进 RAG 系统提供了明确的方向指导。这些洞察能够帮助研究人员和实践者开发出更加有效和可靠的 AI 应用。

RAGChecker 的核心指标

RAGChecker 的指标体系可以用下图直观的理解:


这些指标被分为三大类:

1. 整体指标:


2. 检索模块指标:


3. 生成模块指标:


这些指标就像是 RAG 系统的 “体检报告”,帮助开发者全面了解系统的健康状况,并找出需要改进的地方。

开始使用 RAGChecker

对于想要尝试 RAGChecker 的开发者来说,上手过程非常简单。以下是快速入门的步骤:

1. 环境设置:首先,安装 RAGChecker 及其依赖:

pipinstallragcheckerpython-mspacydownloaden_core_web_sm

2. 准备数据:将 RAG 系统的输出准备成特定的 JSON 格式,包括查询、标准答案、模型回答和检索的上下文。数据格式应如下所示:

{"results":[{"query_id":"<查询ID>","query":"<输入查询>","gt_answer":"<标准答案>","response":"<RAG系统生成的回答>","retrieved_context":[{"doc_id":"<文档ID>","text":"<检索块的内容>"},...]},...]}

3. 运行评估:


ragchecker-cli\--input_path=examples/checking_inputs.json\--output_path=examples/checking_outputs.json


from ragchecker import RAGResults, RAGCheckerfrom ragchecker.metrics import all_metrics

# 从 JSON 初始化 RAGResultswith open ("examples/checking_inputs.json") as fp:rag_results = RAGResults.from_json (fp.read ())

# 设置评估器evaluator = RAGChecker ()

# 评估结果evaluator.evaluate (rag_results, all_metrics)print (rag_results)

4. 分析结果:RAGChecker 会输出 json 格式的文件来展示评估指标,帮助你了解 RAG 系统的各个方面表现。

输出结果的格式如下:


通过分析这些指标,开发者可以针对性地优化 RAG 系统的各个方面。例如:


通过这种方式,RAGChecker 不仅提供了详细的性能评估,还为 RAG 系统的具体优化方向提供了清晰的指导。

在 LlamaIndex 中使用 RAGChecker

RAGChecker 现在已经与 LlamaIndex 集成,为使用 LlamaIndex 构建的 RAG 应用提供了强大的评估工具。如果你想了解如何在 LlamaIndex 项目中使用 RAGChecker,可以参考 LlamaIndex 文档中关于 RAGChecker 集成的部分。






欢迎光临 链载Ai (https://www.lianzai.com/) Powered by Discuz! X3.5