рекламном аукционе продавец выставляет ставку: • За 1000 просмотров (CPM, Cost Per Mile) • Или за 1 клик (CPC, Cost Per Click) • Или за 1 заказ (CPO, Cost Per Order) 3
Даром, и пусть никто не уйдет обиженный! 2. Быстро и регулярно обучать ML модели 3. Создавать рассчитываемые фичи любой сложности. Использовать фичи с прода при обучении 4. Проводить воспроизводимые и единообразные эксперименты 5. Автоматически поддерживать ML модели в сервисе 6. Быть уверенными в качестве предсказаний Чего мы хотим: ML модели можно регулярно обучать на свежих данных и автоматически выкатывать в прод 7. Держать нагрузку в десятки тысяч RPS
достать из источников данных Примеры: • Цена товара (sku) price = Price( input_df=df,col=‘price’ key=['sku'], placement='general', ) • Realtime-счётчик числа просмотров по паре (sku, поисковый запрос) в «поиске» paired_views = Views( input_df=df,col=‘view’ key=[‘sku’, ‘search’], placement=‘search’, ) Три плейсмента: search, catalog, highlight В каждом плейсменте можно поддерживать разные срезы, например: [‘sku’, ‘search’], [‘sku’], [‘search’], [‘seller_id’], [‘campaign_id’], [‘user_id’], …
• CTR (click-through rate) — «кликабельность», конверсия из показа в клик CTR по паре (товар, запрос): Clicks(sku, search) Views(sku, search) CTR по товару: Clicks(sku) Views(sku) • Сглаженная конверсия из показа в клик (Smoothed CTR) if Views >= 200: CTR else: SmoothedCTR SmoothedCTR = 100 × 0.027 + Clicks(sku, search) 100 + Views(sku, search) Запрос: «чай» sku: 33731478 Цель: предсказать CTR (вероятность клика после показа) по паре (33731478, «чай») Views (33731478, «чай»): 65 Clicks (33731478, «чай»): 4 Можно считать много разных сглаженных конверсий: из показа в заказ, из клика в заказ, из показа в добавление в корзину и т.д. !
Feature Registry Redis Batch update Realtime updates ML lib Feature Store: рассчитывает фичи Другие сырые фичи Cырые фичи • Заливаем сырые фичи в Kafka батчами • Обрабатываем realtime-обновления и batch-обновления, обновляем значения в Redis • Feature Store достаёт сырые фичи из Redis и/или получает сырые фичи из запроса • Для каждой рассчитываемой фичи Feature Store обходит AST фичи и вычисляет значение
(используем cgo для инференса catboost) • При старте загружает нужные версии моделей из Model Registry Запрос -> Выбираем модель с помощью A/B конфига -> Достаем список фичей из манифеста -> Запрос в Feature Store за фичами -> Predict моделью -> Ответ • Пишет Log рассчитанных фичей и предсказаний в Kafka
в прод прогоняются автоматически сгенерированные тесты • Тесты проверяют полную синхронизацию расчёта фичей и инференса моделей между офлайном и продом Онлайн мониторинг качества предсказания
проде: • CCR модель на 79 фичах для поиска • CTR модель на 22 фичах для поиска • CTR модель на 22 фичах для каталога • Время выкатки модели = время изменения конфига* 22