评估#
背景介绍#
LlamaIndex 旨在将您的数据连接到您的 LLM 应用程序。
有时,即使在通过查看跟踪信息诊断和修复错误后,仍然需要更细粒度的评估来系统地诊断问题。
LlamaIndex 旨在提供这些工具,使识别问题和接收有用的诊断信号变得容易。
与评估密切相关的是实验和实验跟踪的概念。
通用策略#
在开发您的 LLM 应用程序时,首先定义一个端到端评估工作流可能会有所帮助;然后,一旦您开始收集失败案例或边缘情况,并直观了解哪些进展顺利或不顺利,您就可以深入评估和改进特定组件。
与软件测试的类比是集成测试和单元测试。一旦您开始调整单个组件,就应该开始编写单元测试。同样,衡量事物是否协同工作良好的黄金标准是集成测试。两者都同等重要。
以下是现有评估模块的概述。随着时间的推移,我们将添加更多模块和支持。
端到端还是组件级 - 我应该从哪个开始?#
如果您想在迭代系统时对其整体表现有一个大概了解,那么围绕端到端评估来组织您的核心开发循环是有意义的——这是一种整体性的健全性/感觉检查。
如果您知道自己在做什么,并想逐步迭代每个组件,随着进展逐步构建——您可能想从组件级评估开始。然而,这可能会带来过早优化的风险——在未评估整体应用程序需求的情况下进行模型选择或参数选择。在创建最终应用程序时,您可能需要重新审视这些选择。
深入评估#
评估是一个有争议的话题,随着自然语言处理(NLP)领域的发展,评估方法也在不断演变。
在一个强大的基础模型在标注任务上表现优于人类标注者的世界里,围绕评估的最佳实践正在不断变化。过去用于引导和评估当今模型的方法,如 BLEU 或 F1,已被证明与人类判断的相关性较差,需要谨慎应用。
通常,生成任务繁重、开放式且需要判断或意见的任务,由于其主观性,比事实性问题更难自动评估。我们将致力于提供更多指南和案例研究,说明在特定场景下哪些方法是合适的。
标准指标#
针对已标注的数据集,无论是您自己的数据还是学术基准,有一些标准指标值得了解:
- 精确匹配 (EM): 被精确正确回答的查询百分比。
- 召回率: 被正确回答的查询百分比,无论返回的答案数量如何。
- 精度: 被正确回答的查询百分比除以返回的答案数量。
- F1: F1 分数是精度和召回率的调和平均值。因此,它在一个指标中对称地代表了精度和召回率,同时考虑了假阳性和假阴性。
这篇 towardsdatascience 文章 更深入地介绍了 NDCG、MAP 和 MRR 等技术指标。