Hub documentation

文件名和数据集划分

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

文件名和数据集划分

要在 Hugging Face Hub 上托管并共享您的数据集,请创建一个数据集仓库并上传您的数据文件。

本指南将展示在上传数据集仓库时如何命名文件和目录,以启用数据集中心的所有功能,例如数据集查看器。有关更多详细信息,请参阅配套示例数据集集合。

具有受支持的结构和文件格式的数据集,其 Hub 页面上会自动显示数据集查看器。

请注意,如果以下结构均不符合您的情况,您可以使用手动配置来更灵活地定义数据划分和子集。

基本用例

如果您的数据集未划分为训练/验证/测试集,最简单的数据集结构是仅包含一个文件:data.csv(这适用于任何受支持的文件格式和任何文件名)。

您的仓库还将包含一个 README.md 文件,即显示在您的数据集页面上的 数据集卡片。

my_dataset_repository/
├── README.md
└── data.csv

拆分

数据集仓库中的某些模式可用于将特定文件分配到训练/验证/测试集中。

文件名

您可以按照 train、test 和 validation 数据划分来命名您的数据文件:

my_dataset_repository/
├── README.md
├── train.csv
├── test.csv
└── validation.csv

如果您没有任何非传统的数据集划分,则可以将划分名称放在数据文件中的任意位置。唯一的规则是,划分名称必须由非单词字符分隔,例如使用 test-file.csv 而不是 testfile.csv。支持的分隔符包括下划线、连字符、空格、句点和数字。

例如,以下文件名均可接受:

  • 训练集:train.csv、my_train_file.csv、train1.csv
  • 验证集:validation.csv、my_validation_file.csv、validation1.csv
  • 测试集:test.csv、my_test_file.csv、test1.csv

目录名称

您可以将数据文件放入名为 train、test 和 validation 的不同目录中,每个目录包含对应数据划分的数据文件:

my_dataset_repository/
├── README.md
└── data/
    ├── train/
    │   └── data.csv
    ├── test/
    │   └── more_data.csv
    └── validation/
        └── even_more_data.csv

关键词

有几种方式来指代训练/验证/测试划分。验证划分有时被称为“dev”,测试划分则可能被称为“eval”。 这些其他的划分名称同样受支持,且以下关键字是等价的:

  • train, 训练
  • 验证,有效,val,dev
  • test, testing, eval, evaluation

因此,以下结构是一个有效的仓库:

my_dataset_repository/
├── README.md
└── data/
    ├── training.csv
    ├── eval.csv
    └── valid.csv

每个数据集中的多个文件

分割可以跨越多个文件,例如:

my_dataset_repository/
├── README.md
├── train_0.csv
├── train_1.csv
├── train_2.csv
├── train_3.csv
├── test_0.csv
└── test_1.csv

请确保 train 数据集中的所有文件名都包含 train(测试集和验证集同理)。 您甚至可以在文件名中的 train 前添加前缀或后缀(例如 my_train_file_00001.csv)。

为了方便起见,您也可以将数据文件放置在不同的目录中。 在这种情况下,分割名称将根据目录名称推断得出。

my_dataset_repository/
├── README.md
└── data/
    ├── train/
    │   ├── shard_0.csv
    │   ├── shard_1.csv
    │   ├── shard_2.csv
    │   └── shard_3.csv
    └── test/
        ├── shard_0.csv
        └── shard_1.csv

自定义拆分名称

如果您的数据集划分使用了自定义名称,而不是 train、test 或 validation,那么您可以将数据文件命名为 data/<split_name>-xxxxx-of-xxxxx.csv。

下面是一个包含三个子集(train、test 和 random)的示例:

my_dataset_repository/
├── README.md
└── data/
    ├── train-00000-of-00003.csv
    ├── train-00001-of-00003.csv
    ├── train-00002-of-00003.csv
    ├── test-00000-of-00001.csv
    ├── random-00000-of-00003.csv
    ├── random-00001-of-00003.csv
    └── random-00002-of-00003.csv
Update on GitHub