Эпоха, когда вы заливали 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. Теперь всё это умирает.
Как работает 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 вы делаете так:
- Кладёте датасет на HF как приватный репозиторий.
- Пишете YAML с
hf://монтированием. - Запускаете на AWS (первые 2 часа).
- Замечаете, что цены на GCP упали — просто меняете
cloud: gcpи запускаете снова. Данные монтируются из локального кеша HF CDN — egress zero. - Вечером запускаете на Azure — та же история.
В итоге за день вы использовали 3 разных провайдера, потратив $0 на передачу данных. Если бы делали так без HF — отдали бы $3.6 за 40 GB egress с AWS (0.09/GB) × 2 раза. Мелко? А когда датасет 500 GB и запуски каждую неделю — набегает прилично.
Неочевидный бонус: 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.