Hub documentation

Uso de espacios de GPU

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Uso de espacios de GPU

Puedes actualizar tu Space para usar un acelerador GPU mediante el botón Settings en la barra de navegación superior del Space. Incluso puedes solicitar una actualización gratuita si estás creando una demo interesante para un proyecto secundario.

A largo plazo, también nos gustaría exponer hardware no basado en GPU, como HPU, IPU o TPU. Si tienes un hardware de IA específico en el que te gustaría ejecutarlo, infórmalo (sitio web en huggingface.co).

En cuanto tu Space esté funcionando en GPU, puedes ver directamente en esta insignia qué hardware está utilizando:

Especificaciones de hardware

En las siguientes tablas, puede ver las especificaciones de las diferentes opciones de actualización.

CPU

HardwareCPUMemoriaMemoria de GPUDiscoPrecio por hora
Básico de CPU2 vCPU16 GB-50 GB¡Gratis!
Mejora de CPU8 vCPU32 GB-50 GB$0.03

CPU Basic no tiene un costo por hora, pero crear un nuevo Space que se ejecute en compute (Gradio o Docker) requiere un plan de pago. Los Spaces estáticos son gratuitos para todos. Consulta el Spaces Overview para más detalles.

GPU

HardwareCPUMemoriaMemoria de GPUDiscoPrecio por hora
Nvidia T4 - pequeño4 vCPU15 GB16 GB50 GB$0.40
Nvidia T4 - medio8 vCPU30 GB16 GB100 GB$0.60
1x Nvidia L48 vCPU30 GB24 GB400 GB$0.80
4x Nvidia L448 vCPU186 GB96 GB3200 GB$3.80
1x Nvidia L40S8 vCPU62 GB48 GB380 GB$1.80
4x Nvidia L40S48 vCPU382 GB192 GB3200 GB$8.30
8x Nvidia L40S192 vCPU1534 GB384 GB6500 GB$23.50
1x Nvidia RTX PRO 600023 vCPU256 GB96 GB475 GB$2.75
2x Nvidia RTX PRO 600046 vCPU512 GB192 GB950 GB$5.50
4x Nvidia RTX PRO 600092 vCPU1024 GB384 GB1900 GB$11.00
8x Nvidia RTX PRO 6000184 vCPU2048 GB768 GB3800 GB$22.00
Nvidia A10G - pequeño4 vCPU15 GB24 GB110 GB$1.00
Nvidia A10G - grande12 vCPU46 GB24 GB200 GB$1.50
2x Nvidia A10G - grande24 vCPU92 GB48 GB1000 GB$3.00
4x Nvidia A10G - grande48 vCPU184 GB96 GB2000 GB$5.00
Nvidia A100 - grande12 vCPU142 GB80 GB1000 GB$2.50
Nvidia H100 (eliminado en diciembre de 2025)
8x Nvidia H100 (eliminado en diciembre de 2025)
4x Nvidia A10048 vCPU568 GB320 GB4000 GB$10.00
8x Nvidia A10096 vCPU1136 GB640 GB8000 GB$20.00

Configurar el hardware de forma programática

Puedes configurar el hardware de tu Space de forma programática mediante huggingface_hub. Esto permite una amplia gama de casos de uso en los que necesitas asignar GPUs de manera dinámica. Consulta esta guía para más detalles.

Requisitos específicos del framework

La mayoría de los Spaces deberían funcionar sin cambios tras una actualización de GPU, pero a veces será necesario instalar las versiones CUDA de los frameworks de machine learning que utilices. Siga esta guía para asegurarse de que su Space aproveche el hardware mejorado.

PyTorch

Deberás instalar una versión de PyTorch compatible con los controladores CUDA integrados. Agregar las siguientes dos líneas a tu archivo requirements.txt debería funcionar:

--extra-index-url https://download.pytorch.org/whl/cu113
torch

Puedes verificar si la instalación fue exitosa ejecutando el siguiente código en tu app.py y revisando la salida en los registros de tu Space:

import torch
print(f"Is CUDA available: {torch.cuda.is_available()}")
# True
print(f"CUDA device: {torch.cuda.get_device_name(torch.cuda.current_device())}")
# Tesla T4

Muchos marcos de trabajo utilizan automáticamente la GPU si está disponible. Este es el caso de los Pipelines de 🤗 transformers, fastai y muchos otros. En otros casos, o si usas PyTorch directamente, es posible que necesites mover tus modelos y datos a la GPU para asegurarte de que el cálculo se realice en el acelerador y no en la CPU. Puedes usar la sintaxis .to() de PyTorch, por ejemplo:

model = load_pytorch_model()
model = model.to("cuda")

JAX

Si usas JAX, debes especificar la URL que contiene los paquetes compatibles con CUDA. Añade las siguientes líneas a tu archivo requirements.txt:

-f https://storage.googleapis.com/jax-releases/jax_cuda_releases.html
jax[cuda11_pip]
jaxlib

Después de eso, puede verificar la instalación imprimiendo la salida del siguiente código y comprobándola en los registros de su Space.

import jax

print(f"JAX devices: {jax.devices()}")
# JAX devices: [StreamExecutorGpuDevice(id=0, process_index=0)]
print(f"JAX device type: {jax.devices()[0].device_kind}")
# JAX device type: Tesla T4

TensorFlow

La instalación predeterminada de tensorflow debería reconocer el dispositivo CUDA. Solo tienes que añadir tensorflow a tu archivo requirements.txt y usar el siguiente código en tu app.py para verificarlo en los registros de tu Space.

import tensorflow as tf
print(tf.config.list_physical_devices('GPU'))
# [PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]

Facturación

La facturación en Spaces se basa en el uso de hardware y se calcula por minuto: se cobra por cada minuto que el Space se ejecuta en el hardware solicitado, independientemente de si el Space se utiliza o no.

Durante el ciclo de vida de un Space, solo se genera un cargo cuando el Space está en estado Starting o Running. Esto significa que no hay ningún coste durante la compilación.

Si un Space en ejecución comienza a fallar, se suspenderá automáticamente y se detendrá la facturación.

Los Spaces que se ejecutan en hardware gratuito se suspenden automáticamente si no se utilizan durante un período prolongado (por ejemplo, dos días). Los Spaces actualizados se ejecutan de forma indefinida por defecto, incluso si no hay uso. Puedes cambiar este comportamiento estableciendo un “tiempo de suspensión” personalizado en la configuración del Space. Para interrumpir la facturación de tu Space, puedes cambiar el Hardware a CPU básico o pausarlo.

Puede encontrar información adicional sobre la facturación en la sección dedicada a todo el Hub.

Subvenciones de GPU para la comunidad

¿Tienes un Space increíble pero necesitas ayuda para cubrir los costos de la actualización del hardware de GPU? Nos encanta ayudar a quienes tienen un Space innovador, así que no dudes en solicitar una subvención de GPU de la comunidad y ver si el tuyo cumple con los requisitos. Esta solicitud se encuentra en la configuración del repositorio de hardware de tu Space, en la esquina inferior izquierda, bajo “sleep time settings”:

Community GPU Grant

Establecer un tiempo de suspensión personalizado

Si tu Space se ejecuta en el hardware predeterminado cpu-basic, entrará en modo de suspensión si permanece inactivo durante más de un tiempo establecido (actualmente, 48 horas). Cualquier persona que visite tu Space lo reiniciará automáticamente.

Si deseas que tu Space nunca se desactive o si quieres establecer un tiempo de suspensión personalizado, necesitas actualizar a hardware de pago.

Por defecto, un Space actualizado nunca entrará en modo de suspensión. Sin embargo, puedes usar esta configuración para que tu Space actualizado quede inactivo (etapa stopped) cuando no se utilice 😴. No se te cobrará por el hardware actualizado mientras esté en modo de suspensión. El Space se “despertará” o se reiniciará cuando reciba una nueva visita.

A continuación, esta interfaz estará disponible en la configuración de hardware de tus Spaces:

Estas son las opciones disponibles:

Réplicas

Puedes escalar tu Space horizontalmente solicitando múltiples réplicas. Esto distribuye el tráfico entre varias instancias de tu Space para mejorar la disponibilidad y el rendimiento. Puedes establecer el número de réplicas a través de la API:

POST https://huggingface.co/api/spaces/{namespace}/{repo}/replicas
Content-Type: application/json

{
  "replicas": 2
}

Las réplicas solo están disponibles para hardware actualizado (de pago). Cada réplica se factura de forma independiente.

Registro de eventos, métricas y registros en streaming

Puedes transmitir en tiempo real registros, eventos de estado y métricas de tu Space mediante SSE (Server-Sent Events):

  • Registros de compilación o ejecución: GET /api/spaces/{namespace}/{repo}/logs/{build|run}
  • Eventos de estado: GET /api/spaces/{namespace}/{repo}/events
  • Métricas: GET /api/spaces/{namespace}/{repo}/metrics

Estos puntos de acceso requieren autenticación y devuelven datos usando el protocolo SSE.

El punto de acceso de registros acepta un parámetro de consulta opcional tail (entero no negativo) para limitar la respuesta a las últimas N líneas de registros:

GET /api/spaces/{namespace}/{repo}/logs/{build|run}?tail=100

Pausar un Space

Puedes pause un Space desde la configuración del repositorio. Un Space “paused” significa que el Space está en pausa y no utilizará recursos hasta que se reinicie manualmente. Cualquier persona con acceso de escritura al Space puede pausarlo o reiniciarlo. El tiempo en pausa no se factura.

Update on GitHub