Введение:

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

· Полное управление:предложения AWS Batch позволяют управлять вашей инфраструктурой и масштабировать ее. Как часть, нет необходимости устанавливать программное обеспечение или управлять сервером.

· Интеграция с AWS: AWS Batch изначально взаимодействует с платформами AWS и безопасно взаимодействует с другими сервисами AWS, такими как Amazon S3, Dynamo DB, Amazon Recognition и т. д.

· Выделение ресурсов с оптимизацией затрат: AWS Batch автоматически выделяет вычислительные ресурсы с помощью EC2 или EC2 Spot.

Давайте посмотрим, как AWS Batch можно использовать для моделей машинного обучения и как их можно интегрировать в детали.

Основные компоненты AWS Batch:

На рис. 1 показаны основные компоненты, используемые в AWS Batch.

Планировщик. Планировщик можно назвать сердцем AWS Batch. Это компонент, который оценивает, когда, где и как запускать задания, отправленные в очередь заданий. Задание выполняется примерно в том порядке, в котором они отправляются, если соблюдены все зависимости от других заданий.

Задания. Задания — это единицы работы, выполняемые AWS Batch. Они выполняются как контейнерное приложение, работающее в EC2. На контейнерные задания можно ссылаться как на образ контейнера с командами или параметрами. Пользователи могут импортировать образ контейнера в виде zip-файла в контейнер Amazon Linux и запускать его. Задания могут быть зависимыми и независимыми друг от друга. Эти задания можно рассматривать как экземпляры машинного обучения, работающие внутри всей модели машинного обучения. Планировщик выполняет работу по запуску каждого задания машинного обучения в зависимости от их возникновения и потребностей в соответствующей ситуации.

Состояния задания:

На рис. 2 показаны различные состояния задания. Давайте посмотрим краткое объяснение состояний задания.

· Отправлено: задания приняты в очередь, но еще не оценены. Эти задания должны ждать, пока они не будут переведены в работоспособное состояние.

· Ожидание. Состояние ожидания показывает, что задание зависит от других заданий, которые еще не завершены. Приходится ждать, пока все работы не будут выполнены.

· Выполняемый: задания, доступные в рабочем состоянии, были оценены планировщиком и готовы к запуску.

· Запуск. В начальном состоянии задание находится в процессе планирования вычислительных ресурсов.

· Выполняется. В состоянии «Выполняется» задание выполняется в данный момент.

· Успешно: после запуска задание завершилось с кодом выхода 0.

· Failed. Состояние Failed означает, что задание было завершено с ненулевым кодом выхода или задание было отменено или прекращено.

Задания для массивов:

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

Array Jobs — это эффективный способ запуска:

· Параметрические развертки

· Симуляторы Монте-Карло

· Обработка большой коллекции объектов

Очереди заданий:

Задания машинного обучения отправляются в очереди заданий. Задания находятся в очередях заданий до тех пор, пока их нельзя будет запланировать для вычислительного ресурса. Информация о выполненных заданиях сохраняется в очереди на 24 часа. Задания, присутствующие в очередях заданий, планируются на основе FCFS (первым пришел - первым обслужен) или на основе приоритета.

Вычислительные среды:

Очереди заданий сопоставляются с одной или несколькими вычислительными средами, содержащими экземпляры EC2, используемые для выполнения пакетных заданий в контейнерах. Существует два типа вычислительных сред. Они есть

· Управляемая компьютерная среда. Этот тип позволяет описать бизнес-требования, в которых указаны типы экземпляров, минимальное или максимальное желаемое количество виртуальных ЦП (VCPU) и спотовая ставка EC2 в виде % по требованию. Важно отметить, что агент ECS (Elastic Container Service) позволяет экземплярам контейнера подключаться к кластеру на оптимизированном AMI, но агент контейнера ECS может устанавливать экземпляры на экземпляре Amazon EC2.

· Неуправляемая вычислительная среда. В неуправляемой вычислительной среде вместо предписанных ресурсов можно использовать собственные экземпляры и ресурсы. Эти экземпляры должны включать агент ECS и запускать поддерживаемые версии Linux и Docker. В рамках пакета AWS затем создается кластер Amazon ECS, который может принимать созданные инстансы и запускать свои собственные. Задания можно планировать, как только экземпляры будут работоспособны и зарегистрированы в агенте ECS.

В рамках машинного обучения ресурсы очень важны для развертывания модели машинного обучения и настройки гиперпараметров, необходимых для обучения и тестирования созданной модели машинного обучения. При создании модели для вашей цели или при создании новой модели объем ресурсов, необходимых для обучения и тестирования модели, для этого неизвестен. Поэтому для запуска экземпляров машинного обучения можно использовать неуправляемую вычислительную среду путем преобразования экземпляров машинного обучения в контейнерные пакетные задания, которые агент ECS позволит подключить к вашему кластеру. Как правило, бизнес-прецеденты имеют заранее определенные ресурсы, которые необходимо использовать. У них есть предписанное количество ресурсов, которые будут использоваться для контейнерных пакетных заданий. Для бизнес-применений, таких как обнаружение аномалий в управлении цепочками поставок с использованием машинного обучения, можно использовать управляемую вычислительную среду.

Определения работы:

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

· Роль IAM, связанная с заданием

· Требования к VCPU и памяти

· Стратегия повтора

· Точки крепления

· Свойства контейнера

· Переменная среды

Рабочие процессы, конвейеры и зависимости заданий:

Задания могут выражать зависимость от успешного завершения других заданий или определенных элементов задания массива. Существует два типа механизмов рабочего процесса и языков для отправки заданий. Они есть:

· Операторы на основе потока просто отправляют задания последовательно.

· Системы на основе DAG (направленный ациклический граф) отправляют множество заданий одновременно и могут идентифицировать другие зависимости заданий.

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

Модели зависимости задания массива:

На рис. 3, 4, 5, 6 и 7 показаны различные типы моделей зависимостей.

Но ответ на вопрос еще не решен. Как экземпляры EC2 вычисляют ресурсы для заданий? Экземпляры EC2 могут брать один контейнер для пакетных заданий и запускать его или могут иметь разные контейнеры в зависимости от количества заданий AWS, которые были сгруппированы на основе функциональных возможностей. Многоузловые параллельные задания (MNP) позволяют AWS выполнять пакетные задания, охватывающие несколько экземпляров EC2. Их можно интегрировать с адаптером Elastic Fabric для уменьшения задержки между узлами. Экземпляры EC2 могут взаимодействовать друг с другом.

Вывод:

AWS Batch — это полностью управляемый сервис, который можно интегрировать с моделями машинного обучения для масштабирования ресурсов в зависимости от варианта использования и который можно развернуть по низкой цене.