Перейти к содержимому
autopilot
AI. ПРАКТИКА.
ПОНЯТНЫЙ КОНТЕКСТ.
Оставить заявку ↗

В чём разница между modal serve и modal deploy

Чем отличаются modal serve и modal deploy: временный адрес для отладки, постоянное развёртывание, хранение моделей и проверка ComfyUI API.

Короткий ответ. modal serve запускает приложение Modal в режиме разработки: при изменении кода оно обновляется, а веб-адрес имеет суффикс -dev. modal deploy создаёт постоянное развёртывание, которое продолжает работать после закрытия локального терминала. Для первого теста ComfyUI-сервиса выбирайте serve, для устойчивой точки доступа — deploy. Оба режима описаны в документации Modal о развёртываниях.

Что происходит при modal serve

Команда modal serve app.py полезна, когда вы ещё меняете Python-код, зависимости или веб-обработчик. Modal поднимает временное приложение и следит за изменениями файлов. Веб-функция получает адрес для разработки; документация Modal отмечает суффикс -dev. Этот режим рассчитан на итерации: поправили код, сохранили, проверили ответ снова. Для постоянной публичной ссылки такой адрес не подходит. См. справочник команды serve.

Не путайте время жизни временного приложения со временем жизни отдельного контейнера. Даже во время работы serve платформа может запускать и останавливать контейнеры по нагрузке. Локальная папка контейнера не предназначена для хранения моделей или результатов между запусками. Если нужны постоянные файлы, используйте предусмотренное Modal хранилище и явно подключайте его к функции.

Что меняет modal deploy

modal deploy app.py сохраняет приложение в рабочем пространстве Modal. Веб-функции продолжают быть доступны, когда вы закрыли ноутбук или терминал; запланированные функции остаются настроенными. Новая версия кода обновляет существующее развёртывание. Это удобно для сервиса, которым пользуется команда, либо для автоматической отправки задач в ComfyUI через API. Подробности: справочник deploy и управление развёртываниями.

Постоянное развёртывание не означает, что GPU занята и оплачивается каждую минуту. Модель оплаты зависит от запущенных функций, ресурсов и настроек. С другой стороны, дополнительные ресурсы, например постоянный том, могут иметь отдельные условия. Перед запуском долгого сервиса проверьте текущие тарифы в своём аккаунте Modal и расчёт для вашего сценария.

Как выбрать режим для ComfyUI

Задача Подходящий режим Проверка
Отладка Python-обёртки и API serve Меняется ли ответ после сохранения файла
Демо с временным URL serve Работает ли обработчик и хватает ли GPU
Постоянный endpoint для команды deploy Доступ после закрытия терминала
Пакетная задача без веб-сервиса Часто run Сохранились ли результаты в постоянном хранилище

Сначала запустите самый маленький тест: endpoint, который отвечает без загрузки тяжёлой модели. Затем добавьте модель, измерьте время холодного старта и проверьте, где кэшируются веса. Для ComfyUI особенно важно отделить файлы приложения от весов и от результатов генерации. Иначе повторный старт может заново скачивать гигабайты данных или терять output.

Безопасный порядок перехода к deploy

  1. Проверьте код через serve на одном коротком запросе.
  2. Сохраните конфигурацию зависимостей и параметры GPU в коде. Запишите, откуда загружается модель.
  3. Подключите постоянное хранилище для файлов, которые должны переживать перезапуск контейнера.
  4. Настройте доступ к endpoint. Публичный URL не должен принимать дорогостоящие задачи от любого посетителя без ограничения.
  5. Разверните через deploy, затем проверьте ответ уже по постоянному адресу и просмотр журналов.

Если после deploy вы меняете код, это новая версия приложения. Посмотрите историю развёртываний и проверьте, что новый контейнер действительно обслуживает запросы. Документация Modal описывает стратегии обновления и возможность отката. Не делайте вывод «всё готово» только по успешному завершению команды: отправьте контрольный запрос и проверьте результат. Источник: Modal Managing Deployments.

Частые ошибки

Почему ссылка с -dev перестала работать?

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

Нужно ли делать deploy для разового теста?

Обычно нет. Проверьте идею через serve или run, в зависимости от того, нужен ли веб-запрос. Постоянное развёртывание имеет смысл, когда сервисом будут пользоваться после завершения локальной сессии.

По этой теме

Все материалы ↗