Hub documentation

Использование GPU Spaces

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Использование GPU Spaces

Вы можете обновить свой Space, чтобы использовать GPU-ускоритель, с помощью кнопки Settings в верхней навигационной панели Space. Вы даже можете запросить бесплатное обновление, если создаёте крутую демонстрацию для побочного проекта!

В долгосрочной перспективе мы также планируем обеспечить поддержку не-GPU-железа, такого как HPU, IPU или TPU. Если у вас есть конкретное AI-железо, на котором вы хотели бы запускать модели, пожалуйста, сообщите нам об этом (сайт huggingface.co).

Как только ваш Space запущен на GPU, вы можете увидеть, на каком именно оборудовании он работает, прямо по этому значку:

Характеристики оборудования

В таблицах ниже представлены характеристики различных вариантов обновления.

CPU

Аппаратное обеспечениеCPUПамятьПамять GPUДискПочасовая цена
CPU Basic2 vCPU16 ГБ-50 ГББесплатно!
Обновление CPU8 vCPU32 ГБ-50 ГБ$0.03

CPU Basic не имеет почасовой стоимости, но создание нового Space, работающего на вычислительных ресурсах (Gradio или Docker), требует платного тарифа. Статические Spaces бесплатны для всех. Подробности см. в Обзоре Spaces.

GPU

Аппаратное обеспечениеCPUПамятьПамять GPUДискПочасовая цена
Nvidia T4 - малый4 vCPU15 ГБ16 ГБ50 ГБ$0.40
Nvidia T4 - средний8 vCPU30 ГБ16 ГБ100 ГБ$0.60
1x Nvidia L48 vCPU30 ГБ24 ГБ400 ГБ$0.80
4x Nvidia L448 vCPU186 ГБ96 ГБ3200 ГБ$3.80
1x Nvidia L40S8 vCPU62 ГБ48 ГБ380 ГБ$1.80
4x Nvidia L40S48 vCPU382 ГБ192 ГБ3200 ГБ$8.30
8x Nvidia L40S192 vCPU1534 ГБ384 ГБ6500 ГБ$23.50
1x Nvidia RTX PRO 600023 vCPU256 ГБ96 ГБ475 ГБ$2.75
2x Nvidia RTX PRO 600046 vCPU512 ГБ192 ГБ950 ГБ$5.50
4x Nvidia RTX PRO 600092 vCPU1024 ГБ384 ГБ1900 ГБ$11.00
8x Nvidia RTX PRO 6000184 vCPU2048 ГБ768 ГБ3800 ГБ$22.00
Nvidia A10G - малый4 vCPU15 ГБ24 ГБ110 ГБ$1.00
Nvidia A10G - большой12 vCPU46 ГБ24 ГБ200 ГБ$1.50
2x Nvidia A10G - большой24 vCPU92 ГБ48 ГБ1000 ГБ$3.00
4x Nvidia A10G - большой48 vCPU184 ГБ96 ГБ2000 ГБ$5.00
Nvidia A100 - большой12 vCPU142 ГБ80 ГБ1000 ГБ$2.50
Nvidia H100 (удалено в декабре 2025 г.)
8x Nvidia H100 (удалено в декабре 2025 г.)
4x Nvidia A10048 vCPU568 ГБ320 ГБ4000 ГБ$10.00
8x Nvidia A10096 vCPU1136 ГБ640 ГБ8000 ГБ$20.00

Настройка оборудования программно

Вы можете программно настроить аппаратное обеспечение вашего Space с помощью huggingface_hub. Это позволяет покрывать широкий спектр сценариев, в которых требуется динамически назначать GPU. Подробнее — в этом руководстве.

Требования, специфичные для фреймворка

Большинство Spaces должны работать сразу после обновления GPU, но иногда потребуется установить версии CUDA для используемых вами фреймворков машинного обучения. Пожалуйста, следуйте этому руководству, чтобы убедиться, что ваш Space использует преимущества улучшенного оборудования.

PyTorch

Вам потребуется установить версию PyTorch, совместимую со встроенными драйверами CUDA. Добавление следующих двух строк в файл requirements.txt должно сработать:

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

Вы можете убедиться в успешности установки, выполнив следующий код в вашем app.py и проверив вывод в логах вашего 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

Многие фреймворки автоматически используют GPU, если он доступен. Так работают Pipelines в 🤗 transformers, fastai и многих других. В других случаях, или если вы используете PyTorch напрямую, вам может потребоваться переместить модели и данные на GPU, чтобы вычисления выполнялись на ускорителе, а не на CPU. Для этого можно использовать синтаксис .to() в PyTorch, например:

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

JAX

Если вы используете JAX, вам нужно указать URL, содержащий пакеты, совместимые с CUDA. Добавьте следующие строки в файл requirements.txt:

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

После этого вы можете проверить установку, выведя результат выполнения следующего кода и проверив его в логах вашего 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

Установка tensorflow по умолчанию должна распознавать устройство CUDA. Просто добавьте tensorflow в файл requirements.txt и используйте следующий код в вашем app.py, чтобы проверить это в логах вашего Space.

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

Тарифы

Тарификация на Spaces основана на использовании аппаратного обеспечения и рассчитывается по минутам: вы платите за каждую минуту работы Space на запрошенном оборудовании, независимо от того, используется ли Space.

В течение жизненного цикла Space тарификация происходит только тогда, когда Space находится в состоянии Starting или Running. Это означает, что сборка не облагается платой.

Если работающее пространство начинает сбоить, оно будет автоматически приостановлено, и начисление платы прекратится.

Spaces, работающие на бесплатном оборудовании, автоматически приостанавливаются, если они не используются в течение длительного времени (например, двух дней). Spaces с улучшенным оборудованием по умолчанию работают бесконечно, даже если ими не пользуются. Вы можете изменить это поведение, установив собственное «время сна» в настройках Space. Чтобы прекратить начисление платы за ваш Space, вы можете изменить Hardware на CPU basic или приостановить его.

Дополнительную информацию о тарификации можно найти в специальном разделе для всего Hub.

Гранты сообщества на GPU

Есть у вас замечательный Space, но нужна помощь в покрытии затрат на обновление GPU-оборудования? Мы с удовольствием поддерживаем авторов инновационных Space, поэтому не стесняйтесь подать заявку на грант сообщества на GPU и проверить, попадёт ли ваш проект в число отобранных! Эта заявка находится в настройках репозитория оборудования вашего Space в левом нижнем углу, в разделе «sleep time settings»:

Community GPU Grant

Установка пользовательского времени сна

Если ваш Space работает на стандартном оборудовании cpu-basic, он перейдёт в спящий режим после простоя в течение установленного времени (на данный момент — 48 часов). Любой посетитель вашего Space автоматически запустит его заново.

Если вы хотите, чтобы ваше Space никогда не переходило в спящий режим, или если вы хотите установить собственное время сна, вам необходимо перейти на платное оборудование.

По умолчанию обновлённый Space никогда не переходит в спящий режим. Однако вы можете использовать эту настройку, чтобы ваш обновлённый Space переходил в состояние простоя (стадия stopped), когда он не используется 😴. За обновлённое оборудование вы не будете платить, пока оно находится в спящем режиме. Space «проснётся» или перезапустится, как только получит нового посетителя.

Затем в настройках оборудования вашего Spaces станет доступен следующий интерфейс:

Доступны следующие параметры:

Реплики

Вы можете масштабировать свой Space горизонтально, запросив несколько реплик. Это распределяет трафик между несколькими экземплярами вашего Space для повышения доступности и пропускной способности. Вы можете задать количество реплик через API:

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

{
  "replicas": 2
}

Реплики доступны только для обновленного (платного) оборудования. Каждая реплика тарифицируется независимо.

Потоковая передача журналов, событий и метрик

Вы можете получать в реальном времени логи, события статуса и метрики вашего Space через SSE (Server-Sent Events):

  • Журналы сборки или выполнения: GET /api/spaces/{namespace}/{repo}/logs/{build|run}
  • События статуса: GET /api/spaces/{namespace}/{repo}/events
  • Метрики: GET /api/spaces/{namespace}/{repo}/metrics

Эти конечные точки требуют аутентификации и возвращают данные с использованием протокола SSE.

Эндпоинт журналов принимает необязательный параметр запроса tail (неотрицательное целое число) для ограничения ответа последними N строками журнала:

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

Приостановка Space

Вы можете pause Space в настройках репозитория. Space в состоянии «пауза» приостановлен и не потребляет ресурсы, пока его не перезапустят вручную. Пауза или перезапуск доступны всем, у кого есть права на запись в Space. Время простоя не тарифицируется.

Update on GitHub