﻿# Sleep и wake в vLLM: как возвращать модель в работу без ложной готовности

Sleep mode vLLM требует отдельной процедуры возвращения модели в работу. Живой API процесс еще не означает, что восстановлены веса и выделен KV cache.

Автор: Команда Retrivium
Обновлено: 2026-11-01
Канонический URL: https://retrivium.ai/ru/journal/vllm-sleep-wake-readiness/
Language: ru

Sleep mode vLLM требует отдельной процедуры возвращения модели в работу. Живой API процесс еще не означает, что восстановлены веса и выделен KV cache. Зафиксируйте выбранный уровень сна, последовательность wake и приемочный запрос. Тогда можно отличить ожидаемую частичную готовность от сбоя. Sleep не следует описывать как бесплатную паузу, сохраняющую любое состояние диалога и гарантирующую мгновенное продолжение генерации без проверки.

## Разберите уровень освобождения

В [руководстве sleep mode](https://docs.vllm.ai/en/stable/features/sleep_mode/) уровни отличаются тем, выгружаются ли веса или отбрасываются вместе с другими данными. KV состояние нельзя считать автоматически сохраненным. Определите, какие данные должны быть восстановлены извне и что допускается пересчитать. Такое описание должно относиться к конкретной версии и сценарию. Если модель обновляет параметры между циклами, требования к источнику восстановления отличаются от простого повторного использования неизменного checkpoint, поэтому универсальная схема здесь может оказаться неверной.

## Согласуйте память и поддержку

Включение и поддерживаемые условия sleep проверяйте в [справочнике serve](https://docs.vllm.ai/en/stable/cli/serve/). Нельзя автоматически переносить CUDA сценарий на любой accelerator или allocator. Сохраните runtime version, способ выделения памяти и model revision. Приемка должна показать не только освобождение ресурсов, но и возможность корректного последующего запроса. Изменившееся значение свободной памяти является наблюдением отдельного слоя и само по себе не доказывает, что движок готов вернуться к обслуживанию существующей очереди.

## Пример последовательности состояний

Опишите состояния «работает», «спит», «восстановлены веса», «подготовлен KV», «прошел контрольный запрос». Это логическая схема проверки, не утверждение о готовом orchestration Retrivium. Если используется частичный wake по tags, сохраняйте каждое действие и результат проверки состояния. До завершения обязательных шагов держите прием нового inference закрытым в тестовом управлении. Не подменяйте такую последовательность одним health endpoint, который может отражать жизнеспособность процесса, а не полноту восстановления модели.

## Проверьте функциональное возвращение

После пробуждения повторите заранее сохраненный короткий prompt и убедитесь в корректной структуре ответа. Затем проверьте типичный запрос с нужным контекстом. Сопоставляйте `is_sleeping` с документацией, особенно при частичном wake, а не делайте вывод из имени endpoint. Если веса восстановлены, но запрос не выполняется, исследуйте следующую обязательную стадию вместо повторного скачивания checkpoint без оснований. Для зависшего шага запишите timeout и диагностические сообщения, чтобы повторение не превратилось в бесконечный цикл sleep/wake без объяснения причины.

## Сохраните ограничения процедуры

Артефакт приемки включает уровень сна, wake tags, источник весов, состояние кэша и условие открытия обслуживания. Отдельно укажите, какие диалоги нужно пересчитать и что происходит с in-flight запросами в выбранном сценарии. Не обещайте сохранение session state по факту сохранения весов: это разные сущности. Время восстановления измеряйте от известного состояния до функциональной готовности, разделяя transfer, allocation и последующий прогрев. После обновления движка повторите цикл целиком. Полезный итог — понятная диаграмма состояний и журнал переходов, позволяющие следующему оператору воспроизвести остановку и возвращение без предположения, что запущенный HTTP сервер уже предоставляет полностью восстановленную модель.

## Связанные материалы

[vLLM запущен, но не готов: процессы, health и первый запрос](/ru/journal/vllm-health-ready/); [Обновление LLM на GPU: как проверять новую версию небольшим запуском](/ru/journal/model-update-canary/).
