Василий Копытов, Авито. Как и почему мы перешли от Python к Go в нашем основном сервисе рекомендаций
Вставка
- Опубліковано 14 кві 2022
- Рекомендации Авито - это первое, что видит пользователь, когда попадает на главную страницу. Нагрузка на наш основной сервис - порядка 200 тысяч запросов в минуту.
За последние два года мы сильно улучшили качество рекомендаций, но сильно проиграли в latency. Главным врагом производительности и latency стало добавление ML модели второго уровня на основе CatBoost для ранжирования объявлений от базовых ML моделей первого уровня в реалтайм.
В докладе я расскажу:
Как мы приняли решение переписать все на Go, перед этим мы выжали из Python все, что смогли;
Как подружили CatBoost с Go и стали использовать ML модель на основе CatBoost в Go;
Что получили по latency и потреблению memory/cpu.
Можно коротко рассказать в чем заключается подготовка фичей? Это не pandas? Подготовка фичей тоже была в processpool?
Еще интересно использовался ли какой-нибудь бинарный быстрый протокол в кейсе с отдельным cpu-bound сервисом?
Вот мне тоже интересно. Часто слышу про переписывание на Go, Julia с хорошим приростом в произовдительности. Но мои микробенчмарки не показывают какого-то прироста по сравнению с Numpy/Numba.
А uvloop?
М, а у Instagram все ок или Shopify...так может дело не в языке?)
Пройдет пару лет и потом опять с микросервисов начнут уходить в SOA v2.0 :)
Ребята не осили cython и решили переписать вообще все
это то гугно которое выдаёт непойми что непойми зачем за тысячи километров ? и всегда невпопад ? и после запросов скриншотов и доказательств ответ .. да нам фсрать .. ? это это рекомендации ?
Взяли Goвно, вместо православного Rust
+++