# Descarga de conjuntos de datos

## Bibliotecas integradas

Si un conjunto de datos en el Hub está vinculado a una [biblioteca compatible](./datasets-libraries), la carga del conjunto de datos se puede realizar en solo unas pocas líneas. Para obtener información sobre cómo acceder al conjunto de datos, puedes hacer clic en el botón "Usar este conjunto de datos" en la página del conjunto de datos para ver cómo hacerlo. Por ejemplo, [`samsum`](https://huggingface.co/datasets/knkarthick/samsum?library=datasets) muestra cómo hacerlo con `datasets` a continuación.

## Uso de la biblioteca de cliente de Hugging Face

Puede usar la biblioteca [`huggingface_hub`](/docs/huggingface_hub) para crear, eliminar, actualizar y obtener información de repositorios. Por ejemplo, para descargar el conjunto de datos `HuggingFaceH4/ultrachat_200k` desde la línea de comandos, ejecute

```bash
hf download HuggingFaceH4/ultrachat_200k --repo-type dataset
```

Consulte la [documentación de descarga de HF CLI](https://huggingface.co/docs/huggingface_hub/en/guides/cli#download-a-dataset-a-space-or-a-kernel) para obtener más información.

También puedes integrarlo en tu propia biblioteca. Por ejemplo, puedes cargar rápidamente un conjunto de datos CSV con unas pocas líneas usando Pandas.
```py
from huggingface_hub import hf_hub_download
import pandas as pd

REPO_ID = "YOUR_REPO_ID"
FILENAME = "data.csv"

dataset = pd.read_csv(
    hf_hub_download(repo_id=REPO_ID, filename=FILENAME, repo_type="dataset")
)
```

## Uso de Git

Dado que todos los conjuntos de datos en el Hub son repositorios Git respaldados por Xet, puedes clonar los conjuntos de datos localmente [instalando git-xet](./xet/using-xet-storage#git-xet) y ejecutando:

```bash
git xet install
git lfs install
git clone git@hf.co:datasets/<dataset ID> # example: git clone git@hf.co:datasets/allenai/c4
```

Si tienes acceso de escritura al repositorio de datos en particular, también podrás enviar y publicar revisiones del conjunto de datos.

Agrega tu clave pública SSH a [tu configuración de usuario](https://huggingface.co/settings/keys) para enviar cambios y/o acceder a repositorios privados.

## Descargas más rápidas

Puedes probar tu velocidad de descarga desde el CDN de Hugging Face en [fast.hf.co](https://fast.hf.co). Esto ejecuta una prueba rápida de ancho de banda contra el servidor de borde de HF más cercano, lo que te ayuda a entender tu throughput de referencia. También puedes medir la velocidad de descarga desde la terminal usando la extensión de CLI [`hf-speedtest`](https://github.com/julien-c/hf-speedtest):

```bash
hf extensions install julien-c/hf-speedtest
hf speedtest
```

Para transferencias más rápidas, el Hub utiliza el [backend de almacenamiento Xet](https://huggingface.co/docs/hub/en/xet/index) con concurrencia adaptativa que ajusta automáticamente los flujos paralelos en función de las condiciones de la red. Consulte [Descargas más rápidas para modelos](./models-downloading#faster-downloads) para obtener detalles sobre opciones de ajuste como `HF_XET_HIGH_PERFORMANCE=1`.

## Usando hf-mount

Para conjuntos de datos grandes, puedes montar un repositorio como un sistema de archivos local con [hf-mount](https://github.com/huggingface/hf-mount) en lugar de descargar el repositorio completo. Los archivos se obtienen de forma perezosa: solo los bytes que tu código lee pasan por la red. Útil cuando tu flujo de trabajo espera rutas de archivos locales (p. ej. `tarfile`, `zipfile`, `imagefolder`) en lugar de iteradores de Python.

```bash
brew install hf-mount
hf-mount start repo datasets/stanfordnlp/imdb /tmp/imdb
```

Los repos se montan solo de lectura. Consulte [Montaje como un sistema de archivos local](./storage-buckets-access#mount-as-a-local-filesystem) para obtener detalles completos de la configuración, opciones de backend y caché.

## Descarga a través de un proxy o cortafuegos

Si su red restringe el tráfico saliente mediante un firewall o un proxy, la descarga de conjuntos de datos requiere más que `huggingface.co`. El contenido de los archivos se sirve desde nombres de host de almacenamiento y CDN separados, y `load_dataset` / `hf download` fallarán si estos no son accesibles, incluso cuando `huggingface.co` esté en la lista de permitidos.

Permita los siguientes nombres de host (todos a través de HTTPS / puerto 443):

| Nombre de host                     | Propósito                                     |
|------------------------------|---------------------------------------------|
| `huggingface.co`             | Hub API, metadatos y redirecciones de descarga   |
| `cas-server.xethub.hf.co`    | APIs del protocolo Xet, descarga y carga (EE. UU.) |
| `cas-server.xethub-eu.hf.co` | APIs del protocolo Xet, descarga y carga (UE) |
| `transfer.xethub.hf.co`      | APIs de descarga de almacenamiento Xet (EE. UU.)              |
| `transfer.xethub-eu.hf.co`   | APIs de descarga de almacenamiento Xet (UE)              |
| `us.aws.cdn.hf.co`           | Borde de CDN (EE. UU.)                               |
| `us.gcp.cdn.hf.co`           | Borde de CDN (EE. UU.)                               |
| `cdn-lfs-us-1.hf.co`         | LFS CDN (EE. UU.)                                |
| `cdn-lfs-eu-1.hf.co`         | LFS CDN (UE)                                |

> [!TIP]
> Las descargas siguen las redirecciones HTTP desde `huggingface.co` hacia estos nombres de host, por lo que permitir solo `huggingface.co` no es suficiente. Un `ReadTimeoutError` (en lugar de un error de conexión) a mitad de una descarga suele indicar que la conexión inicial tuvo éxito, pero que un host de almacenamiento o CDN está bloqueado.

> [!TIP]
> El comportamiento de los comodines depende de cómo su proxy coincide con los dominios. Muchos proxies empresariales tratan una entrada en la lista de permitidos como una coincidencia de sufijo que cubre subdominios a cualquier profundidad. Si el suyo es así, la opción más sencilla es permitir los sufijos `hf.co` y `huggingface.co`: estos cubren todos los puntos finales de almacenamiento y CDN actuales y futuros.
>
> Si su proxy solo admite comodines de una sola etiqueta (donde `*.hf.co` coincide con `cdn-lfs-us-1.hf.co` pero no con el más profundo `us.aws.cdn.hf.co` o `cas-server.xethub.hf.co`), agregue a la lista de permitidos los nombres de host explícitos de la tabla anterior. Tenga en cuenta que `*.xethub.hf.co` no cubre los hosts de la UE bajo `xethub-eu.hf.co`, y que `*.cdn.hf.co` no cubre los de dos etiquetas `us.aws.cdn.hf.co` / `us.gcp.cdn.hf.co`.

> [!WARNING]
> Es posible que estos nombres de host cambien a medida que evoluciona nuestra infraestructura de almacenamiento y CDN. Si su política de seguridad lo permite, agregue los sufijos `hf.co` y `huggingface.co` (todos los subdominios) a la lista de permitidos para que sus reglas no fallen cuando cambie un punto de acceso específico.

> [!NOTE]
> Las subidas con `hf_xet` 1.8.0 o posterior también pueden dirigirse directamente a nombres de host de Amazon S3, que no están bajo `hf.co` ni `huggingface.co`. Consulte [Subida detrás de un proxy o un cortafuegos](./xet/using-xet-storage#uploading-behind-a-proxy-or-firewall).

### Lista legible por máquina

Los nombres de host anteriores también se publican como JSON en [`https://huggingface.co/.well-known/meta.json`](https://huggingface.co/.well-known/meta.json), por lo que puede generar reglas de proxy o de firewall a partir de él en lugar de copiar la tabla a mano.

> [!WARNING]
> El archivo cambia a medida que se añaden y se eliminan puntos finales. Obténlo cuando construyas tus reglas en lugar de fijar una copia.

