Конвейеры Amazon SageMaker — это полностью управляемый сервис AWS для создания и управления рабочими процессами машинного обучения (ML). SageMaker Pipelines предлагает разработчикам приложений машинного обучения возможность управлять различными этапами рабочего процесса машинного обучения, включая загрузку данных, преобразование данных, обучение, настройку и развертывание. Вы можете использовать SageMaker Pipelines для координации заданий машинного обучения в SageMaker. интеграция с более крупной экосистемой AWS также позволяет вам использовать такие ресурсы, как AWS Lambda функции, Амазонка ЭМИ рабочие места и многое другое. Это позволяет вам создать настраиваемый и воспроизводимый конвейер для конкретных требований ваших рабочих процессов машинного обучения.
В этом посте мы предлагаем некоторые лучшие практики, позволяющие максимизировать ценность SageMaker Pipelines и сделать процесс разработки более простым. Мы также обсуждаем некоторые распространенные сценарии и шаблоны проектирования при построении конвейеров SageMaker и приводим примеры их решения.
Лучшие практики для конвейеров SageMaker
В этом разделе мы обсудим некоторые лучшие практики, которым можно следовать при разработке рабочих процессов с использованием SageMaker Pipelines. Их внедрение может улучшить процесс разработки и упростить оперативное управление SageMaker Pipelines.
Используйте Pipeline Session для отложенной загрузки конвейера
Конвейерная сессия включает отложенную инициализацию ресурсов конвейера (задания не запускаются до выполнения конвейера). PipelineSession
контекст наследует Сессия SageMaker и реализует удобные методы взаимодействия с другими сущностями и ресурсами SageMaker, такими как учебные задания, конечные точки, наборы входных данных в Простой сервис хранения Amazon (Amazon S3) и так далее. При определении конвейеров SageMaker вам следует использовать PipelineSession
в рамках обычного сеанса SageMaker:
Запускайте конвейеры в локальном режиме для экономичных и быстрых итераций во время разработки.
Вы можете запустить трубопровод в локальном режиме используя LocalPipelineSession
контекст. В этом режиме конвейер и задания выполняются локально с использованием ресурсов на локальном компьютере, а не ресурсов, управляемых SageMaker. Локальный режим обеспечивает экономичный способ итерации кода конвейера с меньшим подмножеством данных. После локального тестирования конвейера его можно масштабировать для работы с помощью PipelineSession контекст.
Управление конвейером SageMaker посредством управления версиями
Управление версиями артефактов и определений конвейеров является общим требованием жизненного цикла разработки. Вы можете создать несколько версий конвейера, назвав объекты конвейера уникальным префиксом или суффиксом, наиболее распространенным из которых является отметка времени, как показано в следующем коде:
Организация и отслеживание выполнения конвейера SageMaker посредством интеграции с SageMaker Experiments.
SageMaker Pipelines можно легко интегрировать с SageMaker эксперименты для организации и отслеживание работы трубопровода. Это достигается за счет указания Конфигурация КонвейераЭксперимента во время создания объект трубопровода. С помощью этого объекта конфигурации вы можете указать имя эксперимента и имя испытания. Детали запуска конвейера SageMaker организуются в соответствии с указанным экспериментом и пробной версией. Если вы не укажете имя эксперимента явно, в качестве имени эксперимента будет использоваться имя конвейера. Аналогично, если вы явно не укажете имя пробной версии, в качестве имени пробной версии или группы запуска будет использоваться идентификатор запуска конвейера. См. следующий код:
Безопасно запускайте конвейеры SageMaker в частном VPC.
Чтобы защитить рабочие нагрузки машинного обучения, рекомендуется развертывать задания, организованные SageMaker Pipelines, в конфигурации безопасной сети в частном VPC, частных подсетях и группах безопасности. Чтобы обеспечить и обеспечить использование этой безопасной среды, вы можете реализовать следующее: Управление идентификацией и доступом AWS (IAM) политика для Исполнительная роль SageMaker (это роль, которую берет на себя конвейер во время своей работы). Вы также можете добавить политику для запуска заданий, организованных SageMaker Pipelines, в режиме сетевой изоляции.
Пример реализации конвейера с этими элементами управления безопасностью см. Управление заданиями, регистрация моделей и непрерывное развертывание с помощью Amazon SageMaker в безопасной среде.
Отслеживайте стоимость прогонов конвейера с помощью тегов
Использование конвейеров SageMaker само по себе бесплатно; вы платите за вычислительные ресурсы и ресурсы хранения, которые вы запускаете в рамках отдельных этапов конвейера, таких как обработка, обучение и пакетный вывод. Чтобы агрегировать затраты на запуск конвейера, вы можете включить имеют теги на каждом этапе конвейера, на котором создается ресурс. Затем на эти теги можно ссылаться в обозревателе затрат для фильтрации и агрегирования общей стоимости работы конвейера, как показано в следующем примере:
В обозревателе затрат теперь можно получить стоимость, отфильтрованную по тегу:
Шаблоны проектирования для некоторых распространенных сценариев
В этом разделе мы обсуждаем шаблоны проектирования для некоторых распространенных случаев использования конвейеров SageMaker.
Запустите облегченную функцию Python, используя шаг Lambda.
Функции Python повсеместно присутствуют в рабочих процессах машинного обучения; они используются при предварительной и постобработке, оценке и т. д. Lambda — это бессерверная вычислительная служба, которая позволяет запускать код без подготовки серверов и управления ими. С помощью Lambda вы можете запускать код на предпочитаемом вами языке, включая Python. Вы можете использовать это для запуска собственного кода Python как части вашего конвейера. Лямбда-шаг позволяет запускать функции Lambda как часть конвейера SageMaker. Начните со следующего кода:
Создайте лямбда-функцию, используя Помощник Lambda для SageMaker Python SDK:
Вызовите шаг Lambda:
Передача данных между шагами
Входные данные для шага конвейера — это либо доступное расположение данных, либо данные, созданные одним из предыдущих шагов конвейера. Вы можете предоставить эту информацию в виде ProcessingInput
параметр. Давайте рассмотрим несколько сценариев использования ProcessingInput.
Сценарий 1. Передайте выходные данные (примитивные типы данных) шага Lambda на шаг обработки.
Примитивные типы данных относятся к скалярным типам данных, таким как строка, целое число, логическое значение и число с плавающей запятой.
Следующий фрагмент кода определяет лямбда-функцию, которая возвращает словарь переменных с примитивными типами данных. Код вашей функции Lambda вернет JSON пар ключ-значение при вызове на этапе Lambda в конвейере SageMaker.
Затем в определении конвейера вы можете определить параметры конвейера SageMaker, относящиеся к определенному типу данных, и установить переменную для вывода функции Lambda:
Сценарий 2. Передайте выходные данные (непримитивные типы данных) шага Lambda на шаг обработки.
Непримитивные типы данных относятся к нескалярным типам данных (например, NamedTuple
). У вас может возникнуть сценарий, когда вам нужно вернуть непримитивный тип данных из лямбда-функции. Для этого вам необходимо преобразовать непримитивный тип данных в строку:
Затем вы можете использовать эту строку в качестве входных данных для следующего шага конвейера. Чтобы использовать именованный кортеж в коде, используйте eval()
для анализа выражения Python в строке:
Сценарий 3. Передайте выходные данные шага через файл свойств.
Вы также можете сохранить выходные данные этапа обработки в файле. JSON-файл свойства для последующего потребления в ConditionStep
или другой ProcessingStep
, Вы можете использовать Функция JSONGet запросить файл свойств, Смотрите следующий код:
Предположим, что содержимое файла свойств было следующим:
В этом случае можно запросить определенное значение и использовать его на последующих шагах с помощью функции JsonGet:
Параметризация переменной в определении конвейера
Часто желательно параметризовать переменные, чтобы их можно было использовать во время выполнения, например, для создания URI S3. Вы можете параметризовать строку так, чтобы она оценивалась во время выполнения, используя Join
функция. В следующем фрагменте кода показано, как определить переменную с помощью Join
и используйте ее для установки местоположения вывода на этапе обработки:
Запуск параллельного кода над итерируемым объектом
Некоторые рабочие процессы машинного обучения выполняют код параллельно в циклах for над статическим набором элементов ( итерируемый). Это может быть либо один и тот же код, который запускается с разными данными, либо другой фрагмент кода, который необходимо запускать для каждого элемента. Например, если у вас очень большое количество строк в файле и вы хотите ускорить время обработки, вы можете положиться на первый шаблон. Если вы хотите выполнить различные преобразования для определенных подгрупп данных, вам, возможно, придется запустить отдельный фрагмент кода для каждой подгруппы данных. Следующие два сценария иллюстрируют, как можно спроектировать конвейеры SageMaker для этой цели.
Сценарий 1. Реализация логики обработки различных частей данных.
Вы можете запустить задание обработки с несколькими экземплярами (установив instance_count
до значения больше 1). При этом входные данные из Amazon S3 распределяются по всем экземплярам обработки. Затем вы можете использовать сценарий (process.py) для работы с определенной частью данных на основе номера экземпляра и соответствующего элемента в списке элементов. Логика программирования в Process.py может быть написана таким образом, что в зависимости от списка элементов, которые он обрабатывает, запускается другой модуль или фрагмент кода. В следующем примере определяется процессор, который можно использовать на этапе обработки:
Сценарий 2. Выполнение последовательности шагов.
Если у вас есть последовательность шагов, которые необходимо выполнять параллельно, вы можете определить каждую последовательность как независимый конвейер SageMaker. Запуск этих конвейеров SageMaker затем можно запустить с помощью функции Lambda, которая является частью LambdaStep
в родительском конвейере. Следующий фрагмент кода иллюстрирует сценарий, в котором запускаются два разных запуска конвейера SageMaker:
Заключение
В этом посте мы обсудили некоторые лучшие практики эффективного использования и обслуживания конвейеров SageMaker. Мы также предоставили определенные шаблоны, которые вы можете использовать при разработке рабочих процессов с помощью SageMaker Pipelines независимо от того, создаете ли вы новые конвейеры или переносите рабочие процессы машинного обучения из других инструментов оркестрации. Чтобы начать работу с SageMaker Pipelines для оркестрации рабочих процессов ML, см. примеры кода на GitHub и Конвейеры построения моделей Amazon SageMaker.
Об авторах
Пинак Паниграхи работает с клиентами над созданием решений на основе машинного обучения для решения стратегических бизнес-задач на AWS. Когда он не занят машинным обучением, его можно найти в походе, читающим книгу или смотрящим спортивные состязания.
Минакшисундарам Тандавараян работает в AWS специалистом по AI/ML. Он увлечен проектированием, созданием и продвижением данных и аналитики, ориентированных на человека. Мина занимается разработкой устойчивых систем, обеспечивающих измеримые конкурентные преимущества для стратегических клиентов AWS. Мина является связующим звеном, дизайнерским мыслителем и стремится вывести бизнес на новые способы работы с помощью инноваций, инкубации и демократизации.
- SEO-контент и PR-распределение. Получите усиление сегодня.
- PlatoData.Network Вертикальный генеративный ИИ. Расширьте возможности себя. Доступ здесь.
- ПлатонАйСтрим. Интеллект Web3. Расширение знаний. Доступ здесь.
- ПлатонЭСГ. Автомобили / электромобили, Углерод, чистые технологии, Энергия, Окружающая среда, Солнечная, Управление отходами. Доступ здесь.
- ПлатонЗдоровье. Биотехнологии и клинические исследования. Доступ здесь.
- ЧартПрайм. Улучшите свою торговую игру с ChartPrime. Доступ здесь.
- Смещения блоков. Модернизация права собственности на экологические компенсации. Доступ здесь.
- Источник: https://aws.amazon.com/blogs/machine-learning/best-practices-and-design-patterns-for-building-machine-learning-workflows-with-amazon-sagemaker-pipelines/
- :имеет
- :является
- :нет
- :куда
- $UP
- 1
- 100
- 11
- 13
- 15%
- 150
- 16
- 17
- 19
- 20
- 22
- 28
- 7
- 8
- 9
- a
- способность
- доступ
- доступной
- достигнутый
- Действие
- Добавить
- адресация
- принять
- Принятие
- Преимущества
- После
- совокупный
- Все
- позволяет
- причислены
- Amazon
- Создатель мудреца Амазонки
- Конвейеры Amazon SageMaker
- Amazon Web Services
- an
- аналитика
- и
- Другой
- API
- Применение
- соответствующий
- МЫ
- AS
- предполагать
- предполагается,
- At
- авторинга
- доступен
- AWS
- основанный
- BE
- не являетесь
- ЛУЧШЕЕ
- лучшие практики
- между
- книга
- строить
- Строительство
- бизнес
- by
- CAN
- случаев
- случаев
- определенный
- клиент
- код
- Коллекции
- Общий
- конкурентоспособный
- Вычисление
- состояние
- Конфигурация
- строить
- потребление
- содержание
- контекст
- (CIJ)
- контрольная
- Удобно
- конвертировать
- соответствующий
- Цена
- рентабельным
- Расходы
- Создайте
- создает
- Создающий
- изготовленный на заказ
- Клиенты
- подгонянный
- данным
- Наборы данных
- расшифровывать
- определять
- Определяет
- определяющий
- определение
- Определения
- доставить
- демократизация
- в зависимости
- развертывание
- развертывание
- Проект
- шаблоны проектирования
- проектирование
- подробнее
- застройщиков
- развивающийся
- Развитие
- различный
- размеры
- обсуждать
- обсуждается
- do
- Dont
- управлять
- управляемый
- в течение
- каждый
- легко
- эффект
- эффективный
- или
- элемент
- позволяет
- конец
- обеспечивать соблюдение
- обеспечивать
- лиц
- Окружающая среда
- оценивается
- оценка
- События
- Каждая
- пример
- Примеры
- выполнение
- опыт
- Впечатления
- эксперимент
- исследователь
- выражение
- извлечение
- несколько
- Файл
- фильтр
- Поплавок
- следует
- после
- Что касается
- Бывший
- найденный
- Бесплатно
- от
- полностью
- функция
- Функции
- генерируется
- получить
- большой
- группы
- Группы
- Есть
- he
- Поход
- Как
- How To
- HTML
- HTTP
- HTTPS
- ID
- Личность
- if
- иллюстрирует
- осуществлять
- реализация
- инвентарь
- Импортировать
- улучшать
- in
- включают
- включает в себя
- В том числе
- ИНКУБАЦИЯ
- независимые
- individual
- информация
- Инновации
- вход
- пример
- вместо
- интегрированный
- Интегрируя
- взаимодействующий
- в
- вызывается
- изоляция
- IT
- пункты
- итерации
- ЕГО
- саму трезвость
- работа
- Джобс
- JSON
- Основные
- язык
- большой
- больше
- изучение
- Lets
- Жизненный цикл
- легкий
- такое как
- Список
- погрузка
- локальным
- в местном масштабе
- расположение
- логика
- посмотреть
- машина
- обучение с помощью машины
- техническое обслуживание
- сделать
- управляемого
- управление
- управления
- Максимизировать
- Май..
- методы
- может быть
- мигрирующий
- ML
- режим
- модель
- Модули
- ежемесячно
- БОЛЕЕ
- самых
- с разными
- имя
- Названный
- именования
- Необходимость
- потребности
- сеть
- Новые
- сейчас
- номер
- объект
- объекты
- получать
- of
- Предложения
- .
- on
- ONE
- оперативный
- or
- организовал
- оркестровка
- Организованный
- организации
- Другое
- выходной
- за
- пар
- Параллельные
- параметр
- параметры
- часть
- pass
- страсть
- шаблон
- паттеранами
- ОПЛАТИТЬ
- для
- Выполнять
- кусок
- трубопровод
- Часть
- Платон
- Платон Интеллектуальные данные
- ПлатонДанные
- политика
- часть
- После
- практика
- практиками
- привилегированный
- предыдущий
- примитивный
- частная
- проблемам
- процесс
- Процессы
- обработка
- процессор
- Программирование
- продвижении
- свойства
- собственность
- обеспечивать
- при условии
- приводит
- цель
- Питон
- САЙТ
- Reading
- относиться
- Регистрация
- регулярный
- полагаться
- требование
- Требования
- ресурс
- Полезные ресурсы
- ответ
- возвращают
- возвращение
- Возвращает
- Роли
- Run
- работает
- s
- sagemaker
- Конвейеры SageMaker
- то же
- сценарий
- Сценарии
- скрипт
- бесшовные
- Раздел
- безопасный
- безопасность
- посмотреть
- Последовательность
- Serverless
- Серверы
- обслуживание
- Услуги
- Сессия
- набор
- установка
- должен
- показанный
- Шоу
- Аналогичным образом
- просто
- меньше
- отрывок
- So
- Решения
- РЕШАТЬ
- некоторые
- специалист
- конкретный
- указанный
- скорость
- Вращение
- Спорт
- Начало
- и политические лидеры
- заявление
- Шаг
- Шаги
- диск
- магазин
- Стратегический
- стратегический бизнес
- упорядочить
- строка
- стремится
- Структура
- подсеть
- последующее
- такие
- комфортного
- системы
- TAG
- с
- проверенный
- чем
- который
- Ассоциация
- Их
- тогда
- Там.
- Эти
- они
- мыслитель
- этой
- Через
- время
- отметка времени
- в
- инструменты
- Всего
- трек
- Train
- Обучение
- трансформация
- преобразований
- суд
- вызвать
- срабатывает
- правда
- два
- напишите
- Типы
- под
- созданного
- до
- Применение
- использование
- используемый
- использования
- через
- ценностное
- Наши ценности
- переменная
- версия
- версии
- очень
- хотеть
- наблюдение
- Путь..
- способы
- we
- Web
- веб-сервисы
- были
- когда
- будь то
- в то время как
- будете
- в
- без
- Работа
- рабочий
- Рабочие процессы
- работает
- работает
- Мир
- письменный
- Ты
- ВАШЕ
- зефирнет