Cold start — задержка, возникающая при первой загрузке модели или создании новой реплики, когда ресурсы ещё не прогреты.
Определение
Cold start — это период увеличенной задержки при первом выполнении модели или запуске новой реплики инференса. Он возникает из-за необходимости загрузить веса модели в память, инициализировать runtime, подготовить кэши и выделить GPU-ресурсы. В LLM-сервисах cold start может занимать секунды или десятки секунд, особенно при использовании больших моделей.
Проблема cold start становится критичной в системах с autoscaling, где новые реплики создаются динамически в ответ на рост нагрузки.
Как работает
Cold start включает несколько этапов, каждый из которых вносит вклад в общую задержку:
- Загрузка весов модели — перенос тензоров из хранилища (диска, сети, S3) в CPU-память и затем в GPU.
- Инициализация runtime — создание графа вычислений, подготовка CUDA-контекста, аллокация буферов.
- Компиляция графа — компиляторы вроде TensorRT или FasterTransformer могут выполнять JIT-оптимизацию.
- Прогрев слоёв — первичное выполнение модели для создания внутренних структур (кэш аллокаторов, workspace).
- Ленивая загрузка шардов — при sharded inference реплика запрашивает недостающие части параметров у других узлов.
Cold start особенно выражен в моделях объёмом десятки гигабайт: скорость диска, пропускная способность сети и медленные операции инициализации становятся узким местом.
Где применяется
- Платформы генерации текста, работающие с autoscaling.
- Мультимодальные сервисы, создающие новые реплики под нагрузку.
- API облачных провайдеров, где модели загружаются по запросу.
- Системы serverless-инференса.
- Экосистемы, где модели переключаются через hot-swap.
Практические примеры использования
В LLM-сервисах cold start возникает при создании новой GPU-реплики: autoscaler поднимает процесс, который начинает загружать веса объёмом 20–60 ГБ. Пока загрузка не завершена, реплика не может обрабатывать запросы, а latency повышается.
В serverless-платформах cold start появляется при первом обращении к модели: среда создаёт контейнер, загружает веса, прогревает модель. Чтобы снизить задержки, платформы используют заранее подготовленные прогретые контейнеры (warm pools).
В мультимодальных пайплайнах cold start может происходить из-за загрузки дополнительных моделей, например визуальной или аудиомодели, которые не всегда находятся в горячем состоянии.
При использовании Triton Inference Server cold start заметен после загрузки нового слота модели или при развёртывании новой версии через model repository.
Ключевые свойства cold start
- Высокая чувствительность к размеру модели — чем больше веса, тем сильнее задержка.
- Слабая предсказуемость — зависит от состояния диска, сети, GPU и нагрузки.
- Влияние на autoscaling — новые реплики не дают мгновенного прироста мощности.
- Неизбежность — полностью устранить cold start невозможно, его можно только уменьшить.
Проблемы и ограничения
- Увеличение latency — пользователи могут получить задержки в десятки секунд.
- Нарушение SLA — cold start создаёт пики p95/p99.
- Перерасход ресурсов — чтобы избегать cold start, приходится держать реплики прогретыми.
- Риск перегрузки — autoscaler может «не успеть» поднять мощность.
- Большие модели прогреваются дольше — особенно при многослойных Transformer-архитектурах.
Преимущества и ограничения
- Плюс: позволяет гибко масштабировать сервис без постоянного держания всех ресурсов.
- Плюс: даёт возможность экономить расходы при низкой нагрузке.
- Плюс: интегрируется с serverless-архитектурами.
- Минус: создаёт значительные задержки при запуске.
- Минус: плохо подходит для систем, где требуется мгновенный ответ.
- Минус: ограничивает эффективность autoscaling для больших моделей.
- Минус: требует сложной инфраструктуры warm pools и preloading.
Связанные термины
- Autoscaling инференса
- Model latency
- Model serving
- Prompt-level caching
- Hot-swap моделей
- Warm start
- Cold boot