Datasets documentation

Compartir un conjunto de datos usando la CLI

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v4.8.4).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Compartir un conjunto de datos usando la CLI

En Hugging Face, nuestra misión es democratizar el buen Machine Learning y creemos en el valor del código abierto. Por eso diseñamos 🤗 Datasets para que cualquier persona pueda compartir un dataset con la comunidad de ML en general. Actualmente hay miles de datasets en más de 100 idiomas en el Hugging Face Hub, y el equipo de Hugging Face siempre da la bienvenida a nuevas contribuciones.

Los repositorios de conjuntos de datos ofrecen funciones como:

  • Alojamiento gratuito de conjuntos de datos
  • Versionado de conjuntos de datos
  • Historial de commits y diffs
  • Metadatos para la descubribilidad
  • Tarjetas de datasets para documentación, licencias, limitaciones, etc.
  • Visor de conjuntos de datos

Esta guía te mostrará cómo compartir una carpeta o un repositorio de datos que cualquiera puede acceder fácilmente.

Agregar un conjunto de datos

Puedes compartir tu conjunto de datos con la comunidad mediante un repositorio de conjuntos de datos en Hugging Face Hub. También puede ser un conjunto de datos privado si deseas controlar quién tiene acceso a él.

En un repositorio de datos, puedes alojar todos tus archivos de datos y configurar tu conjunto de datos para definir qué archivo corresponde a cada división. Los siguientes formatos son compatibles: CSV, TSV, JSON, JSON lines, texto, Parquet, Arrow, SQLite, WebDataset. También se admiten muchos tipos de archivos comprimidos: GZ, BZ2, LZ4, LZMA o ZSTD. Por ejemplo, tu conjunto de datos puede estar compuesto por archivos .json.gz.

Al cargar un conjunto de datos desde el Hub, se cargan todos los archivos en los formatos compatibles, siguiendo la estructura del repositorio.

Para obtener más información sobre cómo cargar un conjunto de datos desde el Hub, consulte el tutorial cargar un conjunto de datos desde el Hub.

Crear el repositorio

Compartir un conjunto de datos de la comunidad requerirá que crees una cuenta en hf.co si aún no tienes una. Puedes crear directamente un nuevo repositorio de conjunto de datos desde tu cuenta en el Hugging Face Hub, pero esta guía te mostrará cómo subir un conjunto de datos desde la terminal.

  1. Asegúrate de que te encuentres en el entorno virtual donde instalaste Datasets y ejecuta el siguiente comando:
hf auth login
  1. Inicia sesión con tus credenciales de Hugging Face Hub y crea un nuevo repositorio de datos:
hf repos create my-cool-dataset --type dataset

Prefija el nombre del repositorio con una organización para crearlo bajo esa organización:

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

Prepara tus archivos

Comprueba tu directorio para asegurarte de que los únicos archivos que estás subiendo son:

  • Los archivos de datos del conjunto de datos

  • La tarjeta del conjunto de datos README.md

hf upload

Use el comando hf upload para subir archivos directamente al Hub. Internamente, utiliza los mismos helpers upload_file y upload_folder descritos en la Guía de subida. En los ejemplos a continuación, repasaremos los casos de uso más comunes. Para obtener la lista completa de opciones disponibles, puede ejecutar:

>>> hf upload --help

Para obtener información más general sobre hf, puedes consultar la guía de la CLI.

Subir una carpeta completa

El uso predeterminado de este comando es:

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

Para subir el directorio actual en la raíz del repositorio, use:

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

Si el repositorio aún no existe, se creará automáticamente.

También puedes subir una carpeta específica:

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

Por último, puedes subir una carpeta a un destino específico en el repositorio:

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

Subir un solo archivo

También puedes subir un archivo individual configurando local_path para que apunte a un archivo en tu máquina. En ese caso, path_in_repo es opcional y se establecerá de forma predeterminada con el nombre de tu archivo 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 deseas subir un solo archivo a un directorio específico, configura path_in_repo en consecuencia:

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

Subir varios archivos

Para subir varios archivos de una carpeta a la vez sin subir la carpeta completa, utiliza los patrones --include y --exclude. También se puede combinar con la opción --delete para eliminar archivos del repositorio mientras se suben nuevos. En el ejemplo siguiente, sincronizamos el Space local eliminando los archivos remotos y subiendo todos los archivos 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"
...

Subir a una organización

Para subir contenido a un repositorio propiedad de una organización en lugar de un repositorio personal, debes especificarlo explícitamente en repo_id:

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

Subir a una revisión específica

Por defecto, los archivos se suben a la rama main. Si desea subir archivos a otra rama o referencia, use la opción --revision:

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

Nota: si revision no existe y --create-pr no está configurado, se creará automáticamente una rama a partir de la rama main.

Subir y crear una PR

Si no tienes permiso para enviar cambios a un repositorio, debes abrir un PR y comunicar a los autores los cambios que deseas realizar. Esto se puede hacer configurando la opción --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/

Subir a intervalos regulares

En algunos casos, es posible que desee enviar actualizaciones periódicas a un repositorio. Por ejemplo, esto es útil si su conjunto de datos está creciendo con el tiempo y desea cargar la carpeta de datos cada 10 minutos. Puede hacer esto usando la opción --every:

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

Especificar un mensaje de commit

Usa --commit-message y --commit-description para establecer un mensaje y una descripción personalizados para tu commit en lugar de los predeterminados

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

Especificar un token

Para subir archivos, debe usar un token. De forma predeterminada, se utilizará el token guardado localmente (mediante hf auth login). Si desea autenticarse de forma explícita, use la opción --token:

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

Modo silencioso

Por defecto, el comando hf upload es detallado. Imprime información como mensajes de advertencia, detalles sobre los archivos subidos y barras de progreso. Si deseas silenciar todo esto, usa la opción --quiet. Solo se imprime la última línea (es decir, la URL de los archivos subidos). Esto puede resultar útil si deseas pasar la salida a otro comando en un script.

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

¡Disfrútalo!

¡Felicidades, tu conjunto de datos se ha subido al Hugging Face Hub, donde cualquiera puede cargarlo con una sola línea de código! 🥳

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

Si tu conjunto de datos es compatible, también debería tener un Dataset Viewer para que todos puedan explorar el contenido del conjunto de datos.

Por último, no olvides enriquecer la tarjeta del conjunto de datos para documentarlo y hacerlo más fácil de encontrar. Consulta la guía Create a dataset card para obtener más información.

Update on GitHub