Развертывание в режиме канарейки

Тема дорожной карты · MLOps

Развертывание в режиме канарейки — это стратегия постепенного введения новых версий программного обеспечения для небольшой подгруппы пользователей. Это позволяет легко откатить изменения, если возникнут проблемы, и обеспечивает стабильную работу системы. Такой подход особенно полезен при внедрении новых моделей машинного обучения, так как позволяет тестировать их на реальных данных и мониторить производительность в контролируемой среде перед полным развертыванием. Используйте terraform apply с параметрами для канарейки, чтобы протестировать изменения в контролируемой среде перед полным развертыванием.

Как это работает

Развертывание в режиме канарейки адаптирует CI/CD под жизненный цикл модели. Тестирование включает unit-тесты на обработку данных, интеграционные тесты на весь пайплайн, модели тесты на фиксированном eval-сете и поведенческие тесты (CheckList-style — "модель handle negation правильно"). Автоматическое переобучение триггерится на данных, которые изменились, или на расписании, или на пороговом значении объема данных. Валидационные шлюзы сравнивают новую модель с текущей production: новая модель должна побить текущую на N% на holdout, без регрессии по справедливости, и latency должна быть в бюджете. Развертывание в режиме канарейки роутит 1-5% трафика на новую модель и мониторит ее до полного развертывания.

Когда применять

Автоматическое переобучение следует применять только тогда, когда вы понимаете возможные failure modes модели. Автоматическое переобучение модели, которая дрейфует тонким способом, может усиливать вред. Всегда требуйте утверждения человека для продвижения в production для моделей высокого риска. Трафик в тени до канарейки используется для рискованных изменений (новая модель параллельно, сравнение предсказаний без serving).

Типичные ошибки

Типичные ошибки при развертывании в режиме канарейки включают автоматическое продвижение моделей по метрикам обучения (что может привести к переобучению в production); отсутствие автоматизации отката (откат ручной и медленный во время инцидентов); развертывание канарейки без мониторинга (не знаете, хуже ли, пока пользователи не пожалуются); пропуск поведенческих тестов как "мягких" (пока они не поймают регрессию, не пойманную ничем).

Связанные понятия

Полезные ресурсы