Как работает новая выдача в рекомендательных полках WB
Kafka стримит события пользовательских действий в реальном времени.
↓
Сервис на Go собирает события в батч и подготавливает их для модели. Этот сервис служит связующим звеном между всеми остальными: в нём хранятся необходимые маппинги, там же реализован приближённый векторный поиск (HNSW) по эмбеддингам и т. д.
↓
Готовый батч отправляется на Triton-сервер, где параллельно инференсятся одна или несколько наших моделей. На выходе получаем эмбеддинг пользовательского состояния.
↓
Выполняется приближённый поиск ближайших соседей (ANN) по этому эмбеддингу с помощью HNSW, чтобы найти кандидатов товаров.
↓
Сформированный список кандидатов сохраняется в key-value хранилище (User Vector Storage).
Вся конструкция работает непрерывно: по триггеру от Kafka цикл запускается заново, обновляя nearline-рекомендации для пользователя каждый раз, когда тот совершает новое действие (или накапливается серия действий).
По-русски объясню всё сегодня в 18:00)
🔗 ЗАНЯТЬ МЕСТО