Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Микросервисы для Machine Learning / Дмитрий Ходаков (Avito)

181 views

Published on

РИТ++ 2017
Зал Сан-Паулу, 5 июня, 18:00

Тезисы:
http://ritfest.ru/2017/abstracts/2723.html

Рекомендательные сервисы стали неотъемлемой частью практически любого крупного проекта. Мы готовим рекомендации объявлений, обрабатывая все действия пользователей при помощи машинного обучения.

Писать софт сложно, писать обучающийся софт сложно втройне. Из доклада вы узнаете:
- какие трудности можно встретить при построении архитектуры распределенного пайплайна для обучения моделей;
- как традиционные микросервисы помогают организовывать доставку результатов в продакшн-окружение;
- как не очень традиционные микросервисы помогают нам организовать обучение моделей;
- чем отличаются подходы в ml по сравнению с традиционной разработкой.

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

Микросервисы для Machine Learning / Дмитрий Ходаков (Avito)

  1. 1. Микросервисы для machine learning Ходаков Дмитрий Avito presentation
  2. 2. Постановка задачи
  3. 3. Рекомендации на главной
  4. 4. Рекомендации в письмах
  5. 5. •~30 млн активных объявлений •~20 млн пользователей •~1.2 млрд событий в день Обучение user_id item_id 1 10 1 20 2 10 2 30 user_id item_id 1 30 2 20
  6. 6. Рекомендации онлайн
  7. 7. •Быстрое добавление новых сервисов •Каждый сервис обладает состоянием - моделью •Независимость сервисов от используемого стека технологий Онлайн модели – что надо уметь?
  8. 8. •Запрос сайта {user_id: 100, context: ctxt, backends: [A, B, C, …]} •Gateway балансирует нагрузку и управляет таймаутами •Ответ rec. backend: {item_ids: [1, 2, 3, …]} Онлайн модели – что надо уметь?
  9. 9. Онлайн модели – как сделали
  10. 10. Оффлайн модели
  11. 11. • Используем матричную факторизацию • Много open source решений • 5ч - загрузка и подготовка данных • 6ч - обучение модели • 7ч - применение модели Оффлайн модели
  12. 12. Оффлайн модели – делай раз
  13. 13. Оффлайн модели – делай раз •Полное время доставки модели в прод ~ 20ч •Что угодно может пойти не так •Постоянно меняем внутреннюю реализацию •Хочется проводить А/Б тестирование •А тут уже не успеваем за сутки
  14. 14. •Передачи контрольных сообщений и данных отдельно •Очереди для контрольных сообщений Оффлайн модели – делай два
  15. 15. •Человекочитаемые метрики (количество входных / выходных данных) •Метрики машин (сходимость) •ML меткрики (NDCG, precision/recall) •Sanity checks Оффлайн модели – метрики
  16. 16. Чему мы научились?
  17. 17. • Не бояться менять внутренности ml моделей • Нужны sanity check'и, и на них нельзя экономить • Сразу же автоматизировать весь мониторинг • Сервис не должен знать, кто потребитель его данных Рекомендации

×