评估#
概念#
在LLM(大型语言模型)的开发中,评估和基准测试是至关重要的概念。要改进LLM应用程序(如RAG、agents)的性能,必须有一种衡量方法。
LlamaIndex提供了关键模块来衡量生成结果的质量。我们还提供了关键模块来衡量检索质量。
- 响应评估:响应是否与检索到的上下文匹配?它是否还与查询匹配?它是否与参考答案或指南匹配?
- 检索评估:检索到的来源是否与查询相关?
本节描述了LlamaIndex内的评估组件的工作原理。
响应评估#
评估生成的结果可能很困难,因为与传统的机器学习不同,预测结果不是一个单一的数字,很难为这个问题定义定量指标。
LlamaIndex提供了基于LLM的评估模块来衡量结果的质量。这使用了“金标准”LLM(例如GPT-4)以多种方式决定预测的答案是否正确。
需要注意的是,许多当前的评估模块并不需要地面真实标签。评估可以通过查询、上下文、响应的某种组合来完成,并将其与LLM调用结合起来。
这些评估模块有以下形式:
- 正确性:生成的答案是否与给定查询的参考答案匹配(需要标签)。
- 语义相似性:预测的答案是否在语义上与参考答案相似(需要标签)。
- 忠实度:评估答案是否忠实于检索到的上下文(换句话说,是否存在臆想)。
- 上下文相关性:检索到的上下文是否与查询相关。
- 答案相关性:生成的答案是否与查询相关。
- 指南遵循:预测的答案是否遵循特定的指南。
问题生成#
除了评估查询外,LlamaIndex还可以使用您的数据生成问题进行评估。这意味着您可以自动生成问题,然后运行评估流程,测试LLM是否能够准确回答使用您的数据的问题。
检索评估#
我们还提供模块来帮助独立评估检索。
检索评估的概念并不新颖;在给定问题和地面真实排名的数据集的情况下,我们可以使用排名指标(如平均倒数排名(MRR)、命中率、精确度等)来评估检索器。
核心的检索评估步骤围绕以下内容展开:
- 数据集生成:给定一个非结构化文本语料库,合成生成(问题,上下文)对。
- 检索评估:给定一个检索器和一组问题,使用排名指标评估检索到的结果。
集成#
我们还与社区评估工具进行集成。
- UpTrain
- Tonic Validate(包括用于可视化结果的Web UI)
- DeepEval
- Ragas
使用模式#
有关完整的使用详情,请参阅下面的使用模式。
模块#
可以在模块指南中找到使用这些组件的笔记本。
使用LabelledRagDataset
进行评估#
有关如何使用各种评估数据集(称为LabelledRagDataset
)对RAG系统进行评估的详细信息,请参见下文: