返回顶部
热门问答 更多热门问答
技术文章 更多技术文章

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

[复制链接]
链载Ai 显示全部楼层 发表于 3 小时前 |阅读模式 打印 上一主题 下一主题

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


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

RAGChecker 提供了三类指标:

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

2)检索指标:

  • 声明召回:衡量检索上下文覆盖标准答案声明的比例。
  • 上下文精度:评估检索上下文中相关 chunks 的比例。

3)生成指标:

  • 上下文利用率:反映生成器有效利用相关信息的程度。
  • 幻觉:量化生成的错误信息比例。
  • 忠实度:衡量生成器对检索上下文的依赖程度。
  • 相关/不相关噪声敏感度:评估生成器对不同类型噪声的敏感程度。
  • 自知识:反映生成器依赖内部知识的程度。

使用方法

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

  • 安装
pipinstallragchecker
python-mspacydownloaden_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\
--metricsall_metrics\
#--disable_joint_check#uncommentthislineforone-by-onechecking,slowerbutslightlymoreaccurate

  • 使用 python
fromragcheckerimportRAGResults,RAGChecker
fromragchecker.metricsimportall_metrics


#initializeragresultsfromjson/dict
withopen("examples/checking_inputs.json")asfp:
rag_results=RAGResults.from_json(fp.read())

#set-uptheevaluator
evaluator=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
)

#evaluateresultswithselectedmetricsorcertaingroups,e.g.,retriever_metrics,generator_metrics,all_metrics
evaluator.evaluate(rag_results,all_metrics)
print(rag_results)

"""Output
RAGResults(
2RAGresults,
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
}
}
)
"""
  • 与 llamaindex 集成
#Userqueryandgroudtruthanswer
user_query="WhatisRAGChecker?"
gt_answer="RAGCheckerisanadvancedautomaticevaluationframeworkdesignedtoassessanddiagnoseRetrieval-AugmentedGeneration(RAG)systems.Itprovidesacomprehensivesuiteofmetricsandtoolsforin-depthanalysisofRAGperformance."


#GetresponsefromLlamaIndex
response_object=rag_application.query(user_query)

#ConverttoRAGCheckerformat
rag_result=response_to_rag_results(
query=user_query,
gt_answer=gt_answer,
response_object=response_object,
)

#CreateRAGResultsobject
rag_results=RAGResults.from_dict({"results":[rag_result]})
print(rag_results)

实验结果

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

关键要点

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

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

  • 检索器的质量至关重要。无论使用何种生成器,更好的检索器都能带来一致的性能提升。例如,将 BM25 检索器替换为 E5-Mistral 检索器,在使用 GPT-4 作为生成器时,整体 F1 分数从 50.3 提高到 52.7 。

  • 生成器模型的规模越大,整体性能越好。这体现在更高的上下文利用率、更低的噪声敏感度和更少的幻觉。以 Llama3 系列为例,70B 版本在各项指标上都优于 8B 版本。

  • 开源模型在区分准确信息和噪声方面表现较差。它们倾向于过度信任上下文,特别是在检索质量提高时。例如,Llama3-70B 的忠实度从 93.2%上升到 95.9%,而 GPT-4 仅从 87.9%上升到 92.9%。

  • 存在检索召回和生成器噪声敏感度之间的权衡。提高检索召回率会不可避免地引入更多噪声,从而增加生成器的噪声敏感度。数据显示,使用 E5-Mistral 检索器时,声明召回率从 74.0%提高到 83.5%,但相关噪声敏感度也从 26.2%上升到 28.9%。

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

  • 优先提升检索器性能,如使用更好的嵌入模型或适度增加检索 chunk 数量和大小。实验表明,将 chunk 大小从 150 增加到 300,可以将整体 F1 分数从 52.6 提高到 53.4 。

  • 在有限上下文长度的情况下,使用较少数量的大 chunks 优于较多数量的小 chunks 。这可以提高上下文精度,从而减少噪声影响。

  • 针对不同的应用场景和用户偏好,可以通过调整生成提示来平衡上下文利用率、噪声敏感度和忠实度。例如,通过优化提示词,可以将 GPT-4 的忠实度从 92.2%提高到 93.6%。

  • 对于开源模型,需要着重提升其推理能力,以更好地区分和利用上下文中的有用信息。这可能需要在训练过程中引入更多的推理任务。

小结

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

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

链载AI是专业的生成式人工智能教程平台。提供Stable Diffusion、Midjourney AI绘画教程,Suno AI音乐生成指南,以及Runway、Pika等AI视频制作与动画生成实战案例。从提示词编写到参数调整,手把手助您从入门到精通。
  • 官方手机版

  • 微信公众号

  • 商务合作

  • Powered by Discuz! X3.5 | Copyright © 2025-2025. | 链载Ai
  • 桂ICP备2024021734号 | 营业执照 | |广西笔趣文化传媒有限公司|| QQ