news 2026/9/12 3:51:12

使用 LabelledEvaluatorDataset 评估你的 LLM Evaluator:LlamaIndex 数据集驱动的评估器基准测试指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
使用 LabelledEvaluatorDataset 评估你的 LLM Evaluator:LlamaIndex 数据集驱动的评估器基准测试指南

使用 LabelledEvaluatorDataset 评估你的 LLM Evaluator:LlamaIndex 数据集驱动的评估器基准测试指南

【免费下载链接】llama_indexLlamaIndex is the document processing platform for AI项目地址: https://gitcode.com/GitHub_Trending/ll/llama_index

LabelledEvaluatorDataset是 LlamaIndex llama-datasets 体系中专为"评估评估器(evaluator)"而设计的数据集类型。它通过提供带参考答案(reference_scorereference_feedback)的评测样本,让你能够以流水线化的方式对任意 LLM 评估器进行基准测试,从而回答一个关键问题:你用来评判 RAG 系统回答质量的评估器,它本身的评判能力到底有多可靠?阅读本文后,你将掌握如何下载 llama-dataset、基于EvaluatorBenchmarkerPack批量运行评估器并产出可量化的基准测试结果,以及如何用LabelledPairwiseEvaluatorDataset评测擅长"二选一"的成对比较评估器。

llama-datasets:为"评估评估器"而生的数据集

llama-datasets 的设计初衷是让开发者能够快速对 LLM 系统或任务进行基准测试(benchmark)。在这一体系中,LabelledEvaluatorDataset专门服务于一个略显"元"的目标——评估评估器本身。

所谓评估评估器,是指:当你用一个 LLM(如CorrectnessEvaluator)去判断某个回答是否正确地覆盖了真实答案时,这个判断本身可能出错。LabelledEvaluatorDataset提供了"标准答案级别的参考答案",使得我们可以把评估器的输出与参考答案做计算性对比,从而量化评估器的好坏。

该数据集中的每个样本主要携带以下属性:

属性含义
query原始查询问题
answer被评估的模型回答(LLM 生成的内容)
ground_truth_answer该问题的标准答案
reference_score参考答案给出的评分(评估器的预测应当逼近此值)
reference_feedback参考答案给出的反馈文本(评估器的评判理由应当逼近此内容)

此外样本还附带一些补充属性。整个使用流程可以概括为两步:用你提供的 LLM 评估器对数据集中的所有样本做出预测,然后将预测结果与对应的参考答案进行计算性比较,得出衡量评估质量的指标

端到端实践:用 EvaluatorBenchmarkerPack 完成基准测试

原文档给出了一个高度可复用的代码骨架。它依赖三个核心组件:

  • download_llama_dataset:从 llama-datasets 注册中心下载数据集;
  • download_llama_pack:下载并实例化 LlamaPack(这里指EvaluatorBenchmarkerPack);
  • 评估器本体(示例中使用CorrectnessEvaluator+ Gemini LLM)。
from llama_index.core.llama_dataset import download_llama_dataset from llama_index.core.llama_pack import download_llama_pack from llama_index.core.evaluation import CorrectnessEvaluator from llama_index.llms.gemini import Gemini # download dataset evaluator_dataset, _ = download_llama_dataset( "MiniMtBenchSingleGradingDataset", "./mini_mt_bench_data" ) # define evaluator gemini_pro_llm = Gemini(model="models/gemini-pro", temperature=0) evaluator = CorrectnessEvaluator(llm=gemini_pro_llm) # download EvaluatorBenchmarkerPack and define the benchmarker EvaluatorBenchmarkerPack = download_llama_pack( "EvaluatorBenchmarkerPack", "./pack" ) evaluator_benchmarker = EvaluatorBenchmarkerPack( evaluator=evaluator, eval_dataset=evaluator_dataset, show_progress=True, ) # produce the benchmark result benchmark_df = await evaluator_benchmarker.arun( batch_size=5, sleep_time_in_seconds=0.5 )

步骤拆解

  1. 下载数据集download_llama_dataset("MiniMtBenchSingleGradingDataset", "./mini_mt_bench_data")会将MiniMtBenchSingleGradingDataset(对 MT-Bench 数据集做了单点评分改造的版本)下载并持久化到本地目录./mini_mt_bench_data。返回值是一个元组,第一个元素即数据集对象,第二个元素通常是文档集合或附加元数据。
  2. 定义评估器:这里用Gemini(model="models/gemini-pro", temperature=0)实例化 LLM,并通过temperature=0保证评估输出尽可能稳定、可复现;随后将其包装为CorrectnessEvaluator
  3. 实例化基准测试器EvaluatorBenchmarkerPack接收三个关键参数——evaluator(被评测的评估器)、eval_dataset(评测数据集)与show_progress(是否显示进度条)。
  4. 异步执行arun(batch_size=5, sleep_time_in_seconds=0.5)以每批 5 个样本的粒度异步跑完整个数据集,批间休眠 0.5 秒用于规避 API 限流;最终返回一个 DataFrame(benchmark_df),其中包含评估器预测与参考答案的对比结果及衍生指标。

一个值得注意的细节

原文档示例的EvaluatorBenchmarkerPack初始化代码中出现了evaluators["gpt-3.5"]的写法,这源于原示例上下文中的多评估器映射结构。在实际使用时,请直接传入你定义好的单个评估器实例(例如evaluator=evaluator),与上述完整示例保持一致。

相关数据集:LabelledPairwiseEvaluatorDataset

LabelledEvaluatorDataset同族的一个兄弟数据集是LabelledPairwiseEvaluatorDataset。二者的目标一致——评估评估器,但任务形态不同:

  • LabelledEvaluatorDataset:评估器对"单一回答"进行打分/反馈,然后与参考评分对比;
  • LabelledPairwiseEvaluatorDataset:评估器面对同一查询下的两个 LLM 回答,需要判定哪一个更好。

因此,使用LabelledPairwiseEvaluatorDataset时,评估器必须配备执行成对比较任务的能力,即应当使用PairwiseComparisonEvaluator。除此之外,其使用流程与LabelledEvaluatorDataset完全相同:下载数据集 → 定义成对比较评估器 → 用EvaluatorBenchmarkerPack批量运行 → 对比参考结果得到基准指标。

源码级佐证:评估器在仓库中的真实落点

上述流程所涉及的评估器并非虚构概念,它们都实现在当前仓库的评估模块中:

  • CorrectnessEvaluator 实现:单点评分评估器,基于 LLM 判断回答相对参考答案的正确性,是LabelledEvaluatorDataset场景下的典型评测对象;
  • PairwiseComparisonEvaluator 实现:成对比较评估器,在两个回答之间选出更优者,是LabelledPairwiseEvaluatorDataset场景下的必备评估器;
  • 评估模块统一导出:从from llama_index.core.evaluation import CorrectnessEvaluator的导入路径可以看到,所有评估器类均从核心包的evaluation子模块导出,这也解释了示例代码中导入语句的来源。

此外,download_llama_datasetdownload_llama_pack均来自llama_index.core的公开 API(llama_index.core.llama_datasetllama_index.core.llama_pack),相关数据集与 Pack 的注册映射可以在 命令行映射配置 中进一步核对。从源码结构看,LabelledEvaluatorDataset及其相关的EvaluatorBenchmarkerPack正是围绕"数据集即基准"这一设计哲学构建的:数据集中预置的参考评分与参考反馈,为评估器的质量提供了可计算、可复现的衡量标尺。

更多学习材料

若要直观地看到这些数据集在真实基准任务中的运行效果,可以查看仓库中基于 MT-Bench 数据集微调版本对 LLM 评估器进行基准测试的 notebook:

  • MTBench Single Grading:对 MT-Bench 回答做单点评分的评估器基准测试;
  • MTBench Human Judge:以人工评判作为参照的 MT-Bench 评估器基准测试。

通过动手运行这些 notebook,你可以把本文的流程落地为可观测、可比较的评估器质量报告,从而为自己的 RAG 或 Agent 系统选出一位"信得过"的裁判。

【免费下载链接】llama_indexLlamaIndex is the document processing platform for AI项目地址: https://gitcode.com/GitHub_Trending/ll/llama_index

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/12 3:49:57

从汉明码到LDPC:差错控制编码原理与工程实践

先问个问题:如果信道是理想的,我们还需要信道编码吗?答案是不需要——但现实世界从来没有理想信道。无线信号穿过空气会被衰减、反射、多径干扰,有线传输也躲不过热噪声和串扰。比特在信道上跑一圈,总会有那么几个被翻…

作者头像 李华
网站建设 2026/9/12 3:47:40

局部线性嵌入LLE:流形学习的原理、推导与NumPy实现

做流形学习的相关研究或课程作业时,局部线性嵌入(Locally Linear Embedding,LLE)这个名字总是绕不过去。它和 Isomap 一起被认为是流形学习领域的开山之作,2000 年发表在Science上时,给当时被 PCA 这类线性…

作者头像 李华
网站建设 2026/9/12 3:45:23

python的图论工业场景模拟第一百三十二篇:动态物料分配与通道失效韧性分析,任务:模拟通道随机失效,追踪最大流衰减输出韧性报告,图建模说明:动态有向图,删边与最大流迭代,核心点:动态失效韧性仿真。

⚠️ 前置说明:本篇是“网络流问题(第 7 章)”的韧性工程篇。核心目标是:在最大流算完之后,模拟传送带/管路/通信链路随机失效,观察最大流怎么掉、掉多少、掉在哪,输出一份“系统抗打击能力”报…

作者头像 李华
网站建设 2026/9/12 3:43:42

Smart Form跨系统传输与俄语多语言落地实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华