手动配置
本指南将向您展示如何为数据集存储库配置自定义结构。该示例数据集配套合集展示了文档的每个部分。
具有受支持结构和文件格式的数据集在其 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"
---
构建器参数
不仅 data_files
,其他特定于构建器的参数也可以通过 YAML 传递,从而在加载数据的方式上提供更大的灵活性,而无需任何自定义代码。例如,定义在哪个子集中使用哪个分隔符来加载您的 csv
文件
---
configs:
- config_name: tab
data_files: "main_data.csv"
sep: "\t"
- config_name: comma
data_files: "additional_data.csv"
sep: ","
---
请参阅特定构建器的文档以查看它们具有的参数。
您可以使用 default: true
设置默认子集
- config_name: main_data
data_files: "main_data.csv"
default: true