Поймете, как его создать, запустить с контейнером по умолчанию и даже с пользовательским контейнером (контейнер обработки BYOC)
Эй, ребята, этот блог будет обширным руководством по обработке заданий Sagemaker, я работал над этим довольно долго, поэтому я подумал, что могу поделиться некоторыми вещами об этом.
Все мы знаем, что такое обработка и какое значение имеет проект ML/DL. и мы также сделали массу обработки данных. Так что же в этом нового?
Итак, мы знаем, как выполнять обработку данных, но мы не создали никаких рабочих процессов, которые могли бы обрабатывать новые данные самостоятельно.
Итак, вот вам и задачи обработки, предоставляемые Sagemaker. Что он делает, так это... он принимает несколько вещей, таких как ввод, и возвращает некоторый результат (обработанные данные), да, вот так просто.
Что все мы здесь увидим.
- Что такое Sagemaker Processing Job
- Что такое BYOC
- Что такое задание обработки BYOC
- Код для задания обработки BYOC
- Где его использовать?
Что такое задание обработки 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 здесь.