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

More Related Content

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