Поймете, как его создать, запустить с контейнером по умолчанию и даже с пользовательским контейнером (контейнер обработки BYOC)

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

Все мы знаем, что такое обработка и какое значение имеет проект ML/DL. и мы также сделали массу обработки данных. Так что же в этом нового?

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

Итак, вот вам и задачи обработки, предоставляемые Sagemaker. Что он делает, так это... он принимает несколько вещей, таких как ввод, и возвращает некоторый результат (обработанные данные), да, вот так просто.

Что все мы здесь увидим.

  1. Что такое Sagemaker Processing Job
  2. Что такое BYOC
  3. Что такое задание обработки BYOC
  4. Код для задания обработки BYOC
  5. Где его использовать?

Что такое задание обработки Sagemaker?

Для запуска всех рабочих нагрузок обработки, таких как разработка функций, проверка данных и другие, вы можете использовать задание обработки sagemaker. После того, как задание создано и протестировано, мы можем использовать его в любых рабочих процессах, что сэкономит нам массу времени и усилий.

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

Итак, давайте посмотрим, что предлагает sagemaker, чтобы использовать эту потрясающую работу.

Sagemaker предоставляет несколько методов для использования. т. е. Процессор, ScriptProcessor, FrameworkProcessor, SKLearnProcessor,SageMakerClarifyProcessor. Есть и другие, такие как SparkJarProcessor, PySparkProcessor, но они предназначены для более поздних блогов.

Что такое BYOC

BYOC расшифровывается как «Принеси свой собственный контейнер». Вот как разработчик получает полный контроль над контейнером в вашем рабочем процессе.

Задание обработки BYOC

Это изображение объясняет разные процессоры, а также то, что обрабатывает sagemaker и над чем вам нужно работать, потому что, когда мы начинаем работать над задачей обработки sagemaker, это сильно сбивает с толку. Итак, позвольте мне представить все эти модули/зависимости, чтобы мы могли эффективно их использовать.

Процессор:

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

Структура:

Для этого примера я взял очень простой скрипт обработки. и иметь файл requirement.txt для установки всех необходимых модулей/зависимостей.

Processing.py:

Это пример сценария обработки, взятый из руководства по примерам AWS. census-income.csv используется в качестве данных для сценария обработки, и это ключевые моменты, которые были выполнены в этом сценарии. здесь вы можете обратиться.

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

Файл Docker:

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

Создание и отправка в ECR:

с этим мы можем создать образ и отправить его в ECR. Но основная работа будет заключаться в том, чтобы знать, когда мы можем использовать это, а когда не должны.

Как его использовать:

Вот как вы создаете свой первый контейнер BYOC для задания обработки.

Когда вы должны использовать это: Как мы видели, для запуска процессора просто требуется image_uri, поэтому это очень полезно, когда мы можем использовать его каким-то автоматическим способом, и вы догадались, что это r8.. то есть в CICD Трубопроводы.

Потому что, как только мы создали образ, мы можем использовать его n раз без каких-либо изменений. Так что в этих случаях использование Processor очень полезно.

Когда вам не следует использовать это: Как раз наоборот... когда нам нужно выполнить много экспериментов и ваш код обработки, возможно, не лучшая идея использовать Processor. Для этих вещей у sagemaker есть прямое решение, то есть ScriptProcessor.

Чтобы дать представление, выделенные узлы конвейера можно использовать как Proecssor, FrameworkProecssor, ScriptProcessor или Sklearn, если вы используете процессор на основе sklearn. И не смущайтесь, когда я говорю процессор, так как на этапе сбора данных мы всегда можем агрегировать данные, и мы можем выполнять определенные задачи (не совсем обработку, такую ​​как кодирование или что-то еще…).

Скриптпроцессор:

ScriptProcessor помогает нам решить эту проблему, когда нам просто нужно поработать над скриптом обработки и докером, но с настройкой выполнения. Поскольку скрипт не будет присутствовать внутри докера, по сравнению с предыдущим файлом докера мало изменений.

Файл Docker:

Как видите, мы просто импортируем все модули/зависимости, которые нам нужно запустить для файла обработки, здесь нет жестко запрограммированного файла в качестве точки входа, поэтому мы можем отправить любой файл обработки для запуска этого файла докеров.

Мы можем создавать и отправлять образы так же, как и с Processor.

Как его использовать:

Как мы видим, мы передаем файл, из которого запускается этот script_processor, так что это очень удобно, когда нам нужно выполнить какую-то работу, где мы можем напрямую обновить код.

Это не значит, что мы не можем использовать этот обработчик сценариев в CICD, мы можем, просто это будет небольшой обходной путь для новых изменений и обновлений файла processing.py.

SKLearnProcessor/FrameworkProcessor:

Это самый простой способ взглянуть на работу, обрабатывающую Sagemaker, где sagemaker обрабатывает образ, выполнение и модули для вас. Если вы хотите использовать свой собственный фреймворк вместо sklearn, вам нужно сделать это с помощью Sagemaker.Estimator.

И если у вас есть сценарий обработки на основе sklearn, вы можете напрямую использовать Sagemaker.SklearnProcessor, и он вызовет задание обработки, как указано выше.

Вот как вы можете активировать процессор Framework, обратитесь здесь

Вот как вы можете вызвать SKlearnProcessor обратитесь сюда

Если вы думаете об этом, в sklearnprocessor мы указываем только версию фреймворка и не указываем uri изображения. и если мы не предоставляем версию фреймворка, он будет искать uri изображения и фреймворк, с которым вы хотите его запустить. Если framework_version или py_version равны None, то требуется image_uri. Если также None, то будет поднят Value Error.

И что ?

Не забудьте проверить, сработало ли ваше задание обработки или нет. Он будет указан в задании обработки AWS Sagemaker.. и будет выглядеть примерно так, как показано на рисунке ниже.

Какой бы процессор вы ни выбрали, вы увидите это своего рода задание на обработку. и не забудьте проверить image_uri, который использовался здесь для создания этого задания, чтобы вы могли проверить это, щелкнув имя своего задания обработки.

Как только эта работа по обработке будет успешно завершена, мы увидим результаты в s3.

Что теперь?

Далее мы рассмотрим задания по обучению и задания по пакетному преобразованию.

Спасибо за прочтение.

Если вам понравилась статья, не забудьте поставить лайк. Пожалуйста, следуйте за мной для получения дополнительных проектов и статей на моем Github и моем среднем профиле.





Запланируйте сеанс DDIChat в Data Science / AI / ML / DL:



Подайте заявку на участие в программе DDIChat Expert здесь.
Работайте с DDI: https://datadriveninvestor.com/collaborate
Подпишитесь на DDIntel здесь.