Запустить сервер vLLM на HF Jobs одной командой

Hugging Face Jobs, это elastic-вычисления на инфраструктуре HF, управляемые через Docker. Статья показывает, как запустить vLLM (оптимизированный сервер для LLM inference) в минималистичном setup: одна команда hf jobs run, указать GPU-flavor (например, a10g-large), expose порт 8000, и vLLM начнёт обслуживать OpenAI-API совместимые запросы. Авторизация, через HF token как Bearer token, что автоматически ограничивает доступ на уровне инфраструктуры. Биллинг, per-second, так что вы платите только за время работы. Для больших моделей (122B Qwen3.5) можно масштабировать на несколько GPU с --tensor-parallel-size и подобрать мощнее железо (H200). Сервер можно query-ить из curl, Python (OpenAI SDK), или поднять Gradio UI локально для интерактивного чата. Для отладки есть SSH доступ в контейнер. Сравнение: HF Jobs годится для экспериментов и ad-hoc tasks (максимум гибкости, платишь за каждую секунду); Inference Endpoints, для production с фиксированными endpoints, фиксированной ценой и auto-scale-to-zero.
Ключевые факты
- Запуск: одна команда
hf jobs run --flavor <gpu> --expose 8000 --timeout 2h vllm/vllm-openai:latest vllm serve <model>, готовое OpenAI API - Авторизация: HF token как Bearer token; гейт встроен на уровне proxy, доступ ограничен вашим namespace без отдельной конфигурации
- Масштабирование: для 122B моделей, два H200 с
--tensor-parallel-size 2, кастомные флаги контекста (--max-model-len,--max-num-seqs) от архитектуры модели - Интеграция: curl/Python + OpenAI SDK, локальный Gradio UI, SSH доступ для отладки, поддержка tool-calling для агентов
- Биллинг: per-second платёж (a10g-large ~$1.50/час); stop-before-timeout, первый способ сэкономить; auto-timeout, safety net
Почему это важно
Разработчик часто сталкивается с задачей быстро развернуть LLM для прототипа, eval-а или batch-экспорта без DevOps-overhead. Managed Inference Endpoints дорогие и привязаны к одному сервису; AWS/GCP GPU-машины требуют вручную настраивать Docker, сети и проксирование. HF Jobs предлагает sweet spot: вся инфраструктура уже есть, вы пишете одну command-line и платите only за usage, как за функцию в serverless. Это снижает entry barrier для экспериментов с новыми моделями и инженерных тестов в CI/CD.
Кому это важно
Разработчики, исследователи, инженеры ML, которые кратко нужно протестировать модель без long-lived production setup. Полезно в исследованиях (paper evaluation), разработке (dev environment для отладки), и batch-обработках (генерация датасета разово). Если вам нужен production endpoint 24/7, это не для вас, туда подойдёт Inference Endpoints или собственное железо.
Как это применить
Перед первым запуском: подтвердить платёжный метод в HF (или prepaid credit); установить huggingface_hub >= 1.20.0 (pip install -U 'huggingface_hub>=1.20.0'); авторизоваться (hf auth login). Базовый запуск: hf jobs run --flavor a10g-large --expose 8000 --timeout 2h vllm/vllm-openai:latest vllm serve Qwen/Qwen3-4B --host 0.0.0.0 --port 8000. Сервер раскажет URL-endpoint в стиле https://<job_id>--8000.hf.jobs. Запрашивать: curl https://<job_id>--8000.hf.jobs/v1/chat/completions -H "Authorization: Bearer $(hf auth token)" -H "Content-Type: application/json" -d '{...}'. Для больших моделей добавить --tensor-parallel-size 2 и подобрать кастомные флаги контекста из документации модели. Когда готово, hf jobs cancel <job_id>, чтобы остановить биллинг.
Можно ли доверять
Источник, официальный Hugging Face blog, авторский голос инженеров HF, работающих над vLLM и Jobs. Команды и флаги соответствуют публичным документам huggingface_hub. Сказанное про биллинг (per-second, цены за flavors), публичная информация на HF. Про авторизацию и гейтинг, архитектурные решения HF proxy. Информация актуальна на момент публикации (возможны обновления в huggingface_hub и vllm).
Риски и подводные камни
- Биллинг per-second; забыть
hf jobs cancel, деньги текут. Timeout помогает, но явное отключение надежнее. 2. Для тяжелых моделей важно подобрать--max-model-lenи--max-num-seqsточно, иначе OOM on startup. 3. SSH и логи требуют huggingface_hub >= 1.20.0, на старых версиях не работает. 4. HF token в curl, пересылать осторожно, не хранить в plaintext скриптах; используйте переменные окружения или ~/.huggingface/token. 5. Endpoint гейтится автоматически (за token), но URL, это не secret; не делитесь ей публично, если не хотите, чтобы кто-то попробовал запросить ресурсы от вашего prepaid balance (хотя токен всё равно потребуется).