Hub documentation

Configuration manuelle

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Configuration manuelle

Ce guide vous montre comment configurer une structure personnalisée pour votre dépôt de jeu de données. La collection d’exemples de jeux de données présente chaque section de la documentation.

Un jeu de données doté d’une structure et de formats de fichiers pris en charge dispose automatiquement d’un Dataset Viewer sur sa page de jeu de données sur le Hub. Vous pouvez utiliser YAML pour définir les splits, les sous-ensembles et les paramètres du builder utilisés par le Viewer.

Il est également possible de définir plusieurs sous-ensembles (également appelés « configurations ») pour le même jeu de données (par exemple, si le jeu de données contient divers fichiers indépendants).

Splits

Si vous avez plusieurs fichiers et souhaitez définir dans quelle partition chaque fichier doit être placé, vous pouvez utiliser du YAML en haut de votre README.md.

Par exemple, étant donné un dépôt comme celui-ci :

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

Vous pouvez définir un sous-ensemble pour vos splits en ajoutant le champ configs dans le bloc YAML en haut de votre README.md :

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

Vous pouvez sélectionner plusieurs fichiers par split en utilisant une liste de chemins :

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"
---

Vous pouvez également utiliser des motifs glob pour lister automatiquement tous les fichiers dont vous avez besoin :

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

Notez que le champ config_name est requis même si vous n'avez qu'un seul sous-ensemble.

Sous-ensembles multiples

Votre jeu de données peut contenir plusieurs sous-ensembles de données que vous souhaitez pouvoir utiliser séparément. Par exemple, chaque sous-ensemble possède son propre menu déroulant dans le Dataset Viewer du Hugging Face Hub.

Dans ce cas, vous pouvez définir une liste de sous-ensembles dans le champ configs du fichier YAML :

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"
---

Notez que l'ordre des sous-ensembles affichés dans le visualiseur est d'abord celui par défaut, puis l'ordre alphabétique.

Vous pouvez définir un sous-ensemble par défaut en utilisant default: true

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

Cela est utile pour définir le sous-ensemble que le Dataset Viewer affiche en premier, ainsi que le sous-ensemble de données que les bibliothèques chargent par défaut.

Répertoire de données

Au lieu de lister des fichiers individuels avec data_files, vous pouvez utiliser data_dir pour pointer vers un répertoire. Les fichiers situés dans ce répertoire sont résolus automatiquement en fonction de leurs extensions. C'est particulièrement utile lorsque vos données sont organisées dans des sous-répertoires :

Par exemple, dans un cas comme celui-ci, vous pouvez simplement utiliser data_dir puisque les données de chaque sous-ensemble sont stockées dans leur propre répertoire :

my_dataset_repository/
├── README.md
├── main/
│   ├── train.csv
│   └── test.csv
└── extra/
    ├── train.csv
    └── test.csv
---
configs:
- config_name: main
  data_dir: "main"
- config_name: extra
  data_dir: "extra"
---

Lorsque data_dir est défini, le builder résout les fichiers par rapport à ce répertoire. Si le répertoire contient des fichiers correspondant au motif de nommage par défaut des splits (par ex. train.csv, test.csv), les splits sont attribués automatiquement sans avoir besoin de data_files explicites.

Vous pouvez également combiner data_dir avec data_files pour un contrôle plus fin :

---
configs:
- config_name: default
  data_dir: "data"
  data_files:
  - split: train
    path: "training_*.csv"
  - split: test
    path: "eval_*.csv"
---

Dans ce cas, les motifs path de data_files sont résolus par rapport à data_dir.

Paramètres du constructeur

Non seulement data_files, mais d'autres paramètres spécifiques au builder peuvent être passés via YAML, permettant une plus grande flexibilité sur la manière de charger les données sans nécessiter de code personnalisé. Par exemple, définissez le séparateur à utiliser dans chaque sous-ensemble pour charger vos fichiers csv :

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

Consultez la documentation des constructeurs spécifiques pour voir les paramètres dont ils disposent.

Update on GitHub