跳至内容

评估数据集

评估数据集是一组同质的data samples,用于评估人工智能应用的性能和能力。在 Ragas 中,评估数据集由 EvaluationDataset 类表示,该类提供了一种结构化的方式来组织和管理用于评估的数据样本。

概述

评估数据集的结构

评估数据集包含:

  • 样本: 一个由 SingleTurnSampleMultiTurnSample 实例组成的集合。每个样本代表一个独特的交互或场景。
  • 一致性: 数据集内的所有样本应为相同类型(要么全部为单轮样本,要么全部为多轮样本),以保持评估的一致性。

策划有效评估数据集的指南

  • 明确目标:确定您想评估的 AI 应用的具体方面以及您想测试的场景。收集反映这些目标的数据样本。

  • 收集具有代表性的数据: 确保数据集涵盖多种情景、用户输入和预期响应,以便对 AI 应用进行全面评估。这可以通过从各种来源收集数据或generating synthetic data来实现。

  • 质量与规模: 目标是数据集足够大以提供有意义的见解,但不要大到难以处理。确保数据具有高质量并准确反映您想要评估的现实场景。

从 SingleTurnSamples 创建评估数据集

在此示例中,我们将演示如何使用多个 SingleTurnSample 实例创建一个 EvaluationDataset。我们将逐步讲解该过程,包括创建单个样本、将它们组合成数据集,以及对数据集执行基本操作。

步骤 1:导入必要的类

首先,从你的模块中导入 SingleTurnSample 和 EvaluationDataset 类。

from ragas import 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。

dataset = EvaluationDataset(samples=[sample1, sample2, sample3])

从 Hugging Face Datasets 加载评估数据集

在实践中,你可能希望从现有的数据集来源(例如 Hugging Face Datasets 库)加载一个评估数据集。下面的示例演示如何从 Hugging Face 数据集中加载评估数据集并将其转换为 EvaluationDataset 实例。

确保数据集包含用于评估的必要字段,例如用户输入、检索到的上下文、响应和参考答案。

from datasets import load_dataset
dataset = load_dataset("explodinggradients/amnesty_qa","english_v3")

将数据集加载到 Ragas EvaluationDataset 对象中。

from ragas import EvaluationDataset

eval_dataset = EvaluationDataset.from_hf_dataset(dataset["eval"])