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

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

У грудні 2020, AWS оголосила про загальну доступність of Amazon SageMaker JumpStart, здатність Amazon SageMaker який допоможе вам швидко та легко розпочати роботу з машинним навчанням (ML). JumpStart забезпечує тонке налаштування одним кліком і розгортання широкого спектру попередньо навчених моделей для популярних завдань ML, а також вибір наскрізних рішень, які вирішують типові бізнес-проблеми. Ці функції знімають важку роботу з кожного кроку процесу ML, полегшуючи розробку високоякісних моделей і скорочуючи час до розгортання.

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

У цій публікації ми надаємо оновлення щодо поточного стану можливостей JumpStart і проведемо вас через процес використання JumpStart API з прикладом використання.

Огляд JumpStart

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

  • Розгортайте попередньо навчені моделі для поширених завдань ML – JumpStart дозволяє вирішувати звичайні завдання ML без зусиль для розробки, забезпечуючи легке розгортання моделей, попередньо навчених на загальнодоступних великих наборах даних. Дослідницька спільнота ML доклала багато зусиль, щоб зробити більшість нещодавно розроблених моделей загальнодоступними для використання. JumpStart містить колекцію з понад 300 моделей, що охоплюють 15 найпопулярніших завдань ML, таких як виявлення об’єктів, класифікація тексту та генерація тексту, що полегшує їх використання для новачків. Ці моделі взяті з популярних центрів моделей, таких як TensorFlow, PyTorch, Hugging Face і MXNet Hub.
  • Точна настройка попередньо навчених моделей – JumpStart дозволяє точно налаштувати попередньо навчені моделі без необхідності писати власний алгоритм навчання. У ML називається здатність передавати знання, отримані в одній області, в іншу трансферне навчання. Ви можете використовувати навчання з перенесенням для створення точних моделей на ваших менших наборах даних із набагато нижчими витратами на навчання, ніж ті, які пов’язані з навчанням оригінальної моделі з нуля. JumpStart також включає популярні алгоритми навчання, засновані на LightGBM, CatBoost, XGBoost і Scikit-learn, які можна навчити з нуля для регресії та класифікації табличних даних.
  • Використовуйте готові рішення – JumpStart надає набір 17 готових рішень для поширених випадків використання ML, таких як прогнозування попиту та промислові та фінансові додатки, які можна розгорнути лише кількома кліками. Рішення — це наскрізні програми ML, які об’єднують різні служби AWS для вирішення конкретного випадку використання бізнесу. Вони використовують AWS CloudFormation шаблони та еталонні архітектури для швидкого розгортання, що означає, що їх можна повністю налаштувати.
  • Використовуйте приклади блокнотів для алгоритмів SageMaker – SageMaker надає набір вбудовані алгоритми щоб допомогти науковцям з даних і практикам машинного навчання швидко розпочати навчання та розгортати моделі машинного навчання. JumpStart надає зразки блокнотів, які можна використовувати для швидкого використання цих алгоритмів.
  • Скористайтеся перевагами навчальних відео та блогів – JumpStart також надає численні публікації в блозі та відео, які навчають вас, як використовувати різні функції в SageMaker.

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

Завдання ML із підтримкою JumpStart та приклади зошитів із API

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

Завдання Висновок з попередньо підготовленими моделями Навчання на спеціальному наборі даних Підтримуються фреймворки Приклад блокнотів
Класифікація зображень так так PyTorch, TensorFlow Вступ до JumpStart – Класифікація зображень
Виявлення об'єктів так так PyTorch, TensorFlow, MXNet Вступ до JumpStart – виявлення об’єктів
Семантична сегментація так так MX Net Вступ до JumpStart – семантична сегментація
Сегментація екземплярів так немає MX Net Вступ до JumpStart – Сегментація екземплярів
Вбудовування зображення так немає TensorFlow, MXNet Вступ до JumpStart – Вбудовування зображень
Класифікація тексту так так TensorFlow Вступ до JumpStart – Класифікація тексту
Парна класифікація речень так так TensorFlow, обіймає обличчя Вступ до JumpStart – Класифікація пар речень
Відповідь на запитання так так PyTorch Вступ до JumpStart – відповідь на запитання
Визнання іменованої сутності так немає Обіймати обличчя Вступ до JumpStart – розпізнавання іменованих об’єктів
Узагальнення тексту так немає Обіймати обличчя Вступ до JumpStart – узагальнення тексту
Генерація тексту так немає Обіймати обличчя Вступ до JumpStart – генерування тексту
Машинний переклад так немає Обіймати обличчя Вступ до JumpStart – машинний переклад
Вбудовування тексту так немає TensorFlow, MXNet Вступ до JumpStart – вбудовування тексту
Таблична класифікація так так LightGBM, CatBoost, XGBoost, Linear Learner Вступ до JumpStart – Таблична класифікація – LightGBM, CatBoost
Вступ до JumpStart – Таблична класифікація – XGBoost, Linear Learner
Таблична регресія так так LightGBM, CatBoost, XGBoost, Linear Learner Вступ до JumpStart – Таблична регресія – LightGBM, CatBoost
Вступ до JumpStart – Таблична регресія – XGBoost, Linear Learner

Залежно від завдання, зразки зошитів, на які наведено посилання в попередній таблиці, можуть допомогти вам у всіх або підмножині таких процесів:

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

Точна настройка та розгортання моделі виявлення об’єктів за допомогою JumpStart API

У наступних розділах ми надаємо покрокове керівництво щодо використання нових 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")

Далі ми подаємо ресурси в a Модель 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. Вертикальний пошук. Ai.

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

Існуючі моделі виявлення об’єктів у JumpStart попередньо навчаються на наборах даних COCO або VOC. Однак, якщо вам потрібно визначити класи об’єктів, які не існують у вихідному наборі даних попереднього навчання, вам доведеться точно налаштувати модель на новому наборі даних, який включає ці нові типи об’єктів. Наприклад, якщо вам потрібно визначити кухонне начиння та зробити висновок на розгорнутій попередньо навченій моделі SSD, модель не розпізнає жодних характеристик нових типів зображень, і тому виведення буде неправильним.

У цьому розділі ми демонструємо, як легко налаштувати попередньо навчену модель для виявлення нових класів об’єктів за допомогою JumpStart API. Повний приклад коду з більш детальною інформацією доступний у супровідний зошит.

Отримати навчальні артефакти

Артефакти навчання подібні до артефактів висновку, які розглядалися в попередньому розділі. Для навчання потрібен базовий контейнер 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)

Тренування з бігу

Щоб запустити навчання, ми просто передаємо необхідні артефакти разом із деякими додатковими параметрами до a Оцінювач 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 прикладів блокнотів для різних завдань ML, які підтримуються в JumpStart, і провели вас через блокнот виявлення об’єктів.

Ми з нетерпінням чекаємо від вас, коли ви експериментуєте з JumpStart.


Про авторів

Моделі та алгоритми Amazon SageMaker JumpStart тепер доступні через API PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Доктор Вівек Мадан є вченим-прикладником у команді Amazon SageMaker JumpStart. Він отримав ступінь доктора філософії в Університеті Іллінойсу в Урбана-Шампейн і був докторантом у технічному університеті Джорджії. Він є активним дослідником у галузі машинного навчання та розробки алгоритмів, а також опублікував статті на конференціях EMNLP, ICLR, COLT, FOCS та SODA.

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

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

Часова мітка:

Більше від AWS Машинне навчання