SlideShare a Scribd company logo
1 of 81
Эксплуатация ML
в Почте Mail.ru
Tyantov Eduard
Почта
чеки
из интернет-
магазинов
билеты
на самолёты
брони
отелей
уведомления
от «Госуслуг»
выписки
из банков
уведомления
о штрафах
результаты
медицинских
анализов
записи
к врачам
Smart Reply
Группировка писем
из интернет-магазинов
До
Группировка писем
из интернет-магазинов
После
Антифишинг на лого
ML в Почте
– 1.5B писем в сутки
– 30М+ DAU
– ~30 ML систем
Цифры
Rejected
Spam
Все
письма
рассылки
Куча систем
это
Куча эксплуатации
Деградация моделей
Причины
1. Постепенная деградация софта
Деградация моделей
Причины
1. Постепенная деградация софта
2. Естественная эволюция данных
Деградация моделей
Причины
1. Постепенная деградация софта
2. Естественная эволюция данных
3. Gaming/adversary
1. Поддержка системы дорогая
2. Чем быстрее меняется среда, тем ее больше
Высокие косты => Автоматизация
Эксплуатация
AutoML
Что можно автоматизировать
– Сбор данных
– Дообучение
– Деплой
– Мониторинг
Infrastructure
trumps
Model Complexity
Claim
1. Поддержка моделей свойственна любому
проекту
2. Среда меняется все быстрее
3. Грабли одни и те же
Relatable
Plan
1.Сбор данных
2.Дообучение
3.Maintenance
Feedback Loop
AutoML
Что можно автоматизировать
– Сбор данных
– Дообучение
– Деплой
– Мониторинг
Feedback Loop
Adversary in Antispam
Адаптация
Adversary in Antispam
1 месяц разработчика vs 4h спамера
Адаптация
Think in advance about Feedback Loop
Сбор данных
Why Feedback Loop
– Data is fuel
– People is fuel
– User Feedback
Качество фидбека
– Разное понимание фичи
– Юзерам нельзя верить
Качество фидбека
По мнению пользователя это не спам
Качество фидбека
– Разное понимание фичи
– Юзерам нельзя верить
– Возможен Adversary
Вывод
Не годится для обучения
Просев фидбека
ML учит ML
– Фидбек от связанного ML
– Классификатор чистого клика
Классификатор кликов
В почте
– Признаки:
• Юзера
• Отправителя
• Контент
– Precision важнее Recall
Со стороны пользователя
– Пользователю надо как-то жить с ошибками
– Проблема не должна повторяться
Ошибки: решение
Варианты
– Перманентные эвристики per user
– Временные костыли в модели
Эвристики для обучения
Проблема дообучения
– Feedback иногда недостаточно для исправления модели
Решение
– Поток с точной эвристики => модель
Костыли в модели
Процесс
КостыльМодель
данные
Мониторинг
– Дообучение на данных с костыля
• Если больше не фолзит, вырубаем
– Мониторинг срабатывания
– Временный костыль
Эвристики для обучения
Армия костылей полезна
для ваших моделей
Intermediate Recap
1. Думаем про UX
2. Фильтруем фидбек с помощью ML
3. Используем эвристики для дообучения
Дообучение
Дообучение
Текущая выборка
Чистый фидбек
пользователей
Текущая
модель Новая
модель
Проблемы с дообучением
Модель может
– Не поддерживать дообучение
– Ухудшится
– Не предсказуемо измениться
• Создать новые ошибки или вернуть старые
Point
Надо гарантировать улучшение
или хотя бы не ухудшение
Active learning
меняет распределение данных в выборке
0% 100%85%
Не финансы Финансы
Граница принятия решения
Концепция
Цель
– Сохранить прежние паттерны
– Приобретать новые
Преемственность
Старой прод. модели можно верить!
В Почте
– Линейные
– Деревья
– Нейросети
Для каждой свой алгоритм
Линейные модели
• Тренируем на новом сете
𝐿𝑜𝑠𝑠 = 𝑐1 𝐿(𝑋 𝑛𝑒𝑤) + 𝛼 𝜃 𝑛𝑒𝑤
2
• Регуляризуем веса новых признаков
Линейные модели
• Контроль метрик на старом
𝐿𝑜𝑠𝑠 = 𝑐1 𝐿(𝑋 𝑛𝑒𝑤) + 𝛼 𝜃 𝑛𝑒𝑤
2
+ 𝑐2 𝐿(𝑋 𝑜𝑙𝑑)
Линейные модели
• Harmonic regularization
– веса старых признаков не сильно отличаются
𝐿𝑜𝑠𝑠 = 𝑐1 𝐿(𝑋 𝑛𝑒𝑤) + 𝛼 𝜃 𝑛𝑒𝑤
2
+ 𝑐2 𝐿(𝑋 𝑜𝑙𝑑)
+𝛽 𝜃 𝑜𝑙𝑑
𝑖
− 𝜃 𝑜𝑙𝑑
𝑖−1 2
Линейные модели
Гипер-параметры = гибкость
𝐿𝑜𝑠𝑠 = 𝑐1 𝐿(𝑋 𝑛𝑒𝑤) + 𝛼 𝜃 𝑛𝑒𝑤
2
+ 𝑐2 𝐿(𝑋 𝑜𝑙𝑑)
+𝛽 𝜃 𝑜𝑙𝑑
𝑖
− 𝜃 𝑜𝑙𝑑
𝑖−1 2
Trees
… На старом сете
Trees
…
+
На старом сете
На новом сете
– - N=5
– + M=10
– Основной размер ~ 100-300
Trees: безудержный рост
– Число деревьев растет
• => надо упрощать
– Knowledge Distillation
Trees
Добавление деревьев + KD обеспечивают
– Новые паттерны
– Преемственность
FastText
– 𝐸𝑚𝑏 𝑤𝑜𝑟𝑑 = 𝐸𝑚𝑏 𝑛𝑔𝑟𝑎𝑚 + 𝐸𝑚𝑏 𝑤𝑜𝑟𝑑
– N-grams: bucket hashing
dimension
n_words
n_buckets
Weights
Дообучение FastText
New text => new words, n-grams
dimension
n_words
n_buckets
Дефолтное дообучение
– Только старые веса
– Веса изменяются непредсказуемо
• => Нет преемственности
Дообучение FastText
Рецепт
– Добавляем все новое
𝐿𝑜𝑠𝑠 = 𝐶𝑟𝑜𝑠𝑠 𝐸𝑛𝑡𝑟𝑜𝑝𝑦 + 𝛽 𝜃 𝑜𝑙𝑑
𝑖
− 𝜃 𝑜𝑙𝑑
𝑖−1 2
New words
New buckets
CE– Учим CrossEntropy
– Harmonic regularization
Harmonic
Reg.
Harmonic
Reg.
CNN
Варианты:
– Harmonic regularization
– Гибкий генератор (пример: OCR)
– Embeddings: triplet loss + harmonic
Triplet loss для Антифишинга
Anchor
positive + α < negative
minimize maximize
Negative
Positive
FaceNet: A Unified Embedding for Face Recognition and Clustering
Triplet loss: harmonic
– Learn from scratch Model v2
Anchor
minimize maximize
Negative
Positive
New
Triplet loss: harmonic
– Learn from scratch Model v2
minimize maximize
Emb v1
Emb v2
Emb v1
Emb v2
Emb v1
– Retrain Embedding layer
– Then the whole net
Архитектура
CNN
Other Features
…Decision
Score
Embeddings
Архитектура: дообучение
Harmonic
regularization
CNN
Other Features
Архитектура: дообучение
Calibration
Harmonic
regularization
Архитектура: дообучение
Incremental
Calibration
Harmonic
regularization
…
Hierarchy
Обновляем компоненты по одному
Вывод
Преемственность решает
Эксплуатация
Тестирование и мониторинг
не вредит вашему здоровью
Why
Everything breaks b/c:
– Cost of innovation
– Entropy
time
Number of errors
Why
– Lifetime value
– Нельзя полагаться на людей
Блокировки
Время
Кол-во
Ошибки
AutoAB
– Все изменения - через АВ
– Автодеплой по метрикам
• Up to 50% auto, 100% manual
– Rollback Tests
Testing
– Integration tests
– Data tests
– Training vs serving model
Мониторинг
Распределение (KLdiv)
– Ответов
– Скоров
– Признаков
Мониторинг
Эвристики полезны для мониторинга ML
Доля пропусков модели на эвристиках
ML as a Service
Легче поддерживать, масштабировать, переписывать
– TensorFlow Serving
– Kubeflow
– TensorRT Inference Server
Bottom line
Думать об эксплуатации ML
надо заранее
Recap
Recap
• Feedback Loop
– Думаем про пользователя
– Фильтрация фидбека
• Дообучение
– Преемственность
• Эксплуатация
– Тесты
– Мониторинги
Вопросы

More Related Content

Similar to Эксплуатация ML в Почте Mail.ru

Математика для тестировщиков
Математика для тестировщиковМатематика для тестировщиков
Математика для тестировщиковSQALab
 
Современные архитектуры диалоговых систем / Анатолий Востряков (Segmento)
Современные архитектуры диалоговых систем / Анатолий Востряков (Segmento)Современные архитектуры диалоговых систем / Анатолий Востряков (Segmento)
Современные архитектуры диалоговых систем / Анатолий Востряков (Segmento)Ontico
 
Apache Cassandra. Ещё одно NoSQL хранилище (Владимир Климонтович)
Apache Cassandra. Ещё одно NoSQL хранилище (Владимир Климонтович)Apache Cassandra. Ещё одно NoSQL хранилище (Владимир Климонтович)
Apache Cassandra. Ещё одно NoSQL хранилище (Владимир Климонтович)Ontico
 
Выявление неполадок в Java приложениях
Выявление неполадок в Java приложенияхВыявление неполадок в Java приложениях
Выявление неполадок в Java приложенияхPavel Grushetzky
 
Вебинар: Основы распараллеливания С++ программ при помощи OpenMP
Вебинар: Основы распараллеливания С++ программ при помощи OpenMPВебинар: Основы распараллеливания С++ программ при помощи OpenMP
Вебинар: Основы распараллеливания С++ программ при помощи OpenMPFlyElephant
 
Андрей Сас (Badoo)
Андрей Сас (Badoo)Андрей Сас (Badoo)
Андрей Сас (Badoo)Ontico
 
Eмейл-рассылки для профи: частые ошибки, что улучшать, как мониторить (Андрей...
Eмейл-рассылки для профи: частые ошибки, что улучшать, как мониторить (Андрей...Eмейл-рассылки для профи: частые ошибки, что улучшать, как мониторить (Андрей...
Eмейл-рассылки для профи: частые ошибки, что улучшать, как мониторить (Андрей...Andrey Sas
 
Доклад Андрея Саса на конференции РИТ++ 2014. "Email-рассылки для профи- част...
Доклад Андрея Саса на конференции РИТ++ 2014. "Email-рассылки для профи- част...Доклад Андрея Саса на конференции РИТ++ 2014. "Email-рассылки для профи- част...
Доклад Андрея Саса на конференции РИТ++ 2014. "Email-рассылки для профи- част...Badoo Development
 
Опыт моделеварения от команды ComputerVision Mail.ru
Опыт моделеварения от команды ComputerVision Mail.ruОпыт моделеварения от команды ComputerVision Mail.ru
Опыт моделеварения от команды ComputerVision Mail.ruEduard Tyantov
 
Практика машинного обучения: вопросы и проблемы при работе над ML-проектом
Практика машинного обучения: вопросы и проблемы при работе над ML-проектомПрактика машинного обучения: вопросы и проблемы при работе над ML-проектом
Практика машинного обучения: вопросы и проблемы при работе над ML-проектомDenisenko Sergei
 
"Облачный сервис персональных рекомендаций для 20 000 магазинов — алгоритмы и...
"Облачный сервис персональных рекомендаций для 20 000 магазинов — алгоритмы и..."Облачный сервис персональных рекомендаций для 20 000 магазинов — алгоритмы и...
"Облачный сервис персональных рекомендаций для 20 000 магазинов — алгоритмы и...it-people
 
Сверточные нейронные сети
Сверточные нейронные сетиСверточные нейронные сети
Сверточные нейронные сетиIvan Kavalerov
 
SentiScan: система автоматической разметки тональности в social media
SentiScan: система автоматической разметки тональности в social mediaSentiScan: система автоматической разметки тональности в social media
SentiScan: система автоматической разметки тональности в social mediaDmitry Kan
 
Обработка данных в RTB: быстро, дешево и на 98% точно
Обработка данных в RTB:  быстро, дешево и на 98% точноОбработка данных в RTB:  быстро, дешево и на 98% точно
Обработка данных в RTB: быстро, дешево и на 98% точноPavel Kalaidin
 
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...yaevents
 

Similar to Эксплуатация ML в Почте Mail.ru (20)

Java Performance
Java PerformanceJava Performance
Java Performance
 
Математика для тестировщиков
Математика для тестировщиковМатематика для тестировщиков
Математика для тестировщиков
 
Современные архитектуры диалоговых систем / Анатолий Востряков (Segmento)
Современные архитектуры диалоговых систем / Анатолий Востряков (Segmento)Современные архитектуры диалоговых систем / Анатолий Востряков (Segmento)
Современные архитектуры диалоговых систем / Анатолий Востряков (Segmento)
 
Apache Cassandra. Ещё одно NoSQL хранилище (Владимир Климонтович)
Apache Cassandra. Ещё одно NoSQL хранилище (Владимир Климонтович)Apache Cassandra. Ещё одно NoSQL хранилище (Владимир Климонтович)
Apache Cassandra. Ещё одно NoSQL хранилище (Владимир Климонтович)
 
01 вводная
01 вводная01 вводная
01 вводная
 
Выявление неполадок в Java приложениях
Выявление неполадок в Java приложенияхВыявление неполадок в Java приложениях
Выявление неполадок в Java приложениях
 
Вебинар: Основы распараллеливания С++ программ при помощи OpenMP
Вебинар: Основы распараллеливания С++ программ при помощи OpenMPВебинар: Основы распараллеливания С++ программ при помощи OpenMP
Вебинар: Основы распараллеливания С++ программ при помощи OpenMP
 
Андрей Сас (Badoo)
Андрей Сас (Badoo)Андрей Сас (Badoo)
Андрей Сас (Badoo)
 
Eмейл-рассылки для профи: частые ошибки, что улучшать, как мониторить (Андрей...
Eмейл-рассылки для профи: частые ошибки, что улучшать, как мониторить (Андрей...Eмейл-рассылки для профи: частые ошибки, что улучшать, как мониторить (Андрей...
Eмейл-рассылки для профи: частые ошибки, что улучшать, как мониторить (Андрей...
 
Доклад Андрея Саса на конференции РИТ++ 2014. "Email-рассылки для профи- част...
Доклад Андрея Саса на конференции РИТ++ 2014. "Email-рассылки для профи- част...Доклад Андрея Саса на конференции РИТ++ 2014. "Email-рассылки для профи- част...
Доклад Андрея Саса на конференции РИТ++ 2014. "Email-рассылки для профи- част...
 
SECON'2014 - Андрей Устюжанин - Маленькие секреты больших данных
SECON'2014 - Андрей Устюжанин - Маленькие секреты больших данныхSECON'2014 - Андрей Устюжанин - Маленькие секреты больших данных
SECON'2014 - Андрей Устюжанин - Маленькие секреты больших данных
 
Опыт моделеварения от команды ComputerVision Mail.ru
Опыт моделеварения от команды ComputerVision Mail.ruОпыт моделеварения от команды ComputerVision Mail.ru
Опыт моделеварения от команды ComputerVision Mail.ru
 
Практика машинного обучения: вопросы и проблемы при работе над ML-проектом
Практика машинного обучения: вопросы и проблемы при работе над ML-проектомПрактика машинного обучения: вопросы и проблемы при работе над ML-проектом
Практика машинного обучения: вопросы и проблемы при работе над ML-проектом
 
"Облачный сервис персональных рекомендаций для 20 000 магазинов — алгоритмы и...
"Облачный сервис персональных рекомендаций для 20 000 магазинов — алгоритмы и..."Облачный сервис персональных рекомендаций для 20 000 магазинов — алгоритмы и...
"Облачный сервис персональных рекомендаций для 20 000 магазинов — алгоритмы и...
 
Сверточные нейронные сети
Сверточные нейронные сетиСверточные нейронные сети
Сверточные нейронные сети
 
4 azure 24 04
4 azure 24 044 azure 24 04
4 azure 24 04
 
Efficiency vvv
Efficiency vvvEfficiency vvv
Efficiency vvv
 
SentiScan: система автоматической разметки тональности в social media
SentiScan: система автоматической разметки тональности в social mediaSentiScan: система автоматической разметки тональности в social media
SentiScan: система автоматической разметки тональности в social media
 
Обработка данных в RTB: быстро, дешево и на 98% точно
Обработка данных в RTB:  быстро, дешево и на 98% точноОбработка данных в RTB:  быстро, дешево и на 98% точно
Обработка данных в RTB: быстро, дешево и на 98% точно
 
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
 

More from Eduard Tyantov

Саморазвитие: как я не усидел на двух стульях и нашел третий
Саморазвитие: как я не усидел на двух стульях и нашел третийСаморазвитие: как я не усидел на двух стульях и нашел третий
Саморазвитие: как я не усидел на двух стульях и нашел третийEduard Tyantov
 
Project Management 2.0: AI Transformation
Project Management 2.0: AI TransformationProject Management 2.0: AI Transformation
Project Management 2.0: AI TransformationEduard Tyantov
 
Kaggle Google Landmark recognition
Kaggle Google Landmark recognitionKaggle Google Landmark recognition
Kaggle Google Landmark recognitionEduard Tyantov
 
Face Recognition: From Scratch To Hatch
Face Recognition: From Scratch To HatchFace Recognition: From Scratch To Hatch
Face Recognition: From Scratch To HatchEduard Tyantov
 
Deep Learning: Advances Of The Last Year
Deep Learning: Advances Of The Last Year Deep Learning: Advances Of The Last Year
Deep Learning: Advances Of The Last Year Eduard Tyantov
 
Kaggle review Planet: Understanding the Amazon from Space
Kaggle reviewPlanet: Understanding the Amazon from SpaceKaggle reviewPlanet: Understanding the Amazon from Space
Kaggle review Planet: Understanding the Amazon from SpaceEduard Tyantov
 
Ultrasound nerve segmentation, kaggle review
Ultrasound nerve segmentation, kaggle reviewUltrasound nerve segmentation, kaggle review
Ultrasound nerve segmentation, kaggle reviewEduard Tyantov
 
Artisto App, Highload 2016
Artisto App, Highload 2016Artisto App, Highload 2016
Artisto App, Highload 2016Eduard Tyantov
 

More from Eduard Tyantov (8)

Саморазвитие: как я не усидел на двух стульях и нашел третий
Саморазвитие: как я не усидел на двух стульях и нашел третийСаморазвитие: как я не усидел на двух стульях и нашел третий
Саморазвитие: как я не усидел на двух стульях и нашел третий
 
Project Management 2.0: AI Transformation
Project Management 2.0: AI TransformationProject Management 2.0: AI Transformation
Project Management 2.0: AI Transformation
 
Kaggle Google Landmark recognition
Kaggle Google Landmark recognitionKaggle Google Landmark recognition
Kaggle Google Landmark recognition
 
Face Recognition: From Scratch To Hatch
Face Recognition: From Scratch To HatchFace Recognition: From Scratch To Hatch
Face Recognition: From Scratch To Hatch
 
Deep Learning: Advances Of The Last Year
Deep Learning: Advances Of The Last Year Deep Learning: Advances Of The Last Year
Deep Learning: Advances Of The Last Year
 
Kaggle review Planet: Understanding the Amazon from Space
Kaggle reviewPlanet: Understanding the Amazon from SpaceKaggle reviewPlanet: Understanding the Amazon from Space
Kaggle review Planet: Understanding the Amazon from Space
 
Ultrasound nerve segmentation, kaggle review
Ultrasound nerve segmentation, kaggle reviewUltrasound nerve segmentation, kaggle review
Ultrasound nerve segmentation, kaggle review
 
Artisto App, Highload 2016
Artisto App, Highload 2016Artisto App, Highload 2016
Artisto App, Highload 2016
 

Эксплуатация ML в Почте Mail.ru

Editor's Notes

  1. стоит время, вся команда может заниматься только поддержкой моделей запросто, без бюджета на инновации
  2. все это не какие-то космолеты - а понятные и часто достаточно простые вещи
  3. дизайн таких систем: через эволюцию и след. шаг, почему: …
  4. месяц жизни разраба битва ML-алгоритмов,
  5. по кнопкам
  6. 80% нигерйский FP – реально спам свое уникальное восприятие удачи
  7. связанный ML – например пост-проверка с более полными данными
  8. модель может тупо не поддерживать дообучение Если есть возможность избежать асессоров в цикле - избегаем,
  9. модель может тупо не поддерживать дообучение
  10. тут важна уверенность что не сломается, приемственность моделей - мы не хотим чтобы она каждый раз выдывала неизвестно знает что и обрабатывать коннер кейсы (они всегда будут, но желательно те же самые) иначе увеличена поддержка
  11. Если не применять спец. Техники можно сделать только хуже
  12. Трейн датасет != продакшен распределение Нужны спец. техники
  13. Старая модель работает в проде и мы можем ей верить
  14. Допилили lightgbm
  15. tODO: анимашки Снова допилили фаст-текст Есть разные вариации, чего учить чего морозить (n-gramm), но по аналогии с успешным опытом на лин. моделей
  16. Несколько фасттекстов, CNN
  17. Каждая модель изменяется предсказуемо
  18. Каждая модель изменяется предсказуемо
  19. Каждая модель изменяется предсказуемо
  20. Каждая модель изменяется предсказуемо
  21. улучшает здоровье =) быстро предовтращать и митигировать последствия
  22. эффект: любой факап рушит обрушивает это value и устраивает disruption и отток пользователей (в нашем мире когда время все ценнее, никто не хочет тратить время на ваши баги и просто пойдет в другой продукт) Пример системы который рубит редкий но опасный спам, сломался признак, которую должным образом не замониторили и не обложили анти-факапными мерами и тестированием признаков у нас плохая память - чек-лист проекта на сдаче или в процессе, не полагайтесь на людей, система 
  23. Причем у нас две системы накатки моделей и логики, цель которых привезти модель как можно скорее модель и безопаснее И аб-тесты когда уже модель начинает использоваться
  24. каждый след. шаг обходится дороже, баг надо отловить как можно раньше
  25. Пер инстанс, алерты
  26. взять и переписать маленькую часть легче чем космолет (стори про индусов) Заменить fast-text потом на transformer – т.к.
  27. Даже закаленные люди совершают ошибку: о интересная задача гоу-гоу
  28. Эти вещи помогут быстрее улучшать ваши продукты и вам соблюдать worklife balance (если существует).