В прошлой статье мы говорили о аспектах внедрения Machine Learning моделей в production. Сегодня на основе заданных вопросов рассмотрим case, с которым может столкнуться Data Scientist’ы. Читайте у нас: как облачные хранилища и TensorFlow Extented делает процесс внедрения Machine Learning систем в производство проще.
Case: разработка прогнозирующей системы
Представим, что мы — команда в рекламном агентстве, которая предоставляет компаниям эффективное отслеживание и мониторинг рекламы. Мы недавно получили контракт от одной компании на создание системы машинного обучения, которая должна предсказать, будут ли их клиенты нажимать на рекламу, отображаемую на веб-странице, или нет. У компании имеется большой набор данных в Google Cloud Storage (GCS), и они хотят, чтобы мы разработали прогнозирующую систему.
Итак, мы должны придумать решение до того, как проект запустится. Чтобы подойти к этой проблеме, ответим на каждый из заданных в прошлой статье вопросов.
Что с данными?
Данные хранятся в GCS и представлены в двух форматах. Первый — это CSV-файл с описанием объявления, а второй — соответствующее изображение объявления. Данные уже находятся в облаке, поэтому лучше построить модель машинного обучения в облаке. Таким образом, мы выиграем в скорости работы, будет проще масштабировать проект по мере увеличения объёма данных, а также можно использовать сторонние графические процессоры GPU и TPU для обучения.
Какие размеры данных?
Подрядчик обслуживает миллионы объявлений каждый месяц, а данные собираются и хранятся в облаке в конце каждого месяца. Итак, можно сказать, что имеются большие данные (Big Data), поэтому решение о создании системы в облаке правильно.
Каким образом будет осуществляться извлечение данных для обучения?
Поскольку данные хранятся в облаке GCS, оттуда их просто извлечь. Модели можно строить прямо в Google Cloud Platform. Итак, мы разобрались, что будет использоваться только GCS.
Каким образом будет осуществляться извлечение данных для прогнозирования?
Что касается данных вывода, подрядчики сообщили, что вывод будет запрашиваться их внутренним API. Следовательно, данные с прогнозом будут вызываться посредством REST API.
Фреймворки и инструменты
Мы решили, что будем использовать Python в качестве языка программирования, фреймворк Tensorflow для построения моделей, а также Tensorflow Extended (TFX) для внедрения ML-модели в production.
А как насчёт других аспектов построения системы Machine Learning, таких как анализ модели, мониторинг, обслуживание и т. д.? Какие инструменты использовать? В значительной степени TFX покрывает все это.
TFX предоставляет набор фреймворков, библиотек и компонентов для запуска и мониторинга моделей машинного обучения в производственной среде. Компоненты, доступные в TFX, позволяют создавать эффективные конвейеры машинного обучения, специально разработанные для масштабирования с самого начала. Эти компоненты имеют встроенную поддержку моделирования, обучения, обслуживания и даже управления уже встроенных систем [1].
Поскольку TFX и Tensorflow были созданы в Google, то они имеют хорошую поддержку в Google Cloud Platform.
Google Cloud Platform
Стоит немного рассмотреть и облачную платформу от Google. Мы выбрали её, потому что клиент пользуется ей. Помимо GCP есть также Amazon AWS и Microsoft Azure. Использование той или иной облачной технологии зависит от предоставляемых услуг и расценки. К плюсам облачных сервисов относятся:
- рентабельность
- быстрая установка и развертывание
- эффективное резервное копирование и восстановление
с другой стороны они имеют и минусы:
- проблема безопасности, особенно для конфиденциальных данных
- зависимость от интернета, поскольку все работает онлайн
- периодические затраты (нужно быть осторожными в использовании используемых услуг, иначе может придти чек с неожиданными ценами)
- ограниченный контроль над инструментами, поскольку оборудование принадлежит не вам
Для небольших предприятий, а также для стартапов обычно дешевле и лучше использовать облачные сервисы для своих проектов.
Используемые технологии/платформы
Выбранные инструменты удовлетворяют многим условиям. Python, TensorFlow и TFX могут быть запущены практически отовсюду. Кроме того, модели Tensorflow можно легко сохранять и обслуживать в браузерах с помощью Tensorflow.js, использовать на мобильных устройствах и IoT с помощью Tensorflow lite, управлять как в облаке, так и локально.
Обратная связь и непрерывная интеграция
TFX поддерживает механизм обратной связи, который можно легко использовать для управления версиями моделей, а также для развертывания новых моделей. На основе этого инструмента можно построить пользовательскую обратную связь для эффективного отслеживания моделей в реальных системах. Компонент TFX под названием TensorFlow Model Analysis (TFMA) позволяет легко сравнивать новые модели с текущими перед развертыванием.
Об особенностях внедрения моделей Machine Learning в бизнес на основе реальных примерах Data Science, а также о применяемых технологиях и фреймворках, в том числе и Tensorflow Extended, вы узнаете на наших специализированных курсах в лицензированном учебном центре обучения и повышения квалификации IT-специалистов и Data Scientist’ов в Москве.