企业宣传,产品推广,广告招商,广告投放联系seowdb

RAGChecker RAG 一个精细化评估和诊断 系统的创新框架 显著超越RAGAS

RAG应用已经是当下利用大模型能力的典型应用代表,也获得了极大的推广,各种提升RAG性能的技术层出不穷。然而,如何全面、准确地评估 RAG 系统一直是一个挑战。传统评估方法存在诸多局限性:无法有效评估长文本回复、难以区分检索和生成模块的错误来源、与人类判断的相关性不高。为此,亚马逊和上海交通大学等研究团队开发了 RAGChecker,这是一个专为 RAG 系统设计的创新评估框架。

RAGChecker 的核心亮点在于其细粒度的评估方法。它首先使用大型语言模型将文本分解为独立的声明,然后通过另一个模型验证每个声明的准确性。这种方法不仅能够评估整体性能,还能深入诊断检索和生成模块的具体问题。

RAGChecker 提供了三类指标:

1)整体指标:包括精度、召回率和 F1 分数,全面反映 RAG 系统的输出质量。

2)检索指标:

3)生成指标:

使用方法

RAGChecker 提供了多种使用方法,包含命令行、python 编码等方式,还可以与主流 LLM 开发框架集成,如 llamaindex。

pip install ragcheckerpython -m spacy download en_core_web_sm
ragchecker-cli \--input_path=examples/checking_inputs.json \--output_path=examples/checking_outputs.json \--extractor_name=bedrock/meta.llama3-1-70b-instruct-v1:0 \--checker_name=bedrock/meta.llama3-1-70b-instruct-v1:0 \--batch_size_extractor=64 \--batch_size_checker=64 \--metrics all_metrics \# --disable_joint_check# uncomment this line for one-by-one checking, slower but slightly more accurate
from ragchecker import RAGResults, RAGCheckerfrom ragchecker.metrics import all_metrics# initialize ragresults from json/dictwith open("examples/checking_inputs.json") as fp:rag_results = RAGResults.from_json(fp.read())# set-up the evaluatorevaluator = RAGChecker(extractor_name="bedrock/meta.llama3-1-70b-instruct-v1:0",checker_name="bedrock/meta.llama3-1-70b-instruct-v1:0",batch_size_extractor=32,batch_size_checker=32)# evaluate results with selected metrics or certain groups, e.g., retriever_metrics, generator_metrics, all_metricsevaluator.evaluate(rag_results, all_metrics)print(rag_results)"""OutputRAGResults(2 RAG results,Metrics:{"overall_metrics": {"precision": 76.4,"recall": 62.5,"f1": 68.3},"retriever_metrics": {"claim_recall": 61.4,"context_precision": 87.5},"generator_metrics": {"context_utilization": 87.5,"noise_sensitivity_in_relevant": 19.1,"noise_sensitivity_in_irrelevant": 0.0,"hallucination": 4.5,"self_knowledge": 27.3,"faithfulness": 68.2}})"""
# User query and groud truth answeruser_query = "What is RAGChecker?"gt_answer = "RAGChecker is an advanced automatic evaluation framework designed to assess and diagnose Retrieval-Augmented Generation (RAG) systems. It provides a comprehensive suite of metrics and tools for in-depth analysis of RAG performance."# Get response from LlamaIndexresponse_object = rag_application.query(user_query)# Convert to RAGChecker formatrag_result = response_to_rag_results(query=user_query,gt_answer=gt_answer,response_object=response_object,)# Create RAGResults objectrag_results = RAGResults.from_dict({"results": [rag_result]})print(rag_results)

实验结果

RAGChecker 的有效性已通过大规模实验和人工评估得到验证。结果显示,RAGChecker 的评分与人类判断的相关性显著高于现有评估方法。在 Pearson 相关性上,RAGChecker 达到了 61.93%,而最接近的基线方法 RAGAS 仅为 48.31%。

关键要点

利用 RAGChecker,研究人员评估了 8 个最先进的 RAG 系统,覆盖了 10 个不同领域的数据集。

通过分析结果,他们发现了一些关键洞见:

基于这些发现,研究者提出了几点改进 RAG 系统的建议:

小结

RAGChecker 为全面评估和诊断 RAG 系统提供了一个强大而灵活的工具。通过揭示 RAG 系统中检索和生成模块的复杂交互,以及不同设计选择带来的影响,RAGChecker 不仅能帮助研究人员更好地理解和改进现有 RAG 系统,还为未来 RAG 系统的优化和创新指明了方向。

参考资料

[1]RAGChecker:

本文转载自​​,作者:

© 版权声明
评论 抢沙发
加载中~
每日一言
不怕万人阻挡,只怕自己投降
Not afraid of people blocking, I'm afraid their surrender