评估数据集
评估数据集是一组同质的data samples,用于评估人工智能应用的性能和能力。在 Ragas 中,评估数据集由 EvaluationDataset
类表示,该类提供了一种结构化的方式来组织和管理用于评估的数据样本。
概述
评估数据集的结构
评估数据集包含:
- 样本: 一个由 SingleTurnSample 或 MultiTurnSample 实例组成的集合。每个样本代表一个独特的交互或场景。
- 一致性: 数据集内的所有样本应为相同类型(要么全部为单轮样本,要么全部为多轮样本),以保持评估的一致性。
策划有效评估数据集的指南
-
明确目标:确定您想评估的 AI 应用的具体方面以及您想测试的场景。收集反映这些目标的数据样本。
-
收集具有代表性的数据: 确保数据集涵盖多种情景、用户输入和预期响应,以便对 AI 应用进行全面评估。这可以通过从各种来源收集数据或generating synthetic data来实现。
-
质量与规模: 目标是数据集足够大以提供有意义的见解,但不要大到难以处理。确保数据具有高质量并准确反映您想要评估的现实场景。
从 SingleTurnSamples 创建评估数据集
在此示例中,我们将演示如何使用多个 SingleTurnSample
实例创建一个 EvaluationDataset。我们将逐步讲解该过程,包括创建单个样本、将它们组合成数据集,以及对数据集执行基本操作。
步骤 1:导入必要的类
首先,从你的模块中导入 SingleTurnSample 和 EvaluationDataset 类。
第2步:创建个体样本
创建多个 SingleTurnSample 实例,表示单个评估样本。
# Sample 1
sample1 = SingleTurnSample(
user_input="What is the capital of Germany?",
retrieved_contexts=["Berlin is the capital and largest city of Germany."],
response="The capital of Germany is Berlin.",
reference="Berlin",
)
# Sample 2
sample2 = SingleTurnSample(
user_input="Who wrote 'Pride and Prejudice'?",
retrieved_contexts=["'Pride and Prejudice' is a novel by Jane Austen."],
response="'Pride and Prejudice' was written by Jane Austen.",
reference="Jane Austen",
)
# Sample 3
sample3 = SingleTurnSample(
user_input="What's the chemical formula for water?",
retrieved_contexts=["Water has the chemical formula H2O."],
response="The chemical formula for water is H2O.",
reference="H2O",
)
第 3 步: 创建 EvaluationDataset。通过传入 SingleTurnSample 实例的列表来创建一个 EvaluationDataset。
从 Hugging Face Datasets 加载评估数据集
在实践中,你可能希望从现有的数据集来源(例如 Hugging Face Datasets 库)加载一个评估数据集。下面的示例演示如何从 Hugging Face 数据集中加载评估数据集并将其转换为 EvaluationDataset 实例。
确保数据集包含用于评估的必要字段,例如用户输入、检索到的上下文、响应和参考答案。
from datasets import load_dataset
dataset = load_dataset("explodinggradients/amnesty_qa","english_v3")
将数据集加载到 Ragas EvaluationDataset 对象中。