Зачем мы переписали сервис рекомендаций на Go и что получили в сравнении с Python. GolangConf: Машинное обучение: гофер против питона

Программный комитет ещё не принял решения по этому докладу
Василий Копытов
Авито

Занимаюсь веб разработкой около 6 лет. Последние 3 года развиваю рекомендательную систему Авито, занимаю позицию tech lead. Начинал свой путь в IT с Mail.ru Group.

Тезисы

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

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

Другие доклады секции GolangConf: Машинное обучение: гофер против питона