主题
llama-datasets 的用意,是让构建者能够快速对 LLM 系统或任务做基准测试。本着这一精神,LabelledEvaluatorDataset 的存在就是为了以无缝、省力的方式评估“评估器”本身。
该数据集由若干样例组成,主要携带以下属性:query、answer、ground_truth_answer、reference_score 与 reference_feedback,另有一些补充属性。用它产出评估的用户流程是:拿一个给定的 LLM 评估器在数据集上做预测,再通过计算比对预测与对应参考值,得出衡量评估好坏的指标。
下面这段代码使用 EvaluatorBenchmarkerPack,把上述流程方便地包办了下来。
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=evaluators["gpt-3.5"],
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
)相关的 LabelledPairwiseEvaluatorDataset
还有一个相关的 llama-dataset 是 LabelledPairwiseEvaluatorDataset。它同样用于评估评估器,只不过这次要求评估器去比较针对同一查询的一对 LLM 回答,并判断其中哪个更好。前文描述的使用流程与 LabelledEvaluatorDataset 完全一致,区别在于这个 LLM 评估器必须具备成对比较的能力——也就是说,它应当是一个 PairwiseComparisonEvaluator。
更多学习资料
想看看这些数据集的实际效果,请务必查阅下面列出的 notebook——它们在略作改动的 MT-Bench 数据集上对 LLM 评估器做了基准测试。