跳至内容

数据集与实验结果

当我们评估人工智能系统时,通常使用两类主要数据:

  1. 评估数据集:它们存储在 datasets 目录下。
  2. 评估结果:这些存储在experiments目录下。

评估数据集

用于评估的数据集包含:

  1. Inputs: 一组系统将处理的输入。
  2. 预期输出(可选):系统在给定输入下的预期输出或响应。
  3. 元数据(可选):可以与数据集一起存储的附加信息。

例如,在检索增强生成(RAG)系统中,它可能包括查询(系统的输入)、评分注释(用于对系统输出进行评分)以及像查询复杂度这样的元数据。

元数据在对数据集进行切分和分析时尤其有用,允许你在不同的维度上分析结果。例如,你可能想查看系统在复杂查询与简单查询上的表现,或它如何处理不同的语言。

实验结果

实验结果包括:

  1. 数据集中的所有属性。
  2. 来自被评估系统的响应。
  3. 指标结果。
  4. 可选的元数据,例如指向给定输入的系统跟踪的 URI。

例如,在一个 RAG 系统中,结果可能包括查询、评分备注、响应、准确性得分(指标)、系统跟踪的链接等。

Ragas中的数据存储

我们理解不同团队在组织、更新和维护数据方面有不同的偏好,例如:

  • 单个开发者可能将数据集以 CSV 文件的形式存储在本地文件系统中。
  • 小型到中型团队可能会使用 Google 表格或 Notion 数据库。
  • 企业团队可能会依赖 Box 或 Microsoft OneDrive,这取决于他们的数据存储和共享策略。

团队也可能使用各种文件格式,如 CSV、XLSX 或 JSON。在这些格式中,CSV 或电子表格格式通常更受评估数据集的青睐,因为与训练数据集相比,它们更简单且体积更小。

Ragas 作为一个评估框架,允许您使用偏好的文件系统和格式来存储和读取数据集与实验结果,从而支持这些多样化的偏好。

为实现这一点,Ragas 引入了用于数据存储的即插即用后端

  • Ragas 提供默认后端,例如 local/csvgoogle_drive/csv
  • 这些后端是可扩展的,允许您为任何文件系统或格式实现自定义后端(例如,box/csv)。

通过 API 使用数据集和结果

加载数据集

from ragas_experimental import Dataset

test_dataset = Dataset.load(name="test_dataset", backend="local/csv", root_dir=".")

这个命令从 root_directory/datasets 目录加载名为 test_dataset.csv 的数据集。后端可以是通过 Ragas backends 注册的任何后端。

加载实验结果

from ragas_experimental import Experiment

experiment_results = Experiment.load(name="first_experiment", backend="local/csv", root_dir=".")

该命令加载名为 first_experiment.csv 的实验结果,来自 root_directory/experiments 目录。后端可以是通过 Ragas backends 注册的任何后端。

使用 Pydantic 进行数据验证

Ragas 提供通过 Pydantic 的数据类型验证。您可以为数据集或实验结果配置首选的 data_model,以确保在读取或写入数据存储之前对数据进行验证。

示例:

from ragas_experimental import Dataset
from pydantic import BaseModel

class MyDataset(BaseModel):
    query: str
    ground_truth: str

test_dataset = Dataset.load(name="test_dataset", backend="local/csv", root_dir=".", data_model=MyDataset)

这可确保数据符合指定的类型要求,防止无效数据被读取或写入。