Конференция завершена. Ждем вас на GolangConf в следующий раз!

Зачем мы переписали сервис рекомендаций на Go и что получили в сравнении с Python.

GolangConf: Машинное обучение: гофер против питона

Python
GO
Оптимизация
Рекомендации / ML

Доклад отклонён

Целевая аудитория

junior/middle/senior

Тезисы

Рекомендации Авито - это первое, что видит пользователь, когда попадает на главную страницу. Нагрузка на наш основной сервис порядка 200 тысяч запросов в минуту.
Мы постоянно боремся за качество рекомендаций, которые видит пользователь и время за которое он их получает. За последние два года мы сильно улучшили качество рекомендаций, расширяя наши базовые ML модели, но сильно проиграли в latency. Главным врагом производительности и latency стало, добавление ML модели второго уровня на основе catboost для ранжирования объявлений от базовых ML моделей первого уровня в реалтайм.

В докладе я расскажу:
- как мы приняли решение переписать все на Go, перед этим мы выжали из питона все что смогли;
- как подружили CatBoost с Go и стали использовать ML модель на основе CatBoost в Go;
- как делали сверку при переходе, ответ от сервиса рекомендаций не детерминированный;
- что получили по latency и cpu после перехода.

Руководит разработкой юнита рекомендаций и ML-платформы в Авито. Юнит рекомендаций отвечает за стабильность и качество рекомендаций в любых уголках Авито, в том числе на Главной странице. ML-платформа выстраивает MLOps-процессы в компании.

Авито

В команде Авито уже 1800+ инженеров и мы продолжаем расти. У нас больше трёх тысяч микросервисов на Python и Go, фронтенд на JavaScript, базы данных PostgreSQL, MongoDB и Redis, автоматические тесты, обученная на данных система модерации и поисковый движок Sphinx. Ежедневно на Авито публикуется больше 20 миллионов объявлений и ведется 5 миллионов чатов с применением ML-моделей. А над развитием и поддержкой этой системы работает более 100 DS-инженеров.

Видео