跳到主要内容

手动配置

本指南将向你展示如何为数据集仓库配置自定义结构。配套的示例数据集集合展示了文档的每个部分。

具有支持的结构和文件格式的数据集会在 Hub 上的数据集页面自动拥有数据集查看器。你可以使用 YAML 定义查看器使用的切分、子集和构建器参数。

也可以为同一数据集定义多个子集(也称为"配置")(例如,如果数据集有各种独立文件)。

切分

如果你有多个文件并想要定义哪个文件属于哪个切分,可以在 README.md 的顶部使用 YAML。

例如,给定如下仓库:

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

你可以通过在 README.md 顶部的 YAML 块中添加 configs 字段来为切分定义子集:

---
configs:
- config_name: default
data_files:
- split: train
path: "data.csv"
- split: test
path: "holdout.csv"
---

你可以使用路径列表为每个切分选择多个文件:

my_dataset_repository/
├── README.md
├── data/
│ ├── abc.csv
│ └── def.csv
└── holdout/
└── ghi.csv
---
configs:
- config_name: default
data_files:
- split: train
path:
- "data/abc.csv"
- "data/def.csv"
- split: test
path: "holdout/ghi.csv"
---

或者你可以使用 glob 模式自动列出所需的所有文件:

---
configs:
- config_name: default
data_files:
- split: train
path: "data/*.csv"
- split: test
path: "holdout/*.csv"
---
注意

请注意,即使你只有一个子集,config_name 字段也是必需的。

多个子集

你的数据集可能有几个数据子集,你希望能够单独使用它们。 例如,每个子集在 Hugging Face Hub 的数据集查看器中都有自己的下拉菜单。

在这种情况下,你可以在 YAML 的 configs 字段内定义子集列表:

my_dataset_repository/
├── README.md
├── main_data.csv
└── additional_data.csv
---
configs:
- config_name: main_data
data_files: "main_data.csv"
- config_name: additional_data
data_files: "additional_data.csv"
---

请注意,查看器中显示的子集顺序首先是默认的,然后是字母顺序。

提示

你可以使用 default: true 设置默认子集

- config_name: main_data
data_files: "main_data.csv"
default: true

这对于设置数据集查看器首先显示哪个子集,以及数据库默认加载哪个子集很有用。

构建器参数

不仅 data_files,其他构建器特定参数也可以通过 YAML 传递,从而在如何加载数据方面提供更大的灵活性,而无需任何自定义代码。例如,定义在哪个子集中使用哪个分隔符来加载 csv 文件:

---
configs:
- config_name: tab
data_files: "main_data.csv"
sep: "\t"
- config_name: comma
data_files: "additional_data.csv"
sep: ","
---

请参阅特定构建器的文档以查看它们有哪些参数。