Разверните свою первую модель машинного обучения в SageMaker

Пошаговое руководство, которое поможет вам развернуть модель машинного обучения в AWS SageMaker и протестировать ее локально с помощью кода Python или JS или даже HTTP-запроса с помощью Postman.

Я впервые устанавливал SageMaker и пытался выяснить, как развернуть модель машинного обучения, которая есть у коллеги, на ноутбуке Jupyter, так что вот мои знания, которые помогут вам сэкономить время.

Соображения

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

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

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

  • Здесь вы можете найти все расходы, связанные с SageMaker, перейдите в раздел Цены по требованию › Экземпляры ноутбуков, и вы увидите все доступные типы инстансов и их стоимость в час. Выберите нужное вам право.
  • Следующий шаг очень важен, вам нужно проверить, что выбранный вами инстанс имеет доступную квоту, и если нет запроса в службу поддержки AWS об увеличении квоты, которую они изменят в ближайшие 2-4 рабочих дня (как минимум с мой опыт). В консоли AWS перейдите в раздел Service Quotas › AWS Services, в строке поиска введите SageMaker и выберите его, после чего будут перечислены все связанные службы, вам нужно отфильтровать их по в строке поиска введите Экземпляр Notebook, убедитесь, что нужный экземпляр указан в списке с значением Applied quota › 0.

  • (В случае необходимости) Если значение Applied quota равно 0, вы можете использовать инстанс другого типа с аналогичными характеристиками или запросить увеличение квоты в группе поддержки AWS. Чтобы запросить увеличение, перейдите на страницу Поддержка AWS › Создать заявку › Поиск увеличения лимита службы и выберите конкретный тип экземпляра, который вы хотите использовать.

Настраивать

  1. Домен SageMaker. Если вы впервые используете SageMaker, вам потребуется создать конечную точку, для этого руководства подойдет быстрая настройка.

2. Экземпляр записной книжки: теперь вам нужно создать экземпляр записной книжки, перейдите на левую панель Блокнот Экземпляры › Создать экземпляр записной книжки. Исходя из моих потребностей, это конфигурации, которые я выберите экземпляр Notebook.

  • Блокнот Тип экземпляра: ml.p2.xlarge
  • Упругий вывод: ml.eia2.xlarge
  • Размер тома: 20 ГБ
  • Другие конфигурации: по умолчанию

Теперь все готово для создания нашего блокнота Jupyter, давайте сделаем это.

Блокнот Юпитера

Перейдите в Экземпляры ноутбуков, выберите свой экземпляр и запустите его, это займет некоторое время, но как только он будет готов, выберите «Открыть Jupyter», появится новая вкладка со средой Jypiter, какой мы ее знаем.

  1. Выберите Новое и выберите ядро, которое вы хотите использовать в зависимости от потребностей вашей модели, здесь — документация, которую я нашел, которая объясняет разницу между ядрами, но пока само название является пояснительным. .

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

Tar-файл

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

1. В блокноте Jupyter измените каталог на выходные файлы и выполните следующую команду:

2. После создания .tar.gz вам необходимо скопировать его в корзину s3 с помощью следующей команды:

Теперь все готово для развертывания вашей модели.

Развертывание Sagemaker

Чтобы развернуть вашу модель и иметь возможность взаимодействовать с ней, вам потребуется создать в SageMaker следующие ресурсы:

1. Модель вывода: в основном это ваш объект модели в SageMaker.

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

3. Конечная точка: объект, с которым вы будете взаимодействовать через запросы API.

Следующий код выполняет все три шага, описанные выше, вам просто нужно обновить его с помощью версий вашей библиотеки, источника данных модели и env_task, который определяет задачу для используемых конвейеров HuggingFace Transformer. Здесь вы можете найти полный список заданий.

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

На этом этапе модель готова к работе, вам просто нужно настроить функцию Lambda и шлюз API, чтобы иметь возможность протестировать ее с нашего локального компьютера с помощью кода или запроса почтальона.

Шлюз API — Лямбда — Тест почтальона

Это уже очень хорошо задокументировано здесь.

Выводы

После того, как вы выполните эти инструкции, вы сможете использовать Python, JS, HTTP-запрос или любой другой язык программирования, с которым вы знакомы, для взаимодействия с вашей моделью.

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

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

Больше контента на PlainEnglish.io.

Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter, LinkedIn, YouTube и Discord.

Хотите повысить узнаваемость и принятие вашего технологического стартапа? Посмотрите Цирк.