Amazon SageMaker — это комплексная платформа машинного обучения (ML) с широким набором функций для приема, преобразования и измерения систематических ошибок в данных, а также для обучения, развертывания и управления моделями в производственной среде с использованием лучших в своем классе вычислений и сервисов. таких как Amazon SageMaker Data Wrangler, Amazon SageMaker Studio, Amazon SageMaker Canvas, Amazon SageMaker Model Registry, Amazon SageMaker Feature Store, Amazon SageMaker Pipelines, Amazon SageMaker Model Monitor и Amazon SageMaker Clarify. Многие организации выбирают SageMaker в качестве своей платформы машинного обучения, поскольку она предоставляет общий набор инструментов для разработчиков и специалистов по данным. Ряд независимых поставщиков программного обеспечения (ISV) AWS уже создали интеграцию для пользователей своих платформ «программное обеспечение как услуга» (SaaS), чтобы использовать SageMaker и его различные функции, включая обучение, развертывание и модельный реестр.
В этом посте мы рассмотрим преимущества интеграции платформ SaaS с SageMaker, диапазон возможных интеграций и процесс разработки этих интеграций. Мы также подробно изучаем наиболее распространенные архитектуры и ресурсы AWS, чтобы облегчить эти интеграции. Это предназначено для ускорения выхода на рынок для независимых поставщиков программного обеспечения и других поставщиков SaaS, создающих аналогичные интеграции, и вдохновить клиентов, которые являются пользователями платформ SaaS, сотрудничать с поставщиками SaaS в этих интеграциях.
Преимущества интеграции с SageMaker
Поставщики SaaS получают ряд преимуществ от интеграции своих платформ SaaS с SageMaker:
- Пользователи платформы SaaS могут воспользоваться преимуществами комплексной платформы машинного обучения в SageMaker.
- Пользователи могут создавать модели машинного обучения с данными, которые находятся на платформе SaaS или за ее пределами, и использовать эти модели машинного обучения.
- Он предоставляет пользователям бесшовный интерфейс между платформой SaaS и SageMaker.
- Пользователи могут использовать базовые модели, доступные в Amazon SageMaker JumpStart, для создания генеративных приложений ИИ.
- Организации могут стандартизировать SageMaker
- Поставщики SaaS могут сосредоточиться на своей основной функциональности и предложить SageMaker для разработки моделей машинного обучения.
- Он предоставляет поставщикам SaaS основу для создания совместных решений и выхода на рынок с AWS.
Обзор SageMaker и варианты интеграции
В SageMaker есть инструменты для каждого этапа жизненного цикла машинного обучения. Платформы SaaS могут интегрироваться с SageMaker на протяжении всего жизненного цикла машинного обучения, от маркировки и подготовки данных до обучения моделей, размещения, мониторинга и управления моделями с различными компонентами, как показано на следующем рисунке. В зависимости от потребностей все без исключения части жизненного цикла машинного обучения могут выполняться либо в учетной записи AWS клиента, либо в учетной записи AWS SaaS, а данные и модели могут совместно использоваться учетными записями с помощью политик AWS Identity and Access Management (IAM) или сторонних поставщиков. средства пользовательского доступа. Такая гибкость интеграции делает SageMaker идеальной платформой для стандартизации клиентов и поставщиков SaaS.
Процесс интеграции и архитектуры
В этом разделе мы разобьем процесс интеграции на четыре основных этапа и рассмотрим общие архитектуры. Обратите внимание, что в дополнение к этим могут быть и другие точки интеграции, но они менее распространены.
- Доступ к данным – Как осуществляется доступ к данным на платформе SaaS из SageMaker.
- Обучение модели – Как обучается модель
- Развертывание модели и артефакты – Где развернута модель и какие артефакты производятся
- Вывод модели – Как вывод происходит на платформе SaaS
На диаграммах в следующих разделах предполагается, что SageMaker запущен в учетной записи клиента AWS. Большинство объясненных вариантов также применимы, если SageMaker работает в учетной записи SaaS AWS. В некоторых случаях ISV может развернуть свое программное обеспечение в учетной записи AWS клиента. Обычно это происходит в выделенной учетной записи клиента AWS, что означает, что по-прежнему должен быть доступ между учетными записями к учетной записи клиента AWS, в которой работает SageMaker.
Существует несколько различных способов аутентификации между учетными записями AWS при доступе к данным на платформе SaaS из SageMaker и при вызове модели машинного обучения с платформы SaaS. Рекомендуемый метод — использовать роли IAM. В качестве альтернативы можно использовать ключи доступа AWS, состоящие из идентификатора ключа доступа и секретного ключа доступа.
Доступ к данным
Существует несколько вариантов доступа к данным на платформе SaaS из SageMaker. Доступ к данным можно получить из блокнота SageMaker, SageMaker Data Wrangler, где пользователи могут подготовить данные для машинного обучения, или SageMaker Canvas. Наиболее распространенные варианты доступа к данным:
- Встроенный коннектор SageMaker Data Wrangler – Коннектор SageMaker Data Wrangler позволяет импортировать данные с платформы SaaS для подготовки к обучению модели машинного обучения. Коннектор разработан совместно AWS и поставщиком SaaS. Текущие соединители платформы SaaS включают Databricks и Snowflake.
- Amazon Athena Federated Query для платформы SaaS – Федеративные запросы позволяют пользователям запрашивать платформу из ноутбука SageMaker через Amazon Athena с помощью настраиваемого соединителя, разработанного поставщиком SaaS.
- Amazon AppFlow – С помощью Amazon AppFlow вы можете использовать настраиваемый коннектор для извлечения данных в Amazon Simple Storage Service (Amazon S3), к которым впоследствии можно получить доступ из SageMaker. Коннектор для платформы SaaS может быть разработан AWS или поставщиком SaaS. Пакет Custom Connector SDK с открытым исходным кодом позволяет разрабатывать частные, общие или общедоступные соединители с использованием Python или Java.
- SDK платформы SaaS – Если платформа SaaS имеет SDK (Software Development Kit), например Python SDK, его можно использовать для доступа к данным непосредственно из блокнота SageMaker.
- Другие варианты – В дополнение к этому могут быть и другие варианты в зависимости от того, предоставляет ли поставщик SaaS свои данные через API, файлы или агент. Агент можно установить в Amazon Elastic Compute Cloud (Amazon EC2) или AWS Lambda. В качестве альтернативы для передачи данных можно использовать такой сервис, как AWS Glue или сторонний инструмент извлечения, преобразования и загрузки (ETL).
Следующая диаграмма иллюстрирует архитектуру параметров доступа к данным.
Обучение модели
Модель может обучаться в SageMaker Studio специалистом по данным, с помощью Amazon SageMaker Autopilot — специалистом, не занимающимся данными, или в SageMaker Canvas — бизнес-аналитиком. SageMaker Autopilot избавляет от тяжелой работы по созданию моделей машинного обучения, включая разработку функций, выбор алгоритма и настройку гиперпараметров, а также относительно просто интегрировать его непосредственно в платформу SaaS. SageMaker Canvas предоставляет визуальный интерфейс без написания кода для обучения моделей машинного обучения.
Кроме того, специалисты по данным могут использовать предварительно обученные модели, доступные в SageMaker JumpStart, в том числе базовые модели из таких источников, как Alexa, AI21 Labs, Hugging Face и Stability AI, и настраивать их для собственных сценариев использования генеративного ИИ.
Кроме того, модель можно обучить с помощью стороннего или партнерского инструмента, службы и инфраструктуры, включая локальные ресурсы, при условии, что артефакты модели доступны и удобочитаемы.
На следующей диаграмме показаны эти варианты.
Развертывание модели и артефакты
После того, как вы обучили и протестировали модель, вы можете либо развернуть ее на конечной точке модели SageMaker в учетной записи клиента, либо экспортировать его из SageMaker и импортируйте его в хранилище платформы SaaS. Модель можно хранить и импортировать в стандартных форматах, поддерживаемых распространенными платформами машинного обучения, такими как pickle, joblib и ONNX (Открытая биржа нейронных сетей).
Если модель машинного обучения развернута в конечной точке модели SageMaker, дополнительные метаданные модели могут храниться в реестре моделей SageMaker, карточках моделей SageMaker или в файле в корзине S3. Это может быть версия модели, входные и выходные данные модели, метрики модели, дата создания модели, спецификация вывода, информация о происхождении данных и многое другое. Если в пакете модели нет доступного свойства, данные можно сохранить в виде настраиваемых метаданных или в файле S3.
Создание таких метаданных может помочь поставщикам SaaS более эффективно управлять сквозным жизненным циклом модели машинного обучения. Эту информацию можно синхронизировать с журналом модели на платформе SaaS и использовать для отслеживания изменений и обновлений модели машинного обучения. Впоследствии этот журнал можно использовать для определения необходимости обновления нижестоящих данных и приложений, использующих эту модель машинного обучения на платформе SaaS.
Следующая диаграмма иллюстрирует эту архитектуру.
Вывод модели
SageMaker предлагает четыре варианта вывода модели машинного обучения: вывод в реальном времени, бессерверный вывод, асинхронный вывод и пакетное преобразование. Для первых трех модель развертывается в конечной точке модели SageMaker, а платформа SaaS вызывает модель с помощью AWS SDK. Рекомендуемый вариант — использовать Python SDK. Шаблон вывода для каждого из них похож в том, что используются методы предсказателя предсказать () или предсказать_асинк (). Доступ между учетными записями может быть достигнут с помощью доступа на основе ролей.
Также можно изолировать серверную часть с помощью Amazon API Gateway, который вызывает конечную точку через функцию Lambda, работающую в защищенной частной сети.
Для пакетное преобразование, данные с платформы SaaS сначала необходимо экспортировать в пакетном режиме в корзину S3 в учетной записи клиента AWS, после чего на основе этих данных выполняется пакетный вывод. Вывод делается путем создания задания или объекта преобразователя, а затем вызова метода transform() с расположением данных в S3. Результаты импортируются обратно на платформу SaaS в пакетном режиме в виде набора данных и присоединяются к другим наборам данных на платформе в рамках задания пакетного конвейера.
Другой вариант логического вывода — сделать это непосредственно в вычислительном кластере учетной записи SaaS. Это может быть в случае, когда модель была импортирована на платформу SaaS. В этом случае поставщики SaaS могут выбирать из целого ряда инстансов EC2, оптимизированных для вывода машинного обучения.
На следующей диаграмме показаны эти варианты.
Пример интеграции
Несколько независимых поставщиков программного обеспечения создали интеграцию между своими платформами SaaS и SageMaker. Чтобы узнать больше о некоторых примерах интеграции, обратитесь к следующему:
Заключение
В этом посте мы объяснили, почему и как поставщики SaaS должны интегрировать SageMaker со своими платформами SaaS, разбив процесс на четыре части и охватив общие архитектуры интеграции. Поставщики SaaS, желающие создать интеграцию с SageMaker, могут использовать эти архитектуры. Если есть какие-либо особые требования, выходящие за рамки того, что было рассмотрено в этом посте, в том числе в отношении других компонентов SageMaker, свяжитесь со своими командами по работе с клиентами AWS. После создания и проверки интеграции партнеры-независимые поставщики программного обеспечения могут присоединиться к программе AWS Service Ready Program для SageMaker и получить ряд преимуществ.
Мы также просим клиентов, которые являются пользователями платформ SaaS, заявить о своей заинтересованности в интеграции с Amazon SageMaker со своими командами по работе с клиентами AWS, так как это может вдохновить и ускорить разработку для поставщиков SaaS.
Об авторах
Мехмет Баккалоглу является главным архитектором решений в AWS, специализируясь на аналитике данных, искусственном интеллекте и машинном обучении, а также на независимых поставщиках программного обеспечения.
Радж Кадияла является главным евангелистом AI/ML в AWS.