Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

手动配置

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

具有受支持结构和文件格式的数据集,在其 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: ","
---

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

< > 在 GitHub 上更新