Рекомендации Авито — это первое, что видит пользователь, когда попадает на главную страницу. Нагрузка на наш основной сервис — порядка 200 тысяч запросов в минуту.
За последние два года мы сильно улучшили качество рекомендаций, но сильно проиграли в latency. Главным врагом производительности и latency стало добавление ML модели второго уровня на основе CatBoost для ранжирования объявлений от базовых ML моделей первого уровня в реалтайм.
В докладе я расскажу:
- Как мы приняли решение переписать все на Go, перед этим мы выжали из Python все, что смогли;
- Как подружили CatBoost с Go и стали использовать ML модель на основе CatBoost в Go;
- Что получили по latency и потреблению memory/cpu.