Итак, у вас есть решение для машинного обучения, и вы думаете о его развертывании в облаке, вы немного ищете и находите что-то под названием Sagemaker.

Вы думаете про себя, здорово, это все, что мне нужно, чтобы обслуживать свои модели из облака. Подумайте еще раз.

Что такое Amazon SageMaker? Это полностью управляемое решение AWS, которое позволяет ученым и разработчикам данных быстро создавать, обучать и развертывать модели машинного обучения. Он представляет собой интегрированную среду разработки для машинного обучения, Amazon SageMaker Studio, которая выступает в качестве базы для создания набора других инструментов AWS SageMaker.

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

Да, да, бла-бла, формальные определения, НО зачем мне их использовать?

Сложность проекта машинного обучения на любом предприятии возрастает с увеличением масштаба. Это связано с тем, что проекты машинного обучения состоят из трех ключевых этапов — сборки, обучения и развертывания, каждый из которых может непрерывно возвращаться друг к другу по мере продвижения проекта. И по мере увеличения объема данных, с которыми приходится иметь дело, растет и сложность. И если вы планируете построить модель машинного обучения, которая действительно работает, наборы обучающих данных будут, как правило, большими.

Как правило, на разных этапах проекта машинного обучения требуются разные наборы навыков. Специалисты по данным участвуют в исследовании и формулировании модели машинного обучения, а разработчики берут модель и преобразуют ее в полезный, масштабируемый продукт или API веб-сервиса. Но не каждое предприятие может собрать такую ​​квалифицированную команду или добиться необходимой координации между учеными и разработчиками данных для масштабного развертывания работоспособных моделей машинного обучения.

Именно здесь на помощь приходит Amazon Sagemaker. Будучи полностью управляемой платформой машинного обучения, SageMaker абстрагирует навыки работы с программным обеспечением, позволяя инженерам по данным создавать и обучать нужные им модели машинного обучения с помощью интуитивно понятного и простого в использовании набора инструментов. Хотя они используют основные сильные стороны работы с данными и создания моделей машинного обучения, Amazon Sagemaker выполняет тяжелую работу, необходимую для их превращения в готовый к использованию API-интерфейс веб-сервиса.

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

Отлично, так что мечта сбылась, верно? давайте взглянем на реалистичный проект, где необходимы некоторые навыки MLOps. Вот знакомая история:

  1. Сначала определяем проблему
  2. Затем мы собираем некоторые данные и помечаем их
  3. Используя размеченные данные, инженеры по машинному обучению находят лучший набор функций, алгоритм и параметры для создания модели.
  4. Наконец, мы развертываем модель для прогнозирования.

Сделанный? Не в реальном мире. В реальном мире у нас, скорее всего, будет другое распределение данных в будущем, поэтому нам нужен конвейер, автоматизированное решение AWS для постоянного обновления модели машинного обучения на основе самых последних данных.

Взгляните на следующую архитектуру:

Страшный? давайте разберем его один за другим и объясним наш вариант использования. Что мы хотим сделать снова? Принимайте данные, преобразовывайте их, изменяйте, извлекайте, подготавливайте, автоматически подбирайте подходящую модель, находите гиперпараметры и развертывайте модель. Все без датасайентистов. Вот основные сервисы для этого, если мы читаем диаграмму слева направо.

  • Клиент потоковой передачи. Клиент потоковой передачи представляет собой *вставьте ваш любимый js-фреймворк* приложение, которое подписывается на некоторый источник потоковых данных в реальном времени для получения нужных данных. Затем приложение сохраняет данные в базе данных MongoDB и создает макет данных транзакции, которые мы позже будем использовать для целей ML. Вместе с экземпляром MongoDB приложение затем упаковывается и развертывается в виде док-контейнера в Amazon ECS на базе Fargate (что позволяет запускать контейнеры без управления какими-либо базовыми вычислительными ресурсами). В целях безопасности мы также используем AWS Secrets Manager для хранения учетных данных пользователя для IG.
  • S3 Notification + Object Watcher Lambda Function: всякий раз, когда потоковый клиент накапливает достаточно точек данных (скажем, 50000 завершенных транзакций), он экспортирует файлы CSV в Amazon S3. Эти CSV-файлы — то, что нужно будет изучить нашей модели. Как только объекты поступают в S3, лямбда-функция получает уведомление и запускает выполнение пошаговой функции.
  • Оркестровка пошаговых функций. Мы используем пошаговые функции AWS для оркестрации нашего ETL, обучения моделей, настройки и развертывания конвейера. Когда начинается выполнение пошаговой функции, она сначала запускает лямбда-функцию, средство проверки входных файлов, чтобы узнать, находятся ли файлы CSV в S3, и передать имена объектов и другие параметры последующим заданиям.
  • Задания Glue ETL. В рамках конвейера задание Glue ETL объединяет данные транзакций с ценовыми данными, извлекает функции, заполняет пропущенные значения и преобразует данные в двоичный формат, который требуется для Алгоритм ML, который мы выбрали для использования. Он также разбивает данные на наборы данных обучения, проверки и тестирования.
  • Обучение модели Sagemaker и настройка гиперпараметров: с помощью наборов данных обучения, проверки и тестирования, которые мы получаем от задания ETL, мы запускаем услугу Обучение модели Sagermaker для подготовки модели. Вы можете использовать любую модель, на самом деле есть специальные сложные модели, которые можно купить на торговой площадке AWS и вставить в Sagemaker. Sagemaker Hyperparameter Tuning – это полностью управляемый и автоматизированный сервис, который помогает нам находить лучшие гиперпараметры для заданного алгоритма машинного обучения путем обучения, настройки и переобучения моделей посредством многократного обучения моделей. рабочие места. Мы можем установить цель для каждого задания по настройке, например, хотим ли мы максимизировать точность, полноту или оценку F1 для двоичной классификации. К концу настройки сервис предложит лучшую модель в этом пакете, однако мы также можем получить доступ к метрикам алгоритма для выбора на основе наших собственных критериев выбора модели.
  • Размещение модели Sagemaker. После того, как мы выбрали лучшую модель (в демонстрации мы используем другую функцию Lambda, функцию выбора модели), мы можем развернуть модель и предоставить конечную точку с конечной точкой API, например, для вывод.

И это все! Эта управляемая событиями архитектура способна преобразовывать потоковые данные в небольшие пакеты и запускать процесс машинного обучения, как только будет собрано достаточное количество точек данных. Конвейер автоматизирует процесс обучения, настройки и развертывания модели. К концу конвейера модель за конечной точкой вывода будет «обновлена» последними обучающими данными. Нижестоящие приложения должны иметь возможность использовать эту конечную точку для получения более актуальных прогнозов.

Что мы узнали? Развертывание машинного обучения на AWS — это гораздо больше, чем использование специального сервиса, такого как Sagemaker. Необходимо организовать конвейеры, способные выполнять различные вычисления, прежде чем автоматически обновлять модель новейшими поступающими данными. Стиль МЛОпс.