Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Илья Осиновсков — 
Го обсудим: продакшен ML на Golang

Ozon Tech
April 14, 2022

Илья Осиновсков — 
Го обсудим: продакшен ML на Golang

Ozon Tech

April 14, 2022
Tweet

More Decks by Ozon Tech

Other Decks in Technology

Transcript

  1. Как у нас работало раньше? Spark джобы Item2item пересчитывались раз

    в неделю Персональные рекомендации обновлялись раз в день
  2. Как у нас работало раньше? •минимум затрат в момент рекомендации

    •нет ограничений на сложность модели •время выполнения джобы растет с ростом айтемов/юзеров •считать рекомендации для всех пользователей накладно •не учитываем контекст текущей сессии пользователя
  3. А давайте попробуем в реалтайме? •не нужно считать рекомендации для

    всех пользователей •легко проводить аб-тесты •можем считать realtime фичи по последним действиям •сложность алгоритма рекомендаций ограничивается временем ответа от сервиса
  4. Индекс товаров Flatbuffer • Быстрый доступ к сериализованным данным •

    Оптимальный по памяти • Гибкий для дополнения https://google.github.io/flatbuffers/
  5. А давайте попробуем в реалтайме? На python + numba вышло

    медленно Успеваем ранжировать всего 500 товаров для пользователя
  6. А давайте попробуем в реалтайм на Golang? •параллелизация из коробки

    •порог входа ниже чем в C++ •ограничения по встраиванию ML-моделей
  7. Итоги • В оффлайне строим индекс товаров • В реалтайме

    считаем рекомендации только при открытии страницы • Для PoC python подойдет, если нет жестких требований по latency