Ragas Ragas
stable · 中文译文
中文译文 · 原文:https://docs.ragas.io/en/stable/concepts/components/eval_dataset/ · 许可证 Apache-2.0

Evaluation Dataset(评测数据集)

评测数据集是同质的数据样本集合,用于评估 AI 应用的性能与能力。在 Ragas 中,评测数据集用 EvaluationDataset 类表示,它提供了一种结构化方式来组织和管理用于评测的数据样本。

概览

评测数据集的结构

评测数据集由以下部分组成:

  • Samples(样本):SingleTurnSample 或 MultiTurnSample 实例的集合。每个样本代表一次独特的交互或场景。
  • Consistency(一致性):数据集内所有样本应为同一类型(要么全部是单轮,要么全部是多轮),以保持评测一致性。

整理有效评测数据集的指南

  • 定义清晰目标:明确你想评测的 AI 应用具体方面,以及你想测试的场景。收集能反映这些目标的数据样本。
  • 收集有代表性的数据:确保数据集覆盖多样化的场景、用户输入和期望回复,以对 AI 应用提供全面评测。这可以通过从多种来源收集数据或生成合成数据来实现。
  • 质量与规模:目标是数据集足够大,能提供有意义的洞察,但又不会大到难以管理。确保数据质量高,并准确反映你想评测的真实世界场景。

从 SingleTurnSamples 创建评测数据集

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

Step 1: 导入必要的类

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

from ragas import SingleTurnSample, EvaluationDataset

Step 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",
)

Step 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("vibrantlabsai/amnesty_qa","english_v3")

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

from ragas import EvaluationDataset

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