Блог SkillsCup.com

Shadow deployment / теневой релиз

Shadow Deployment

Shadow Deployment или "теневое развертывание" — это способ запустить новую систему (модель, алгоритм, API) в реальном продакшене, но не воздействуя на пользователей.
Она работает «в тени»: получает те же запросы, что и основная система, но отвечает в холостую — её результат не используется в интерфейсе или в решении.

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

На примере Spotify / Uber / Airbnb.

Spotify и рекомендательные модели

  • Пользователь заходит на главную → система отправляет запрос на рекомендации.
Две модели получают один и тот же ввод:
  • Main model генерирует реальные карточки на экране.
  • Shadow model делает свой прогноз — но только для логирования.
Далее:
  • Сравнивают результаты (precision, diversity, hit rate и т.д.).
  • Смотрят: как повёл бы себя пользователь, если увидел бы рекомендации shadow-модели.

Uber и поиск водителей

Новый алгоритм подбора водителей получает реальные заказы, но не влияет на реальное назначение. Его решения логируются и сравниваются с продакшн-алгоритмом:
  • Как бы он распределил машины?
  • Насколько быстрее/дальше/дешевле получился бы заказ?

Airbnb и рекомендации жилья при поиске

Shadow-алгоритм формирует свои топ-20 вариантов, как если бы он ранжировал.
  • Сравнивают: пересекаются ли с топ-результатами основной модели?
  • Считают метрики: MRR, позиция реально забронированного жилья, click probability и пр.

Как настроить Shadow Deployment технически

1. Дублируйте запрос. Используйте middleware, брокер (например, Kafka), чтобы скопировать реальные входящие запросы в обе модели: основную и теневую.
2. Shadow-модель не возвращает ответ. Её ответ не идёт на фронт, но логируется вместе с ID запроса, временем, пользователем и пр.
3. Сравнение и метрики. Считайте, насколько shadow-алгоритм был бы успешен:
  • Было бы больше кликов? Конверсий?
  • Диверсификации / разнообразнее ли были предложения?
  • Быстрее ли работала модель? Сколько времени сэкономил бы?
  • Какие объекты чаще рекомендовал?
  • Где оказался тот объект, который реально выбрал пользователь?

Что можно измерить

Метрика Зачем нужна
Hit Rate @K Попадает ли рекомендованное в то, что выбрал пользователь
Coverage Охват новых объектов: насколько разнообразные элементы попадают в выдачу
Diversity Разнообразие контента: нет ли повторяющихся или однотипных элементов
Latency Быстродействие модели — сколько времени уходит на генерацию рекомендаций
Bias Check Не повторяет ли модель в топ-1 одни и те же объекты — проверка на перекос
Position of Clicked Item Позиция реально кликнутого объекта в выдаче shadow-модели

Преимущества

  • Никакого риска для пользователя
  • Реальные данные — никакой синтетики
  • Можно запускать даже «сырые» модели
  • Хороший способ подготовки к A/B-тесту

Важно

  • Shadow deployment не всегда отражает реальное поведение: пользователь не видит рекомендаций → может не кликнуть, даже если бы кликнул.
  • Этого недостаточно для оценки влияния на поведение — но отлично подходит для предварительной фильтрации гипотез и моделей.
2025-04-20 23:34 Продукт