Инженер поиска Ozon описывает, как в рантайме вычисляются факторы ранжирования и как сервис o2-midway меняет порядок товаров в выдаче. Главная идея: факторы оформлены как DAG и поставляются через метасервис, чтобы быстрее экспериментировать и безопаснее выкатывать модели.В поиске Ozon используется больше тысячи факторов ранжирования; новые факторы появляются ежедневно.Сервис o2-midway получает товары от нижестоящих сервисов и перед ответом клиенту пересчитывает их порядок, включая скоры ML-моделей на каждый поисковый запрос.Зависимости факторов представлены как направленный ациклический граф (DAG): для любой сортировки достаточно вычислить нужный подграф, а сам граф строится на старте приложения.Добавление фактора в o2-midway описывается декларативно через input/output, а детали вычисления берёт на себя инфраструктура графа.Проблема релиза для типовых факторов решается сервисом feature-meta-store: он хранит метаописания факторов и позволяет автоматически добавлять их в граф.Для защиты продакшена описаны ревизии факторов для окружений и проверки новых моделей в ml-pipeline (перформанс и качество), отчёты сравнения с baseline и последующая раскатка через продакшен.Почему это важно: Когда факторов и моделей много, ключевой сложностью становится управление зависимостями и скорость экспериментов. Описанная схема показывает, как ускорять изменения без релизов и при этом удерживать контроль качества и производительности. Для поискового ранжирования это напрямую связано с релевантностью выдачи и временем ответа.На что обратить внимание: В тексте кэши упоминаются, но не рассматриваются, поэтому акцент сделан на вычислениях в момент запроса. Для типовых факторов и формул используется метаописание и валидация: при несовпадении зависимостей формула может быть отклонена ещё на этапе добавления в ревизию. Процесс продвижения модели в продакшен подразумевает точку контроля через отчёты, UI и отдельную раскатку с тестированием.