Zero-egress AI с SkyPilot и Hugging Face: мультиоблачные GPU без платы за трафик | AiManual
AiManual Logo Ai / Manual.
12 Июл 2026 Инструмент

Zero-egress AI: как запускать GPU на любом облаке, а данные держать на Hugging Face (и не платить за выгрузку)

Как монтировать датасеты Hugging Face через hf:// URL в SkyPilot, запускать обучение на любых облачных GPU и не платить за egress. Детали Xet dedup, примеры, ср

Эпоха, когда вы заливали 50 гигабайт датасета в S3-бакет каждого провайдера, подходит к концу. Потому что покупать GPU отдельно — это полбеды. А вот платить за выгрузку (egress) из хранилища, когда решили переехать на другой облачный склад с более дешевыми H100 — это уже за гранью добра. Встречайте конструкцию, которая взламывает эту систему: SkyPilot с монтированием Hugging Face через hf:// URL. Никакого копирования данных, никакого vendor lock-in.

Суть: вы храните датасеты и модели на Hugging Face Hub (или приватном HF хранилище), а SkyPilot монтирует их как локальную файловую систему прямо во время работы на любом облаке — AWS, GCP, Azure, Lambda, RunPod, Vast.ai. Трафик внутри HF — бесплатный, а egress между облаками — отсутствует как класс.

SkyPilot — это не очередной оркестратор. Это дирижёр серверов

SkyPilot (скачать) — опенсорсный инструмент от UC Berkeley, который умеет поднимать виртуалки с GPU где угодно. Вы пишете YAML-файл с описанием джобы, а он сам решает, какой облачный провайдер даст нужные H100/A100/L40S по минимальной цене. Поддерживаются даже экзотические площадки вроде RunPod и Vast.ai.

Но главная фишка, которая появилась в конце 2025 и дорабатывалась весь 2026 — встроенная поддержка Hugging Face Storage через специальную схему hf://. Раньше вам нужно было вручную заливать данные в бакет, настраивать облачные FSx или EFS, платить за cross-region transfer. Теперь всё это умирает.

💡
Кстати, если вы думаете, что запуск на GPU эфемерных нагрузок — это просто про обучение, почитайте наш давний сравнительный обзор Ephemeral vs Ray — там много больших размышлений о том, как не простаивают GPU.

Как работает zero-egress с hf://

Механика простая до безобразия. В конфиге SkyPilot вы указываете file_mounts с путём вида hf://datasets/username/dataset-name. При запуске джобы SkyPilot устанавливает fuse-драйвер (он же hf mount), который подключает нужный репозиторий как директорию на виртуалке.

# sky.yaml
resources:
  accelerators: A100:1
  cloud: gcp

file_mounts:
  /mnt/data:
    source: hf://datasets/bigcode/the-stack-v2
    mode: MOUNT

workdir: .

run: |
  python train.py --data_dir /mnt/data

Никаких скриптов для скачивания. Никаких tar-архивов, распаковок, чисток SSD после работы. Данные стримятся по мере доступа. Но самое вкусное — Xet dedup.

Важно: Xet — это движок дедупликации на стороне Hugging Face. Если вы запускаете одну и ту же задачу на 100 разных облаках, HF отдаёт файлы только один раз для каждого уникального блока. Последующие запуски на другом провайдере получают данные из локального кеша HF CDN — egress ноль.

На практике это означает: вы разогнали LoRA на AWS с бесплатным egress из HF, а через час решили дотренировать на более дешёвых GPU в Azure. Данные уже не нужно заново загружать — они уже есть на Edge-серверах HF, расположенных рядом с дата-центрами Azure. Экономия — не только на трафике, но и на времени (90% вместо полноценной загрузки).

Что умеет эта связка: чек-лист

  • Монтирование датасетов и моделей — read-only (но в фоне Xet кеширует записи в локальный storage на время работы).
  • Поддержка приватных репозиториев — просто передайте HF_TOKEN через secrets.
  • Автоматический выбор провайдера — SkyPilot сравнивает цены на GPU и поднимает самую дешёвую доступную инстанцию.
  • Zero egress при переключении — даже если данные не закешированы, передача идёт не из облачного бакета (где платят за гигабайт), а из HF CDN, который не взимает плату за исходящий трафик.
  • Мультиоблачная дедупликация — Xet dedup работает на уровне блоков, а не файлов. Если в датасете 90% данных одинаковые — повторная загрузка копейки.

Всё это звучит как сказка? На практике действительно так. Единственный подвод — latency при первом доступе к большому файлу может быть выше, чем с локального SSD (но никто не мешает добавить mode: COPY для маленьких датасетов, чтобы скопировать их на диск перед стартом).

Сравнение с альтернативами: таблица боли и денег

Инструмент Мультиоблачность Egress costs Монтирование HF Dedup данных
SkyPilot + HF Любые Нулевой Да (hf://) Xet
RunPod Только RunPod $0.01/GB (внешний) Ручной download Нет
Vast.ai Только Vast Бесплатный внутри платформы Через скрипты Нет
Dstack Частично (AWS, GCP) Платит облаку Нет нативного Нет
Вручную (S3 + cp) Да Высокие ($0.09/GB cross-region) Скрипты Только S3 Intelligent-Tiering

Главный конкурент — Dstack — умеет похожее (монтировать HF через fuse), но не поддерживает десятки облаков и не предлагает zero-egress на уровне протокола. RunPod и Vast.ai — рынки дешёвых GPU, но вам всё равно придётся загружать данные на их хранилище (иногда платно).

Реальный кейс: обучение LoRA на трёх облаках за один день

Допустим, вы тюните Gemma 4 31B под задачу классификации медицины. Датасет — 40 GB. Если раньше пришлось бы залить его в S3 каждого региона, то с SkyPilot вы делаете так:

  1. Кладёте датасет на HF как приватный репозиторий.
  2. Пишете YAML с hf:// монтированием.
  3. Запускаете на AWS (первые 2 часа).
  4. Замечаете, что цены на GCP упали — просто меняете cloud: gcp и запускаете снова. Данные монтируются из локального кеша HF CDN — egress zero.
  5. Вечером запускаете на Azure — та же история.

В итоге за день вы использовали 3 разных провайдера, потратив $0 на передачу данных. Если бы делали так без HF — отдали бы $3.6 за 40 GB egress с AWS (0.09/GB) × 2 раза. Мелко? А когда датасет 500 GB и запуски каждую неделю — набегает прилично.

🤖
Кстати, о Gemma 4 — мы недавно писали, как её можно запускать даже на бесплатном Kaggle, но там жёсткий лимит на диск. SkyPilot решает эту проблему элегантнее.

Неочевидный бонус: Burst-инференс с минимальной задержкой

Представьте: у вас продакшн на AWS, но для burst-нагрузок нужно срочно поднять 50 инференс-ендпоинтов. SkyPilot может запустить под это дело дешёвые GPU на Azure (или даже на RunPod), при этом модель (hf://models/mistralai/Mistral-7B-Instruct) будет смонтирована из HF. Первые запросы подождут 2-3 секунды, пока fuse разогреется, но дальше всё работает как на локальном диске. И самое главное — после снятия нагрузки вы просто удаляете кластер, не беспокоясь о чистке томов.

Это идеальное решение для тех, кто хочет повторять трюки в духе Nova AI с KServe, но не хочет тащить Kubernetes-инфраструктуру ради пары джобов.

Кому это нужно (спойлер: почти всем)

  • AI-стартапам, которые хотят не переплачивать за инженерную инфраструктуру.
  • Исследователям, которые постоянно переключаются между бесплатными/дешёвыми кластерами.
  • MLOps-инженерам, которые автоматизируют пайплайны и хотят один раз написать скрипт для всех облаков.
  • Консалтингам, которые обучают модели для клиентов на разных провайдерах.

Настройка занимает 15 минут: pip install skypilot[huggingface], sky check — и вы уже монтируете датасеты. Полная документация — на официальном сайте. Если хотите копнуть глубже — посмотрите исходники на GitHub, там много примеров под RunPod и Vast.ai.

И последнее: не думайте, что zero-egress — это только про деньги. Это про свободу. Вы перестаёте быть привязаны к одному облаку. Если AWS поднимет цены на GPU — просто переезжаете. Если в какой-то зоне доступности закончились ускорители — SkyPilot сам найдёт свободные у соседа. А данные остаются в одном месте — на Hugging Face.

Подписаться на канал