统计评估
Haystack 支持各种统计评估指标。本页解释了什么是统计评估,并讨论了 Haystack 中提供的各种选项。
引言
Haystack 中的统计评估通常使用精确率或召回率等指标来比较地面真实标签与管道预测。它通常用于评估检索增强生成 (RAG) 管道中的检索器组件,但如果提供了相关文档的地面真实标签,则此方法可以应用于任何管道。
在评估答案时,例如由抽取式问答管道预测的答案,会将预期答案的地面真实标签与管道的预测进行比较。
为了评估由 LLM 使用 Haystack 的某个生成器组件生成的答案,我们建议使用基于模型的评估。它可以包含语义相似性或连贯性度量,并且更适合评估可能在措辞上与地面真实标签不同的预测。
Haystack 中的统计评估管道
在 Haystack 中执行基于模型的评估有两种方法,这两种方法都利用了 管道 和 评估器 组件。
- 您可以独立创建和运行评估管道。这意味着您需要手动向评估管道提供必需的输入。我们推荐这种方式,因为将 RAG 管道和评估管道分离可以使您存储 RAG 管道的结果,并稍后尝试不同的评估指标,而无需每次都重新运行管道。
- 作为另一种选择,您可以将评估器添加到 RAG 管道的末尾。这意味着您可以在单个
pipeline.run()调用中运行 RAG 管道并在其上执行评估。
检索文档的统计评估
召回率衡量在一组查询中,正确文档出现在检索到的文档中的频率。对于单个查询,输出是二元的:要么正确文档包含在选定的文档中,要么不包含。在整个数据集中,召回率分数介于零(无查询检索到正确文档)和一(所有查询都检索到正确文档)之间。
在某些场景下,一个查询可能对应多个正确文档。度量recall_single_hit 考虑是否检索到至少一个正确文档,而 recall_multi_hit 则考虑一个查询的多个正确文档中有多少被检索到。
请注意,召回率受检索器返回的文档数量的影响。如果检索器返回的文档很少,则意味着检索正确文档的难度较大。请确保在您正在评估的管道中将检索器的 top_k 设置为适当的值。
DocumentMRREvaluator(平均倒数排名)
与召回率指标相比,平均倒数排名考虑了排名靠前的正确检索文档的位置(“排名”)。它这样做是为了考虑到查询会引发多个不同相关性的响应。与召回率一样,MRR 的值可以在零(无匹配)和一(系统为所有查询检索到正确文档作为排名靠前结果)之间。有关更多详细信息,请参阅 平均倒数排名维基页面。
DocumentMAPEvaluator(平均精度均值)
平均精度均值(mAP)类似于平均倒数排名(MRR),但它考虑了每个正确检索文档的位置。与 MRR 一样,mAP 的值可以在零(无匹配)和一(系统为所有排名靠前结果检索到正确文档)之间。在有多个正确答案需要检索的情况下,mAP 特别有用。有关更多详细信息,请参阅 平均精度均值维基页面。
抽取或生成的答案的统计评估
精确匹配衡量预测答案与正确答案完全相同的案例的比例。例如,对于标注的问答对“Haystack 是什么?”+“一个 Python 中的问答库”,即使预测的答案是“一个 Python 问答库”,得分也会为零,因为它与预期答案不完全匹配。
更新于 1 年前
