给RAG系统做一次全面「体检」,亚马逊开源RAGChecker诊断工具
AIxiv专栏是机器之心发布学术、技术内容的栏目。过去数年,机器之心AIxiv专栏接收报道了2000多篇内容,覆盖全球各大高校与企业的顶级实验室,有效促进了学术交流与传播。如果您有优秀的工作想要分享,欢迎投稿或者联系报道。投稿邮箱:[email protected];[email protected]
论文:https://arxiv.org/pdf/2408.08067 项目地址:https://github.com/amazon-science/RAGChecker
细粒度评估:RAGChecker 采用基于声明(claim)级别的蕴含关系检查,而非简单的回复级别评估。这种方法能够对系统性能进行更加详细和微妙的分析,提供深入的洞察。 全面的指标体系:该框架提供了一套涵盖 RAG 系统各个方面性能的指标,包括忠实度(faithfulness)、上下文利用率(context utilization)、噪声敏感度(noise sensitivity)和幻觉(hallucination)等。 经过验证的有效性:可靠性测试表明,RAGChecker 的评估结果与人类判断有很强的相关性,其表现超过了其他现有的评估指标。这保证了评估结果的可信度和实用性。 可操作的洞察:RAGChecker 提供的诊断指标为改进 RAG 系统提供了明确的方向指导。这些洞察能够帮助研究人员和实践者开发出更加有效和可靠的 AI 应用。
Precision(精确率):模型回答中正确陈述的比例 Recall(召回率):模型回答中包含的标准答案中陈述的比例 F1 score(F1 分数):精确率和召回率的调和平均数,提供平衡的性能度量
Context Precision(上下文精确率):在所有检索块中,包含至少一个标准答案陈述的块的比例 Claim Recall(陈述召回率):被检索块覆盖的标准答案陈述的比例
Context Utilization(上下文利用率):评估生成模块如何有效利用从检索块中获取的相关信息来产生正确的陈述。这个指标反映了系统对检索到的信息的利用效率。 Noise Sensitivity(噪音敏感度):衡量生成模块在回答中包含来自检索块的错误信息的倾向。这个指标帮助识别系统对不相关或错误信息的敏感程度。 Hallucination(幻觉):测量模型生成既不存在于检索块也不在标准答案中的信息的频率。这就像是捕捉模型 “凭空捏造” 信息的情况,是评估模型可靠性的重要指标。 Self-knowledge(模型内部知识):评估模型在未从检索块获得信息的情况下,正确回答问题的频率。这反映了模型在需要时利用自身内置知识的能力。 Faithfulness(忠实度):衡量生成模块的响应与检索块提供的信息的一致程度。这个指标反映了系统对给定信息的依从性。
pip install ragchecker
python -m spacy download en_core_web_sm
{
"results": [
{
"query_id": "< 查询 ID>",
"query": "< 输入查询 >",
"gt_answer": "< 标准答案 >",
"response": "<RAG 系统生成的回答 >",
"retrieved_context": [
{
"doc_id": "< 文档 ID>",
"text": "< 检索块的内容 >"
},
...
]
},
...
]
}
使用命令行:
\
--input_path=examples/checking_inputs.json \
--output_path=examples/checking_outputs.json
或者使用 Python 代码:
from ragchecker import RAGResults, RAGChecker
from ragchecker.metrics import all_metrics
# 从 JSON 初始化 RAGResults
with 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)
较低的 Claim Recall(陈述召回率)可能表明需要改进检索策略。这意味着系统可能没有检索到足够多的相关信息,需要优化检索算法或扩展知识库。 较高的 Noise Sensitivity(噪音敏感度)表明生成模块需要提升其推理能力,以便更好地从检索到的上下文中区分相关信息和不相关或错误的细节。这可能需要改进模型的训练方法或增强其对上下文的理解能力。 高 Hallucination(幻觉)分数可能指出需要更好地将生成模块与检索到的上下文结合。这可能涉及改进模型对检索信息的利用方式,或增强其对事实的忠实度。 Context Utilization(上下文利用率)和 Self-knowledge(模型内部知识)之间的平衡可以帮助你优化检索信息利用和模型固有知识之间的权衡。这可能涉及调整模型对检索信息的依赖程度,或改进其综合利用多种信息源的能力。
© THE END
转载请联系本公众号获得授权
投稿或寻求报道:[email protected]
微信扫码关注该文公众号作者
戳这里提交新闻线索和高质量文章给我们。
来源: qq
点击查看作者最近其他文章