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

Запустіть автоматичне налаштування моделі за допомогою Amazon SageMaker JumpStart

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

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

Автоматичне налаштування моделі SageMaker

Традиційно інженери ML використовують метод проб і помилок, щоб знайти правильний набір гіперпараметрів. Метод проб і помилок передбачає послідовне або паралельне виконання кількох завдань із забезпеченням ресурсів, необхідних для проведення експерименту.

з Автоматичне налаштування моделі SageMaker, інженери ML і науковці з даних можуть розвантажити трудомістке завдання оптимізації своєї моделі і дозволити SageMaker провести експерименти. SageMaker використовує переваги еластичності платформи AWS для ефективного й одночасного запуску кількох навчальних симуляцій на наборі даних і пошуку найкращих гіперпараметрів для моделі.

Автоматичне налаштування моделі SageMaker знаходить найкращу версію моделі, виконуючи багато навчальних завдань у вашому наборі даних за допомогою алгоритму та діапазони гіперпараметрів, які ви вказуєте. Потім він вибирає значення гіперпараметрів, які призводять до моделі, яка працює найкраще, як вимірюється a метрика що ви обираєте.

Автоматичне налаштування моделі використовує або a Байєсівський (за замовчуванням) або a випадковий стратегія пошуку для пошуку найкращих значень для гіперпараметрів. Байєсівський пошук розглядає налаштування гіперпараметрів як a регресія проблема. Вибираючи найкращі гіперпараметри для наступного навчального завдання, він враховує все, що йому відомо про проблему на даний момент, і дозволяє алгоритму використовувати найвідоміші результати.

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

JumpStart зараз підтримує 10 прикладів ноутбуків з автоматичним налаштуванням моделі. Він також підтримує чотири популярні алгоритми для моделювання табличних даних. Завдання та посилання на їх зразки зошитів узагальнено в наступній таблиці.

Завдання Попередньо навчені моделі Підтримує спеціальний набір даних Підтримувані фреймворки Приклад блокнотів
Класифікація зображень так так PyTorch, TensorFlow Вступ до JumpStart – Класифікація зображень
Виявлення об'єктів так так PyTorch, TensorFlow, MXNet Вступ до JumpStart – виявлення об’єктів
Семантична сегментація так так MX Net Вступ до JumpStart – семантична сегментація
Класифікація тексту так так TensorFlow Вступ до JumpStart – Класифікація тексту
Парна класифікація речень так так TensorFlow, обіймає обличчя Вступ до JumpStart – Класифікація пар речень
Відповідь на запитання так так PyTorch Вступ до 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

Огляд рішення

Цей технічний робочий процес дає огляд різних функцій Amazon Sagemaker і кроків, необхідних для автоматичного налаштування моделі JumpStart.

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

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

Ми проходимо такі кроки високого рівня:

  1. Отримайте попередньо навчену модель і контейнер із зображеннями JumpStart.
  2. Встановити статичні гіперпараметри.
  3. Визначте настроювані діапазони гіперпараметрів.
  4. Ініціалізуйте автоматичне налаштування моделі.
  5. Запустіть роботу з налаштування.
  6. Розгорніть найкращу модель на кінцевій точці.

Отримайте попередньо навчену модель і контейнер із зображеннями JumpStart

У цьому розділі ми вибираємо модель класифікації LightGBM для тонкого налаштування. Ми використовуємо тип екземпляра ml.m5.xlarge, на якому запускається модель. Потім ми отримуємо навчальний контейнер Docker, джерело навчального алгоритму та попередньо навчену модель. Дивіться наступний код:

training_instance_type = "ml.m5.xlarge" # Retrieve the docker image
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
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
)

Встановити статичні гіперпараметри

Тепер ми отримуємо гіперпараметри за замовчуванням для цієї моделі LightGBM, попередньо налаштовані JumpStart. Ми також перевизначаємо num_boost_round гіперпараметр зі спеціальним значенням.

# Retrieve the default hyper-parameters for fine-tuning the model
hyperparameters = hyperparameters.retrieve_default(
    model_id=train_model_id, model_version=train_model_version
)
# [Optional] Override default hyperparameters with custom values

Визначте настроювані діапазони гіперпараметрів

Далі ми визначаємо діапазони гіперпараметрів оптимізовано за допомогою автоматичного налаштування моделі. Ми визначаємо ім’я гіперпараметра, як очікується моделлю, а потім діапазони значень, які потрібно спробувати для цього гіперпараметра. Автоматичне налаштування моделі витягує зразки (дорівнюють max_jobs параметр) з простору гіперпараметрів, використовуючи техніку, яка називається байєсовським пошуком. Для кожного намальованого зразка гіперпараметра тюнер створює навчальне завдання для оцінки моделі з цією конфігурацією. Дивіться наступний код:

hyperparameter_ranges = {
    "learning_rate": ContinuousParameter(1e-4, 1, scaling_type="Logarithmic"),
    "num_boost_round": IntegerParameter(2, 30),
    "early_stopping_rounds": IntegerParameter(2, 30),
    "num_leaves": IntegerParameter(10, 50),
    "feature_fraction": ContinuousParameter(0, 1),
    "bagging_fraction": ContinuousParameter(0, 1),
    "bagging_freq": IntegerParameter(1, 10),
    "max_depth": IntegerParameter(5, 30),
    "min_data_in_leaf": IntegerParameter(5, 50),
}

Ініціалізуйте автоматичне налаштування моделі

Ми починаємо зі створення Оцінювач об’єкт з усіма необхідними активами, які визначають завдання навчання, такими як попередньо навчена модель, навчальне зображення та навчальний сценарій. Тоді ми визначаємо a HyperparameterTuner об’єкт для взаємодії з API налаштування гіперпараметрів SageMaker.

Команда HyperparameterTuner приймає в якості параметрів об’єкт Estimator, цільову метрику, на основі якої визначається найкращий набір гіперпараметрів, загальну кількість навчальних завдань (max_jobs), щоб розпочати завдання налаштування гіперпараметрів і максимальну кількість паралельних навчальних завдань для виконання (max_parallel_jobs). Навчальні завдання виконуються за алгоритмом LightGBM і мінімальними значеннями гіперпараметра mlogloss вибирається метрика. Додаткову інформацію про налаштування автоматичного налаштування моделі див Найкращі методи налаштування гіперпараметрів.

# Create SageMaker Estimator instance
tabular_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",
    instance_count=1,
    instance_type=training_instance_type,
    max_run=360000,
    hyperparameters=hyperparameters,
    output_path=s3_output_location,
) tuner = HyperparameterTuner(
    estimator=tabular_estimator,
    objective_metric_name="multi_logloss",
    hyperparameter_ranges=hyperparameter_ranges,
    metric_definitions=[{"Name": "multi_logloss", "Regex": "multi_logloss: ([0-9\.]+)"}],
    strategy="Bayesian",
    max_jobs=10,
    max_parallel_jobs=2,
    objective_type="Minimize",
    base_tuning_job_name=training_job_name,
)

У попередньому коді ми повідомляємо тюнеру запустити щонайбільше 10 експериментів (max_jobs) і лише два одночасні експерименти одночасно (max_parallel_jobs). Обидва ці параметри контролюють ваші витрати та час навчання.

Запустіть роботу з налаштування

Щоб запустити завдання налаштування SageMaker, ми викликаємо метод fit об’єкта налаштування гіперпараметрів і передаємо Служба простого зберігання Amazon (Amazon S3) шлях даних навчання:

tuner.fit({"training": training_dataset_s3_path}, logs=True)

Поки автоматична настройка моделі шукає найкращі гіперпараметри, ви можете стежити за їх прогресом на консолі SageMaker або на Amazon CloudWatch. Після завершення навчання детально налаштовані артефакти найкращої моделі завантажуються в вихідне розташування Amazon S3, зазначене в конфігурації навчання.

Розгорніть найкращу модель на кінцевій точці

Коли налаштування завершено, найкраща модель була обрана та збережена в Amazon S3. Тепер ми можемо розгорнути цю модель, викликавши метод deploy HyperparameterTuner об’єкт і передача необхідних параметрів, таких як кількість екземплярів, які будуть використовуватися для створеної кінцевої точки, їх тип, зображення для розгортання та сценарій для запуску:

tuner.deploy(
    initial_instance_count=1,
    instance_type=inference_instance_type,
    entry_point="inference.py",
    image_uri=deploy_image_uri,
    source_dir=deploy_source_uri,
    endpoint_name=endpoint_name,
    enable_network_isolation=True
)

Тепер ми можемо перевірити створену кінцеву точку, зробивши запити на висновок. За рештою процесу ви можете ознайомитися в супроводі ноутбук.

Висновок

Завдяки автоматичному налаштуванню моделі в SageMaker ви можете знайти найкращу версію своєї моделі, виконавши навчальні завдання на наданому наборі даних за допомогою одного з підтримуваних алгоритмів. Автоматичне налаштування моделі дозволяє скоротити час на налаштування моделі шляхом автоматичного пошуку найкращої конфігурації гіперпараметрів у діапазонах гіперпараметрів, які ви вказали.

У цій публікації ми показали цінність запуску автоматичного налаштування моделі на попередньо навченій моделі JumpStart за допомогою API SageMaker. Ми використали алгоритм LightGBM і визначили максимум 10 навчальних завдань. Ми також надали посилання на приклади блокнотів, що демонструють фреймворки ML, які підтримують оптимізацію моделі JumpStart.

Щоб дізнатися більше про те, як оптимізувати модель JumpStart за допомогою автоматичного налаштування моделі, зверніться до нашого прикладу ноутбук.


Про автора

Запустіть автоматичне налаштування моделі за допомогою Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Дуг Мбайя є старшим архітектором партнерських рішень, який спеціалізується на даних та аналітиці. Даг тісно співпрацює з партнерами AWS, допомагаючи їм інтегрувати дані та аналітичне рішення в хмару.

Запустіть автоматичне налаштування моделі за допомогою Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Круті Джаясімха Рао є архітектором партнерських рішень у команді Scale-PSA. Kruthi проводить технічні перевірки для Партнерів, що дозволяє їм прогресувати в Партнерському шляху.

Запустіть автоматичне налаштування моделі за допомогою Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Янніс Мітропулос є інженером з розробки програмного забезпечення для SageMaker Автоматична настройка моделі.

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

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

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