Главное за минуту
- Начните с небольшой instruct-модели и одного GPU.
- Проверяйте endpoint локально через SSH tunnel до публикации.
Что подготовить
Сначала зафиксируйте модель GPU, объём VRAM, регион, тип тарифа и полный бюджет. Цена GPU-часа не включает автоматически диск, исходящий трафик, публичный IPv4 и поддержку.
- Нужны аккаунт провайдера, SSH-ключ, лимит бюджета и компьютер с терминалом.
- Выберите 8B instruct-модель с подходящей лицензией.
Пошаговый запуск
- В поиске выберите 1 GPU с достаточной VRAM, свежей доступностью и понятной node-hour ценой.
- Создайте инстанс, войдите по SSH и запустите vLLM на localhost.
- Создайте SSH tunnel и отправьте запрос curl на локальный порт.
- Сохраните только нужные файлы, удалите инстанс и проверьте биллинг.
ssh -L 8000:127.0.0.1:8000 user@HOST
curl http://127.0.0.1:8000/v1/modelsПроверка результата
- Ответ содержит корректный JSON и request завершился без OOM.
- После удаления панели не показывает активный compute.
Ошибки, стоимость и безопасный откат
Не считайте неизвестные компоненты бесплатными. До удаления инстанса сохраните нужные артефакты, затем проверьте в панели провайдера, что остановлены вычисления и удалены ненужные диски и IP.
- Не выбирайте модель только по числу параметров: лицензия и память так же важны.
- Не привязывайте сервис к 0.0.0.0, пока не настроена защита.
Граница задачи и критерий успеха
До аренды сформулируйте, что именно должно завершиться в сценарии «Инференс в облаке с нуля: первый ответ модели за 30 минут»: один проверочный запрос, пакет данных, обучение до контрольной метрики или стабильный сервис под нагрузкой. Укажите входные данные, допустимое время выполнения, требования к региону и максимальный бюджет. Без этой границы легко оптимизировать цену GPU-часа и одновременно получить более дорогой итог из-за повторов, простоя, медленного диска или передачи данных.
Зафиксируйте baseline на локальной машине или известном инстансе: версию модели, precision, batch size, размер контекста, число обработанных единиц, latency p50/p95, throughput, пиковую VRAM и итоговую стоимость. Сравнивать нужно одинаковые задачи, а не рекламные TFLOPS. Если baseline отсутствует, сначала выполните короткий ограниченный прогон; он дешевле, чем миграция production-нагрузки на несовместимую конфигурацию.
Совместимость и план данных
Проверьте не только название GPU, но и архитектуру, объём VRAM на ускоритель, число ускорителей, наличие нужного interconnect, версию драйвера и поддерживаемые CUDA/ROCm runtime. Для контейнера сохраните digest образа, а для Python — lock-файл зависимостей. Unknown в карточке предложения означает необходимость проверки у провайдера, а не подходящее значение по умолчанию.
До запуска решите, где будут находиться веса, датасет, checkpoints, логи и готовые артефакты. Эфемерный диск удобен для кэша, но не является резервной копией. Оцените время первичной загрузки и повторный egress, задайте контрольные суммы для крупных файлов и не копируйте секреты внутрь образа. При удалении инстанса отдельно проверьте оставшиеся volumes, snapshots и публичные IP.
Эксплуатационный runbook
Фаза 1 — подготовка. 1) Нужны аккаунт провайдера, SSH-ключ, лимит бюджета и компьютер с терминалом. 2) Выберите 8B instruct-модель с подходящей лицензией. До аренды назначьте владельца запуска, подтвердите бюджет и сохраните ссылку на проверенное предложение. Зафиксируйте локальные версии клиента и ожидаемую конфигурацию узла. Секреты создайте отдельно для эксперимента и ограничьте минимальными правами. Подготовка завершена, когда другой инженер может по записи понять исходные данные, ограничения и условие остановки, не обращаясь к автору runbook.
Фаза 2 — выполнение. 1) В поиске выберите 1 GPU с достаточной VRAM, свежей доступностью и понятной node-hour ценой. 2) Создайте инстанс, войдите по SSH и запустите vLLM на localhost. 3) Создайте SSH tunnel и отправьте запрос curl на локальный порт. 4) Сохраните только нужные файлы, удалите инстанс и проверьте биллинг. Выполняйте шаги последовательно и сохраняйте безопасный вывод после каждого изменения. Не изменяйте одновременно образ, версию runtime и форму входных данных: иначе источник ошибки нельзя будет определить. Долгие операции запускайте в управляемой сессии, добавьте timeout и проверьте свободный диск до загрузки весов. Повторный запуск должен либо безопасно продолжить работу, либо явно потребовать очистку временного состояния.
Фаза 3 — приёмка. 1) Ответ содержит корректный JSON и request завершился без OOM. 2) После удаления панели не показывает активный compute. Для каждой проверки заранее укажите ожидаемый диапазон, а не только «работает». Сохраните время, конфигурацию, latency, throughput, пиковую память и число ошибок. Выполните негативный тест: неверный токен, превышение лимита или недоступный файл должны приводить к контролируемому отказу без раскрытия секрета. Приёмка заканчивается сравнением с исходным baseline и решением продолжить, изменить конфигурацию или откатиться.
Фаза 4 — риски и откат. 1) Не выбирайте модель только по числу параметров: лицензия и память так же важны. 2) Не привязывайте сервис к 0.0.0.0, пока не настроена защита. Превратите каждое ограничение в наблюдаемый сигнал и конкретное действие: остановить новый трафик, сохранить checkpoint, вернуть прежний образ или удалить ресурс. Откат проверяется до production, пока цена ошибки мала. После задачи выгрузите артефакты, проверьте контрольные суммы, отзовите credentials и отдельно удалите compute, volumes, snapshots и IP. Финальный счёт сверяйте после завершения биллингового окна.
Полная стоимость и наблюдаемость
Считайте compute по фактическому времени биллинга и области цены: node-hour нельзя незаметно сравнивать с accelerator-hour. Затем добавьте постоянные и временные диски, snapshots, исходящий трафик, публичный адрес, поддержку, простой при загрузке модели и неуспешные прогоны. Неизвестный компонент оставляйте неизвестным и показывайте диапазон, а не подставляйте ноль. Для оптимизации используйте стоимость завершённой задачи, токена, изображения или эпохи.
Минимальная телеметрия включает загрузку и память GPU, температуру и throttling, CPU/RAM, чтение и запись диска, сеть, очередь запросов, latency, ошибки и число завершённых единиц. Привяжите метрики к версии модели и конфигурации. Один быстрый benchmark не подтверждает устойчивую производительность: выполните прогрев, ограниченный нагрузочный тест и проверку после нескольких циклов checkpoint или выгрузки результатов.
Безопасность, остановка и доказательство результата
Используйте отдельные короткоживущие credentials с минимальными правами, закрывайте управляющие интерфейсы сетью или VPN и не публикуйте Jupyter, ComfyUI, inference endpoint или метрики без аутентификации и TLS. Секреты передавайте через предназначенный механизм провайдера, регулярно ротируйте их и удаляйте после задачи. Marketplace-host рассматривайте как внешнюю среду: не размещайте там данные, для которых не определены шифрование, удаление и допустимая юрисдикция.
Работа завершена только после сохранения артефактов, проверки контрольных сумм, фиксации метрик и удаления оплачиваемых ресурсов. Снимок панели биллинга и итоговый run report должны показывать время запуска и остановки, конфигурацию, успешность, известные затраты и оставшиеся неизвестные. Для production добавьте владельца, срок действия исключений и понятный rollback. Если провайдер не подтверждает удаление или итоговую цену, сохраните это как открытый риск.
Разбор терминов для первого запуска
Инстанс в сценарии «Инференс в облаке с нуля: первый ответ модели за 30 минут» — это арендуемая виртуальная или выделенная машина. Образ задаёт начальную ОС и набор драйверов, volume хранит данные отдельно от вычислительной машины, а endpoint принимает запросы приложения. GPU выполняет параллельные вычисления модели, но CPU готовит данные, RAM хранит процесс и кэш, диск загружает веса, а сеть передаёт входы и результаты. Узкое место может находиться в любом из этих компонентов.
VRAM — память непосредственно на GPU. В ней должны помещаться веса модели, KV-cache, активации и служебные буферы. Одинаковое название модели не гарантирует одинаковую потребность: precision, context length, batch size и runtime меняют расход памяти. Ошибка out of memory не всегда требует более дорогую GPU — сначала уменьшите batch или контекст, включите поддерживаемую квантизацию и повторите ограниченный тест качества.
SSH — защищённый канал администрирования, а не способ передать пароль провайдеру. Создайте отдельную пару ключей, приватный ключ оставьте на своём устройстве, публичный добавьте в панель. При первом подключении сверяйте адрес и fingerprint. Если веб-интерфейс нужен с ноутбука, безопаснее сделать туннель или поставить аутентифицированный reverse proxy, чем открывать служебный порт всему интернету.
Контейнер фиксирует приложение и зависимости, но использует драйвер хоста. Поэтому рабочий образ на одной машине может не стартовать на другой с несовместимым драйвером. Запишите digest образа, версию NVIDIA Container Toolkit или эквивалента и команду health check. Данные, ключи и настройки окружения не запекайте в образ: они должны подключаться отдельно и иметь собственный жизненный цикл.
Первый запрос почти всегда медленнее из-за загрузки весов и компиляции kernels. Отделяйте cold start от стабильной latency: выполните несколько прогревочных запросов, затем одинаковую небольшую серию. Записывайте p50 и p95, число ошибок и память. После проверки остановите сервис и убедитесь, что счётчик запросов больше не меняется, прежде чем удалять вычислительный ресурс.
Если шаг не получился, не повторяйте создание новых инстансов вслепую. Сначала сохраните точный текст безопасной ошибки без токенов, проверьте статус ресурса, свободный диск, доступность GPU, логи контейнера и совместимость версий. Сформулируйте один проверяемый вариант причины и измените только один параметр. Такой цикл быстрее и дешевле случайного перебора конфигураций.
Публичный IP и открытый порт делают сервис доступным из интернета, но не добавляют аутентификацию автоматически. Для первого опыта оставьте endpoint на localhost и подключайтесь через SSH tunnel. Если сервис должен принимать внешний трафик, поставьте TLS, проверку токена, ограничение скорости и журнал доступа перед открытием порта. Никогда не используйте секрет из примера документации и не вставляйте настоящий ключ в команду, которая попадёт в историю терминала или скриншот.
Счёт провайдера обычно продолжает расти, пока существует оплачиваемый ресурс, даже если модель не обрабатывает запросы. Остановка процесса, выключение виртуальной машины и удаление инстанса могут иметь разные последствия для billing. Прочитайте правило конкретного провайдера, затем после эксперимента проверьте compute, disk, snapshot и IP по отдельности. Поставьте бюджетное уведомление заранее: оно не остановит расход само, но даст время заметить забытый ресурс.
Для первого запуска выбирайте не самую большую модель, а ту, которая помещается на одной GPU с запасом памяти и имеет понятную лицензию и документацию. Небольшая instruct-модель быстрее загружается, дешевле прогревается и позволяет проверить всю цепочку от сети до ответа. После успешного smoke test заменяйте только один компонент за раз: модель, precision, размер контекста или GPU. Так вы увидите, какое изменение действительно повлияло на качество, скорость и цену.
Составьте короткий лист дежурных действий даже для учебного сервиса: как проверить health, где посмотреть логи, как остановить новые запросы, как сохранить результат и как удалить ресурс. Укажите максимальное время ожидания загрузки и ответа. Если интерфейс показывает бесконечный progress, это не причина ждать бесконечно — проверьте логи и лимиты. Понятная процедура остановки особенно важна новичку: она предотвращает рост счёта, когда эксперимент уже перестал приносить информацию.
Карточка предложения — это снимок, а не обещание бронирования. Перед оплатой откройте первоисточник, повторно проверьте модель GPU, регион, количество ускорителей, тариф, прерываемость и время обновления. Цена за GPU-hour показывает стоимость одного ускорителя, а node-hour — всего узла; для нескольких GPU эти значения могут различаться в несколько раз. Если storage или egress неизвестны, оставьте запас бюджета и не считайте их бесплатными. Сохраните выбранные условия рядом с журналом запуска.
Когда обращаетесь в поддержку, отправляйте идентификатор ресурса, время проблемы, безопасный фрагмент лога и уже выполненные проверки, но не пароль, приватный SSH-ключ, API token или полный файл окружения. До передачи снимка экрана проверьте терминал, адресную строку и панели браузера. После решения обновите runbook: следующему человеку нужен проверенный шаг, а не история переписки. Если ответ поддержки меняет условия тарифа или доступности, запросите ссылку на официальную документацию.
Источники и авторство
Проверено 31 июля 2026 г. — материал подготовлен редакцией, техническая проверка: Compute Research Desk.

Обложка: Computsales Visual Desk · оригинальная иллюстрация
Комментарии