数据集与实验结果
当我们评估人工智能系统时,通常使用两类主要数据:
- 评估数据集:它们存储在
datasets
目录下。 - 评估结果:这些存储在
experiments
目录下。
评估数据集
用于评估的数据集包含:
- Inputs: 一组系统将处理的输入。
- 预期输出(可选):系统在给定输入下的预期输出或响应。
- 元数据(可选):可以与数据集一起存储的附加信息。
例如,在检索增强生成(RAG)系统中,它可能包括查询(系统的输入)、评分注释(用于对系统输出进行评分)以及像查询复杂度这样的元数据。
元数据在对数据集进行切分和分析时尤其有用,允许你在不同的维度上分析结果。例如,你可能想查看系统在复杂查询与简单查询上的表现,或它如何处理不同的语言。
实验结果
实验结果包括:
- 数据集中的所有属性。
- 来自被评估系统的响应。
- 指标结果。
- 可选的元数据,例如指向给定输入的系统跟踪的 URI。
例如,在一个 RAG 系统中,结果可能包括查询、评分备注、响应、准确性得分(指标)、系统跟踪的链接等。
Ragas中的数据存储
我们理解不同团队在组织、更新和维护数据方面有不同的偏好,例如:
- 单个开发者可能将数据集以 CSV 文件的形式存储在本地文件系统中。
- 小型到中型团队可能会使用 Google 表格或 Notion 数据库。
- 企业团队可能会依赖 Box 或 Microsoft OneDrive,这取决于他们的数据存储和共享策略。
团队也可能使用各种文件格式,如 CSV、XLSX 或 JSON。在这些格式中,CSV 或电子表格格式通常更受评估数据集的青睐,因为与训练数据集相比,它们更简单且体积更小。
Ragas 作为一个评估框架,允许您使用偏好的文件系统和格式来存储和读取数据集与实验结果,从而支持这些多样化的偏好。
为实现这一点,Ragas 引入了用于数据存储的即插即用后端:
- Ragas 提供默认后端,例如
local/csv
和google_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)
这可确保数据符合指定的类型要求,防止无效数据被读取或写入。