Hub documentation

Usando Spaces de GPU

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Usando Spaces de GPU

Você pode fazer o upgrade do seu Space para usar um acelerador de GPU usando o botão Settings na barra de navegação superior do Space. Você pode até solicitar um upgrade gratuito se estiver construindo uma demonstração legal para um projeto paralelo!

A longo prazo, também gostaríamos de expor hardware não-GPU, como HPU, IPU ou TPU. Se você tem um hardware de IA específico em que gostaria de executar, por favor, nos avise (site em huggingface.co).

Assim que seu Space estiver em execução em GPU, você pode ver diretamente neste selo em qual hardware ele está rodando:

Especificações de Hardware

Nas tabelas a seguir, você pode ver as especificações para as diferentes opções de upgrade.

CPU

HardwareCPUMemóriaMemória de GPUDiscoPreço por hora
Básico de CPU2 vCPU16 GB-50 GBGratuito!
Atualização de CPU8 vCPU32 GB-50 GB$0.03

O plano CPU Basic não tem custo por hora, mas a criação de um novo Space que roda em compute (Gradio ou Docker) exige um plano pago. Spaces estáticos são gratuitos para todos. Consulte o Visão geral dos Spaces para mais detalhes.

GPU

HardwareCPUMemóriaMemória de GPUDiscoPreço por hora
Nvidia T4 - pequeno4 vCPU15 GB16 GB50 GB$0.40
Nvidia T4 - médio8 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 - pequeno4 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 (removido em dezembro de 2025)
8x Nvidia H100 (removido em dezembro de 2025)
4x Nvidia A10048 vCPU568 GB320 GB4000 GB$10.00
8x Nvidia A10096 vCPU1136 GB640 GB8000 GB$20.00

Configure o hardware programaticamente

Você pode configurar o hardware do seu Space programaticamente usando huggingface_hub. Isso permite uma ampla variedade de casos de uso em que é necessário atribuir GPUs dinamicamente. Confira este guia para mais detalhes.

Requisitos específicos do framework

A maioria dos Spaces deve funcionar imediatamente após uma atualização de GPU, mas às vezes você precisará instalar as versões CUDA dos frameworks de machine learning que utiliza. Siga este guia para garantir que seu Space aproveite o hardware aprimorado.

PyTorch

Você precisará instalar uma versão do PyTorch compatível com os drivers CUDA integrados. Adicionar as duas linhas a seguir ao seu arquivo requirements.txt deve funcionar:

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

Você pode verificar se a instalação foi bem-sucedida executando o código a seguir no seu app.py e verificando a saída nos logs do seu 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

Muitos frameworks usam automaticamente a GPU, se uma estiver disponível. Esse é o caso dos Pipelines no 🤗 transformers, fastai e muitos outros. Em outros casos, ou se você usar o PyTorch diretamente, pode ser necessário mover seus modelos e dados para a GPU para garantir que o cálculo seja feito no acelerador e não na CPU. Você pode usar a sintaxe .to() do PyTorch, por exemplo:

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

JAX

Se você usa JAX, precisa especificar a URL que contém os pacotes compatíveis com CUDA. Adicione as seguintes linhas ao seu arquivo requirements.txt:

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

Depois disso, você pode verificar a instalação imprimindo a saída do código a seguir e conferindo-a nos logs do seu 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

A instalação padrão do tensorflow deve reconhecer o dispositivo CUDA. Basta adicionar tensorflow ao seu arquivo requirements.txt e usar o código a seguir no seu app.py para verificar nos logs do seu Space.

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

Faturamento

A cobrança nos Spaces é baseada no uso de hardware e é calculada por minuto: você é cobrado por cada minuto que o Space roda no hardware solicitado, independentemente de o Space estar sendo utilizado.

Durante o ciclo de vida de um Space, a cobrança ocorre apenas quando o Space está Starting ou Running. Isso significa que não há custo durante a etapa de build.

Se um Space em execução começar a falhar, ele será suspenso automaticamente e a cobrança será interrompida.

Spaces executados em hardware gratuito são suspensos automaticamente se não forem usados por um período prolongado (por exemplo, dois dias). Spaces atualizados são executados indefinidamente por padrão, mesmo que não haja uso. Você pode alterar esse comportamento definindo um “tempo de suspensão” personalizado nas configurações do Space. Para interromper a cobrança do seu Space, você pode alterar o Hardware para CPU básico ou pausá-lo.

Informações adicionais sobre faturamento podem ser encontradas na seção dedicada a todo o Hub.

Concessões de GPU da Comunidade

Você tem um Space incrível, mas precisa de ajuda para cobrir os custos de upgrade do hardware de GPU? Adoramos ajudar quem tem um Space inovador, então sinta-se à vontade para se candidatar a uma doação de GPU da comunidade e veja se o seu é selecionado! Essa solicitação pode ser encontrada nas configurações do repositório de hardware do seu Space, no canto inferior esquerdo, em “sleep time settings”:

Community GPU Grant

Defina um tempo de suspensão personalizado

Se o seu Space roda no hardware padrão cpu-basic, ele entrará em modo de suspensão se ficar inativo por mais de um tempo definido (atualmente, 48 horas). Qualquer pessoa que visitar o seu Space o reiniciará automaticamente.

Se você deseja que seu Space nunca seja desativado ou se deseja definir um tempo de inatividade personalizado, é necessário fazer upgrade para hardware pago.

Por padrão, um Space atualizado nunca entra em modo de espera. No entanto, você pode usar essa configuração para que seu Space atualizado fique ocioso (estágio stopped) quando não estiver em uso 😴. Você não será cobrado pelo hardware atualizado enquanto ele estiver em modo de espera. O Space será “acordado” ou reiniciado assim que receber um novo visitante.

A seguinte interface estará disponível em seguida nas configurações de hardware do seu Spaces:

As seguintes opções estão disponíveis:

Réplicas

Você pode escalar seu Space horizontalmente solicitando múltiplas réplicas. Isso distribui o tráfego entre várias instâncias do seu Space para melhorar a disponibilidade e a taxa de transferência. Você pode definir o número de réplicas via API:

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

{
  "replicas": 2
}

As réplicas estão disponíveis apenas para hardware atualizado (pago). Cada réplica é cobrada de forma independente.

Transmissão de logs, eventos e métricas

Você pode transmitir logs em tempo real, eventos de status e métricas do seu Space via SSE (Server-Sent Events):

  • Logs de build ou execução: GET /api/spaces/{namespace}/{repo}/logs/{build|run}
  • Eventos de status: GET /api/spaces/{namespace}/{repo}/events
  • Métricas: GET /api/spaces/{namespace}/{repo}/metrics

Esses endpoints exigem autenticação e retornam dados usando o protocolo SSE.

O endpoint de logs aceita um parâmetro de consulta opcional tail (inteiro não negativo) para limitar a resposta às últimas N linhas de logs:

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

Pausando um Space

Você pode pause um Space nas configurações do repositório. Um Space “pausado” significa que o Space está em espera e não usará recursos até ser reiniciado manualmente. Qualquer pessoa com acesso de escrita ao Space pode pausá-lo ou reiniciá-lo. O tempo em pausa não é cobrado.

Update on GitHub