评估#
概念#
评估与基准测试是LLM开发中的核心概念。要提升LLM应用(RAG、智能体)的性能,必须建立有效的衡量机制。
LlamaIndex提供关键模块来量化生成结果的质量,同时也提供评估检索质量的核心组件。
- 响应评估:生成内容是否与检索上下文匹配?是否契合查询意图?是否符合参考答案或指导原则?
- 检索评估:检索结果是否与查询相关?
本节详述LlamaIndex内置评估组件的工作原理。
响应评估#
生成结果的评估具有挑战性——与传统机器学习不同,预测结果并非单一数值,且难以定义量化指标。
LlamaIndex提供基于LLM的评估模块,通过"黄金标准"LLM(如GPT-4)从多维度判定预测答案的准确性。
需注意,当前多数评估模块 无需 标注数据。评估可通过组合查询、上下文、响应等要素,结合LLM调用来实现。
评估模块包含以下类型:
- 正确性:生成答案是否与给定查询的参考答案一致(需标注数据)
- 语义相似度:预测答案与参考答案的语义匹配程度(需标注数据)
- 忠实度:评估答案是否严格基于检索上下文(即是否存在幻觉)
- 上下文相关性:检索内容是否与查询主题相关
- 答案相关性:生成答案是否切中查询要点
- 准则遵循度:预测答案是否符合特定指导原则
问题生成#
除评估查询外,LlamaIndex还能基于数据自动生成测试问题。这意味着您可以创建自动化评估流程,验证LLM基于给定数据回答问题的准确性。
检索评估#
我们同样提供独立的检索评估模块。
检索评估并非新概念:给定问题集与真实排序数据,可通过平均倒数排名(MRR)、命中率、精确度等指标评估检索器性能。
核心检索评估流程包含:
- 数据集生成:基于非结构化文本语料,合成(问题,上下文)配对
- 检索评估:针对检索器与问题集,使用排序指标评估检索结果
集成方案#
我们兼容以下社区评估工具:
- UpTrain
- Tonic Validate(含可视化结果的Web界面)
- DeepEval
- Ragas
- RAGChecker
- Cleanlab
使用模式#
完整使用指南请参阅:
模块组件#
具体使用示例详见模块指南中的Jupyter Notebook。
使用LabelledRagDataset
进行评估#
关于如何通过多种评估数据集(即LabelledRagDataset
)评估RAG系统,请参考: