Модели и алгоритмы Amazon SageMaker JumpStart теперь доступны через API PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Модели и алгоритмы Amazon SageMaker JumpStart теперь доступны через API

В декабре 2020, AWS объявила об общедоступности of Amazon SageMaker JumpStart, способность Создатель мудреца Амазонки который поможет вам быстро и легко начать работу с машинным обучением (ML). JumpStart обеспечивает тонкую настройку одним щелчком мыши и развертывание широкого спектра предварительно обученных моделей для популярных задач машинного обучения, а также набор комплексных решений, решающих типичные бизнес-задачи. Эти функции избавляют от тяжелой работы на каждом этапе процесса машинного обучения, упрощая разработку высококачественных моделей и сокращая время развертывания.

Раньше весь контент JumpStart был доступен только через Студия Amazon SageMaker, который обеспечивает удобный графический интерфейс для взаимодействия с функцией. Сегодня мы рады объявить о запуске простого в использовании API-интерфейсы JumpStart как расширение SageMaker Python SDK. Эти API-интерфейсы позволяют программно развертывать и настраивать широкий выбор предварительно обученных моделей, поддерживаемых JumpStart, в ваших собственных наборах данных. Этот запуск открывает доступ к возможностям JumpStart в ваших рабочих процессах кода, конвейерах MLOps и везде, где вы взаимодействуете с SageMaker через SDK.

В этом посте мы представляем обновленную информацию о текущем состоянии возможностей JumpStart и рассказываем о процессе использования API JumpStart с примером использования.

Обзор JumpStart

JumpStart — это многогранный продукт, включающий различные возможности, которые помогут вам быстро приступить к работе с машинным обучением в SageMaker. На момент написания JumpStart позволял вам делать следующее:

  • Развертывание предварительно обученных моделей для распространенных задач машинного обучения – JumpStart позволяет решать распространенные задачи машинного обучения без усилий по разработке, обеспечивая простое развертывание моделей, предварительно обученных на общедоступных больших наборах данных. Исследовательское сообщество машинного обучения приложило немало усилий, чтобы сделать большинство недавно разработанных моделей общедоступными для использования. JumpStart содержит коллекцию из более чем 300 моделей, охватывающих 15 самых популярных задач машинного обучения, таких как обнаружение объектов, классификация текста и генерация текста, что упрощает их использование новичками. Эти модели взяты из популярных концентраторов моделей, таких как TensorFlow, PyTorch, Hugging Face и MXNet Hub.
  • Точная настройка предварительно обученных моделей – JumpStart позволяет точно настраивать предварительно обученные модели без необходимости написания собственного алгоритма обучения. В ML способность передавать знания, полученные в одной области, в другую область называется трансферное обучение. Вы можете использовать трансферное обучение для создания точных моделей на небольших наборах данных с гораздо меньшими затратами на обучение, чем при обучении исходной модели с нуля. JumpStart также включает в себя популярные алгоритмы обучения на основе LightGBM, CatBoost, XGBoost и Scikit-learn, которые можно обучать с нуля для регрессии и классификации табличных данных.
  • Используйте готовые решения – JumpStart предоставляет набор 17 готовых решений для распространенных вариантов использования машинного обучения, таких как прогнозирование спроса, а также для промышленных и финансовых приложений, которые можно развернуть всего несколькими щелчками мыши. Решения представляют собой комплексные приложения машинного обучения, которые объединяют различные сервисы AWS для решения конкретных бизнес-задач. Они используют AWS CloudFormation шаблоны и эталонные архитектуры для быстрого развертывания, что означает, что они полностью настраиваемые.
  • Используйте примеры записных книжек для алгоритмов SageMaker – SageMaker предоставляет набор встроенные алгоритмы чтобы помочь специалистам по данным и специалистам по машинному обучению быстро приступить к обучению и развертыванию моделей машинного обучения. JumpStart предоставляет образцы блокнотов, которые можно использовать для быстрого использования этих алгоритмов.
  • Воспользуйтесь обучающими видео и блогами – JumpStart также предоставляет множество сообщений в блогах и видео, которые учат вас, как использовать различные функции в SageMaker.

JumpStart принимает пользовательские настройки VPC и ключи шифрования KMS, чтобы вы могли безопасно использовать доступные модели и решения в своей корпоративной среде. Вы можете передать свои настройки безопасности в JumpStart в SageMaker Studio или с помощью SageMaker Python SDK.

Задачи машинного обучения, поддерживаемые JumpStart, и примеры API Ноутбуки

В настоящее время JumpStart поддерживает 15 самых популярных задач машинного обучения; 13 из них — задачи на зрение и НЛП, из которых 8 поддерживают тонкую настройку без кода. Он также поддерживает четыре популярных алгоритма моделирования табличных данных. Задачи и ссылки на их образцы записных книжек сведены в следующую таблицу.

Сложность задачи Вывод с предварительно обученными моделями Обучение работе с пользовательским набором данных Поддерживаемые платформы Примеры записных книжек
Классификация изображений Да Да ПиТорч, ТензорФлоу Введение в JumpStart — классификация изображений
Обнаружение объекта Да Да PyTorch, TensorFlow, MXNet Введение в JumpStart — Обнаружение объектов
Семантическая сегментация Да Да MXNet Введение в JumpStart — Семантическая сегментация
Сегментация экземпляра Да нет MXNet Введение в JumpStart — сегментация экземпляров
Встраивание изображений Да нет ТензорФлоу, MXNet Введение в JumpStart — встраивание изображений
Классификация текста Да Да TensorFlow Введение в JumpStart — Классификация текста
Классификация пар предложений Да Да TensorFlow, обнимающее лицо Введение в JumpStart — классификация пар предложений
Ответ на вопрос Да Да PyTorch Введение в JumpStart — ответы на вопросы
Признание названного лица Да нет Обнимая лицо Введение в JumpStart — распознавание именованных объектов
Обобщение текста Да нет Обнимая лицо Введение в JumpStart — суммирование текста
Генерация текста Да нет Обнимая лицо Введение в JumpStart — Генерация текста
Машинный перевод Да нет Обнимая лицо Введение в JumpStart — машинный перевод
Встраивание текста Да нет ТензорФлоу, MXNet Введение в JumpStart — встраивание текста
Табличная классификация Да Да LightGBM, CatBoost, XGBoost, линейное обучение Введение в JumpStart — табличная классификация — LightGBM, CatBoost
Введение в JumpStart — Табличная классификация — XGBoost, Linear Learner
Табличная регрессия Да Да LightGBM, CatBoost, XGBoost, линейное обучение Введение в JumpStart — табличная регрессия — LightGBM, CatBoost
Введение в JumpStart — табличная регрессия — XGBoost, Linear Learner

В зависимости от задачи примеры записных книжек, ссылки на которые приведены в предыдущей таблице, помогут вам выполнить все или некоторые из следующих процессов:

  • Выберите предварительно обученную модель, поддерживаемую JumpStart, для конкретной задачи.
  • Размещайте предварительно обученную модель, получайте от нее прогнозы в режиме реального времени и адекватно отображайте результаты.
  • Настройте предварительно обученную модель с помощью собственного выбора гиперпараметров и разверните ее для логического вывода.

Точная настройка и развертывание модели обнаружения объектов с помощью API JumpStart

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

Мы проходим следующие этапы высокого уровня:

  1. Запустите вывод на предварительно обученной модели.
    1. Получите артефакты JumpStart и разверните конечную точку.
    2. Запросите конечную точку, проанализируйте ответ и отобразите прогнозы модели.
  2. Настройте предварительно обученную модель на собственном наборе данных.
    1. Получить тренировочные артефакты.
    2. Проведите обучение.

Запустите вывод на предварительно обученной модели

В этом разделе мы выбираем подходящую предварительно обученную модель в JumpStart, развертываем эту модель на конечной точке SageMaker и показываем, как выполнять вывод на развернутой конечной точке. Все этапы доступны в сопроводительная записная книжка Jupyter.

Получите артефакты JumpStart и разверните конечную точку

SageMaker — это платформа, основанная на контейнерах Docker. JumpStart использует доступный фреймворк Контейнеры глубокого обучения SageMaker (DLC). Мы получаем любые дополнительные пакеты, а также скрипты для обучения и логического вывода для выбранной задачи. Наконец, предварительно обученные артефакты модели извлекаются отдельно с помощью model_uris, что обеспечивает гибкость платформы. Вы можете использовать любое количество моделей, предварительно обученных для одной и той же задачи, с помощью одного сценария обучения или логического вывода. См. следующий код:

infer_model_id, infer_model_version = "pytorch-od-nvidia-ssd", "*" # Retrieve the inference docker container uri. This is the base container PyTorch image for the model selected above. deploy_image_uri = image_uris.retrieve(region=None, framework=None, image_scope="inference",model_id=infer_model_id, model_version=infer_model_version, instance_type=inference_instance_type) # Retrieve the inference script uri. This includes all dependencies and scripts for model loading, inference handling etc.
deploy_source_uri = script_uris.retrieve(model_id=infer_model_id, model_version=infer_model_version, script_scope="inference") # Retrieve the base model uri. This includes the pre-trained nvidia-ssd model and parameters.
base_model_uri = model_uris.retrieve(model_id=infer_model_id, model_version=infer_model_version, model_scope="inference")

Далее мы загружаем ресурсы в Модель SageMaker экземпляр и разверните конечную точку:

# Create the SageMaker model instance
model = Model(image_uri=deploy_image_uri, source_dir=deploy_source_uri, model_data=base_model_uri, entry_point="inference.py", role=aws_role, predictor_cls=Predictor, name=endpoint_name) # deploy the Model. Note that we need to pass Predictor class when we deploy model through Model class for being able to run inference through the sagemaker API.
base_model_predictor = model.deploy(initial_instance_count=1, instance_type=inference_instance_type, predictor_cls=Predictor, endpoint_name=endpoint_name)

Развертывание конечной точки может занять несколько минут.

Запросите конечную точку, проанализируйте ответ и отобразите прогнозы.

Чтобы получить выводы из развернутой модели, входное изображение должно быть предоставлено в двоичном формате вместе с типом принятия. В JumpStart вы можете определить количество возвращаемых ограничивающих рамок. В следующем фрагменте кода мы предсказываем десять ограничительных рамок для каждого изображения, добавляя ;n_predictions=10 в Accept. Чтобы предсказать xx ящиков, вы можете изменить его на ;n_predictions=xx , или получить все предсказанные поля, опуская ;n_predictions=xx полностью.

def query(model_predictor, image_file_name): with open(image_file_name, "rb") as file: input_img_rb = file.read() return model_predictor.predict(input_img_rb,{ "ContentType": "application/x-image", "Accept": "application/json;verbose;n_predictions=10"}) query_response = query(base_model_predictor, Naxos_Taverna)

Следующий фрагмент кода дает представление о том, как выглядит обнаружение объектов. Вероятность, предсказанная для каждого класса объектов, визуализируется вместе с ограничивающей рамкой. Мы используем parse_response и display_predictions вспомогательные функции, которые определены в сопроводительном ноутбук.

normalized_boxes, classes_names, confidences = parse_response(query_response)
display_predictions(Naxos_Taverna, normalized_boxes, classes_names, confidences)

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

Модели и алгоритмы Amazon SageMaker JumpStart теперь доступны через API PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Точная настройка предварительно обученной модели на собственном наборе данных

Существующие модели обнаружения объектов в JumpStart предварительно обучены либо на наборах данных COCO, либо на наборах данных VOC. Однако если вам нужно идентифицировать классы объектов, которых нет в исходном наборе данных для предварительной подготовки, вам необходимо точно настроить модель на новом наборе данных, который включает эти новые типы объектов. Например, если вам нужно идентифицировать кухонную утварь и выполнить вывод на развернутой предварительно обученной модели SSD, модель не распознает никаких характеристик новых типов изображений, и поэтому выходные данные будут неверными.

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

Получить тренировочные артефакты

Артефакты обучения аналогичны артефактам логического вывода, рассмотренным в предыдущем разделе. Для обучения требуется базовый контейнер Docker, а именно контейнер MXNet в следующем примере кода. Любые дополнительные пакеты, необходимые для обучения, включены в обучающие сценарии в train_sourcer_uri. Предварительно обученная модель и ее параметры упаковываются отдельно.

train_model_id, train_model_version, train_scope = "mxnet-od-ssd-512-vgg16-atrous-coco","*","training"
training_instance_type = "ml.p2.xlarge" # Retrieve the docker image. This is the base container MXNet image for the model selected above. train_image_uri = image_uris.retrieve(region=None, framework=None, model_id=train_model_id, model_version=train_model_version, image_scope=train_scope,instance_type=training_instance_type) # Retrieve the training script and dependencies. This contains all the necessary files including data processing, model training etc.
train_source_uri = script_uris.retrieve(model_id=train_model_id, model_version=train_model_version, script_scope=train_scope) # Retrieve the pre-trained model tarball to further fine-tune
train_model_uri = model_uris.retrieve(
model_id=train_model_id, model_version=train_model_version, model_scope=train_scope)

Запустить тренировку

Для запуска обучения мы просто передаем необходимые артефакты вместе с некоторыми дополнительными параметрами в Оценщик SageMaker и позвонить .fit функция:

# Create SageMaker Estimator instance
od_estimator = Estimator( role=aws_role, image_uri=train_image_uri, source_dir=train_source_uri, model_uri=train_model_uri, entry_point="transfer_learning.py", # Entry-point file in source_dir and present in train_source_uri. instance_count=1, instance_type=training_instance_type, max_run=360000, hyperparameters=hyperparameters, output_path=s3_output_location,
) # Launch a SageMaker Training job by passing s3 path of the training data
od_estimator.fit({"training": training_dataset_s3_path}, logs=True)

Пока алгоритм обучается, вы можете следить за его ходом либо в блокноте SageMaker, где вы запускаете сам код, либо на Amazon CloudWatch. Когда обучение завершено, артефакты точной настройки модели загружаются в Простой сервис хранения Amazon (Amazon S3) выходное местоположение, указанное в конфигурации обучения. Теперь вы можете развернуть модель так же, как предварительно обученную модель. Вы можете следить за остальным процессом в сопроводительная записная книжка.

Заключение

В этом посте мы описали ценность недавно выпущенных API JumpStart и способы их использования. Мы предоставили ссылки на 17 примеров блокнотов для различных задач машинного обучения, поддерживаемых в JumpStart, и познакомили вас с блокнотом для обнаружения объектов.

Мы с нетерпением ждем ответа от вас, когда вы экспериментируете с JumpStart.


Об авторах

Модели и алгоритмы Amazon SageMaker JumpStart теперь доступны через API PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Доктор Вивек Мадан — ученый-прикладник в команде Amazon SageMaker JumpStart. Он получил докторскую степень в Университете Иллинойса в Урбана-Шампейн и был постдокторским исследователем в Технологическом институте Джорджии. Он является активным исследователем в области машинного обучения и разработки алгоритмов и публиковал статьи на конференциях EMNLP, ICLR, COLT, FOCS и SODA.

Модели и алгоритмы Amazon SageMaker JumpStart теперь доступны через API PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Жоао Моура является специалистом по архитектуре решений AI/ML в Amazon Web Services. Он в основном сосредоточен на примерах использования НЛП и помогает клиентам оптимизировать обучение и развертывание модели глубокого обучения.

Модели и алгоритмы Amazon SageMaker JumpStart теперь доступны через API PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Доктор Ашиш Хетан является старшим научным сотрудником с Amazon SageMaker JumpStart и Встроенные алгоритмы Amazon SageMaker и помогает разрабатывать алгоритмы машинного обучения. Он является активным исследователем в области машинного обучения и статистических выводов и опубликовал множество статей на конференциях NeurIPS, ICML, ICLR, JMLR и ACL.

Отметка времени:

Больше от Машинное обучение AWS