Datasets documentation

Partager un jeu de données à l'aide de l'interface en ligne de commande

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Partager un jeu de données à l'aide de l'interface en ligne de commande

Chez Hugging Face, notre mission est de démocratiser le bon Machine Learning et nous croyons en la valeur du code open source. C’est pourquoi nous avons conçu 🤗 Datasets pour que chacun puisse partager un jeu de données avec la grande communauté du ML. Il existe actuellement des milliers de jeux de données dans plus de 100 langues sur le Hugging Face Hub, et l’équipe Hugging Face accueille toujours avec plaisir de nouvelles contributions !

Les dépôts de jeux de données offrent des fonctionnalités telles que :

  • Hébergement gratuit de jeux de données
  • Versioning des jeux de données
  • Historique des commits et diff
  • Métadonnées pour la découvrabilité
  • Cartes de jeu de données pour la documentation, la licence, les limites, etc.
  • Visualiseur de jeu de données

Ce guide vous montre comment partager un dossier ou un dépôt de jeu de données facilement accessible par n'importe qui.

Ajouter un jeu de données

Vous pouvez partager votre jeu de données avec la communauté via un dépôt de jeu de données sur le Hugging Face Hub. Il peut également s’agir d’un jeu de données privé si vous souhaitez contrôler qui y a accès.

Dans un dépôt de jeu de données, vous pouvez héberger tous vos fichiers de données et configurer votre jeu de données pour définir quel fichier correspond à quelle partition. Les formats suivants sont pris en charge : CSV, TSV, JSON, JSON lines, texte, Parquet, Arrow, SQLite, WebDataset. De nombreux types de fichiers compressés sont également pris en charge : GZ, BZ2, LZ4, LZMA ou ZSTD. Par exemple, votre jeu de données peut être composé de fichiers .json.gz.

Lors du chargement d'un jeu de données depuis le Hub, tous les fichiers au format pris en charge sont chargés, en suivant la structure du dépôt.

Pour plus d'informations sur la manière de charger un jeu de données depuis le Hub, consultez le tutoriel charger un jeu de données depuis le Hub.

Créer le dépôt

Partager un jeu de données communautaire nécessite de créer un compte sur hf.co si vous n’en avez pas encore. Vous pouvez créer directement un nouveau dépôt de jeu de données depuis votre compte sur le Hugging Face Hub, mais ce guide vous montre comment téléverser un jeu de données depuis le terminal.

  1. Assurez-vous d’être dans l’environnement virtuel où vous avez installé Datasets, puis exécutez la commande suivante :
hf auth login
  1. Connectez-vous avec vos identifiants Hugging Face Hub et créez un nouveau dépôt de jeu de données :
hf repos create my-cool-dataset --type dataset

Préfixez le nom du dépôt par une organisation pour le créer sous cette organisation :

hf repos create your-org-name/my-cool-dataset --type dataset

Préparez vos fichiers

Vérifiez votre répertoire pour vous assurer que les seuls fichiers que vous téléversez sont :

  • Les fichiers de données du jeu de données

  • La carte du jeu de données README.md

hf upload

Utilisez la commande hf upload pour téléverser des fichiers directement sur le Hub. En interne, elle utilise les mêmes fonctions d’aide upload_file et upload_folder décrites dans le Guide de téléversement. Dans les exemples ci-dessous, nous passons en revue les cas d’utilisation les plus courants. Pour obtenir la liste complète des options disponibles, vous pouvez exécuter :

>>> hf upload --help

Pour plus d'informations générales sur hf, vous pouvez consulter le guide de l'interface en ligne de commande.

Téléverser un dossier entier

L'utilisation par défaut de cette commande est la suivante :

# Usage:  hf upload [dataset_repo_id] [local_path] [path_in_repo] --repo-type dataset

Pour téléverser le répertoire courant à la racine du dépôt, utilisez :

>>> hf upload my-cool-dataset . . --repo-type dataset
https://huggingface.co/datasets/Wauplin/my-cool-dataset/tree/main/

Si le dépôt n'existe pas encore, il sera créé automatiquement.

Vous pouvez également téléverser un dossier spécifique :

>>> hf upload my-cool-dataset ./data . --repo-type dataset
https://huggingface.co/datasetsWauplin/my-cool-dataset/tree/main/

Enfin, vous pouvez téléverser un dossier vers une destination spécifique du dépôt :

>>> hf upload my-cool-dataset ./path/to/curated/data /data/train --repo-type dataset
https://huggingface.co/datasetsWauplin/my-cool-dataset/tree/main/data/train

Téléverser un fichier unique

Vous pouvez également téléverser un fichier unique en définissant local_path pour qu’il pointe vers un fichier sur votre machine. Dans ce cas, path_in_repo est facultatif et prend par défaut le nom de votre fichier local :

>>> hf upload Wauplin/my-cool-dataset ./files/train.csv --repo-type dataset
https://huggingface.co/datasetsWauplin/my-cool-dataset/blob/main/train.csv

Si vous souhaitez téléverser un fichier unique dans un répertoire spécifique, définissez path_in_repo en conséquence :

>>> hf upload Wauplin/my-cool-dataset ./files/train.csv /data/train.csv --repo-type dataset
https://huggingface.co/datasetsWauplin/my-cool-dataset/blob/main/data/train.csv

Téléverser plusieurs fichiers

Pour téléverser plusieurs fichiers d'un dossier d'un coup sans téléverser le dossier entier, utilisez les motifs --include et --exclude. Cela peut également être combiné avec l'option --delete pour supprimer les fichiers du dépôt pendant le téléversement de nouveaux fichiers. Dans l'exemple ci-dessous, nous synchronisons l'espace local en supprimant les fichiers distants et en téléversant tous les fichiers CSV :

# Sync local Space with Hub (upload new CSV files, delete removed files)
>>> hf upload Wauplin/my-cool-dataset --repo-type dataset --include="/data/*.csv" --delete="*" --commit-message="Sync local dataset with Hub"
...

Téléverser vers une organisation

Pour téléverser du contenu dans un dépôt appartenant à une organisation plutôt qu'à un dépôt personnel, vous devez le spécifier explicitement dans repo_id :

>>> hf upload MyCoolOrganization/my-cool-dataset . . --repo-type dataset
https://huggingface.co/datasetsMyCoolOrganization/my-cool-dataset/tree/main/

Téléverser vers une révision spécifique

Par défaut, les fichiers sont téléversés sur la branche main. Si vous souhaitez téléverser des fichiers sur une autre branche ou référence, utilisez l’option --revision :

# Upload files to a PR
hf upload bigcode/the-stack . . --repo-type dataset --revision refs/pr/104
...

Remarque : si revision n'existe pas et que --create-pr n'est pas défini, une branche sera créée automatiquement à partir de la branche main.

Téléverser et créer une PR

Si vous n’avez pas la permission de pousser vers un dépôt, vous devez ouvrir une PR et informer les auteurs des modifications que vous souhaitez apporter. Cela peut se faire en définissant l’option --create-pr :

# Create a PR and upload the files to it
>>> hf upload bigcode/the-stack --repo-type dataset --revision refs/pr/104 --create-pr . .
https://huggingface.co/datasets/bigcode/the-stack/blob/refs%2Fpr%2F104/

Téléverser à intervalles réguliers

Dans certains cas, vous pouvez vouloir pousser des mises à jour régulières vers un dépôt. Par exemple, cela est utile si votre jeu de données augmente au fil du temps et que vous souhaitez téléverser le dossier de données toutes les 10 minutes. Vous pouvez le faire en utilisant l'option --every :

# Upload new logs every 10 minutes
hf upload my-cool-dynamic-dataset data/ --every=10

Spécifier un message de commit

Utilisez --commit-message et --commit-description pour définir un message et une description personnalisés pour votre commit au lieu des valeurs par défaut

>>> hf upload Wauplin/my-cool-dataset ./data . --repo-type dataset --commit-message="Version 2" --commit-description="Train size: 4321. Check Dataset Viewer for more details."
...
https://huggingface.co/datasetsWauplin/my-cool-dataset/tree/main

Spécifier un jeton

Pour téléverser des fichiers, vous devez utiliser un jeton. Par défaut, le jeton enregistré localement (à l’aide de hf auth login) est utilisé. Si vous souhaitez vous authentifier explicitement, utilisez l’option --token :

>>> hf upload Wauplin/my-cool-dataset ./data . --repo-type dataset --token=hf_****
...
https://huggingface.co/datasetsWauplin/my-cool-data/tree/main

Mode silencieux

Par défaut, la commande hf upload est verbale. Elle affiche des détails tels que des messages d’avertissement, des informations sur les fichiers téléversés et des barres de progression. Si vous souhaitez tout cela en silence, utilisez l’option --quiet. Seule la dernière ligne (c’est-à-dire l’URL des fichiers téléversés) est affichée. Cela peut s’avérer utile si vous souhaitez transmettre la sortie à une autre commande dans un script.

>>> hf upload Wauplin/my-cool-dataset ./data . --repo-type dataset --quiet
https://huggingface.co/datasets/Wauplin/my-cool-dataset/tree/main

Profitez-en !

Félicitations, votre jeu de données a maintenant été téléversé sur le Hugging Face Hub, où n'importe qui peut le charger en une seule ligne de code ! 🥳

dataset = load_dataset("Wauplin/my-cool-dataset")

Si votre jeu de données est pris en charge, il doit également disposer d’un Dataset Viewer permettant à chacun d’explorer son contenu.

Enfin, n’oubliez pas d’enrichir la carte du jeu de données pour documenter votre jeu de données et le rendre plus facile à trouver ! Consultez le guide Créer une carte de jeu de données pour en savoir plus.

Update on GitHub