У грудні 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.
У наступних розділах ми надаємо покрокове керівництво, як запустити автоматичне налаштування моделі за допомогою JumpStart за допомогою алгоритму LightGBM. Надаємо супровід ноутбук для цього покрокового посібника.
Ми проходимо такі кроки високого рівня:
- Отримайте попередньо навчену модель і контейнер із зображеннями JumpStart.
- Встановити статичні гіперпараметри.
- Визначте настроювані діапазони гіперпараметрів.
- Ініціалізуйте автоматичне налаштування моделі.
- Запустіть роботу з налаштування.
- Розгорніть найкращу модель на кінцевій точці.
Отримайте попередньо навчену модель і контейнер із зображеннями 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 за допомогою автоматичного налаштування моделі, зверніться до нашого прикладу ноутбук.
Про автора
Дуг Мбайя є старшим архітектором партнерських рішень, який спеціалізується на даних та аналітиці. Даг тісно співпрацює з партнерами AWS, допомагаючи їм інтегрувати дані та аналітичне рішення в хмару.
Круті Джаясімха Рао є архітектором партнерських рішень у команді Scale-PSA. Kruthi проводить технічні перевірки для Партнерів, що дозволяє їм прогресувати в Партнерському шляху.
Янніс Мітропулос є інженером з розробки програмного забезпечення для SageMaker Автоматична настройка моделі.
Доктор Ашиш Хетан є старшим вченим-прикладником с Amazon SageMaker JumpStart та Вбудовані алгоритми Amazon SageMaker і допомагає розробляти алгоритми машинного навчання. Він є активним дослідником у галузі машинного навчання та статистичного висновку та опублікував багато робіт на конференціях NeurIPS, ICML, ICLR, JMLR та ACL.
- Coinsmart. Найкраща в Європі біржа біткойн та криптовалют.
- Платоблокчейн. Web3 Metaverse Intelligence. Розширені знання. БЕЗКОШТОВНИЙ ДОСТУП.
- CryptoHawk. Альткойн Радар. Безкоштовне випробування.
- Джерело: https://aws.amazon.com/blogs/machine-learning/run-automatic-model-tuning-with-amazon-sagemaker-jumpstart/
- "
- 10
- 100
- 2020
- 2022
- МЕНЮ
- через
- активний
- Перевага
- алгоритм
- алгоритми
- ВСІ
- Amazon
- аналітика
- Інтерфейси
- Активи
- автоматичний
- наявність
- AWS
- КРАЩЕ
- вбудований
- бізнес
- call
- Вибирати
- вибраний
- класифікація
- хмара
- код
- загальний
- конференції
- конфігурація
- вважає
- Консоль
- Контейнер
- контроль
- створювати
- створений
- створює
- створення
- В даний час
- виготовлений на замовлення
- дані
- вирішене
- демонструвати
- розгортання
- розгорнути
- розгортання
- деталі
- розвивати
- розробка
- різний
- Docker
- легко
- продуктивно
- дозволяє
- Кінцева точка
- інженер
- Інженери
- оцінювати
- все
- приклад
- очікуваний
- експеримент
- Експлуатувати
- риси
- знахідки
- відповідати
- Сфокусувати
- стежити
- після
- далі
- Загальне
- висота
- допомогу
- допомагає
- високоякісний
- Як
- How To
- HTTPS
- зображення
- здійснювати
- інформація
- інтегрувати
- залучений
- IT
- робота
- Джобс
- запуск
- вивчення
- підйомний
- зв'язку
- розташування
- машина
- навчання за допомогою машини
- Робить
- березня
- ML
- модель
- Моделі
- монітор
- більше
- найбільш
- множинний
- номер
- оптимізація
- Оптимізувати
- оптимізуючий
- партнер
- партнери
- Проходження
- платформа
- популярний
- Проблема
- проблеми
- процес
- забезпечувати
- забезпечує
- питання
- швидко
- зменшити
- зниження
- запитів
- вимагається
- ресурси
- REST
- результати
- прогін
- біг
- вчений
- Вчені
- Пошук
- обраний
- комплект
- демонстрація
- простий
- So
- Софтвер
- розробка програмного забезпечення
- рішення
- Рішення
- ВИРІШИТИ
- Простір
- старт
- почалася
- статистичний
- зберігання
- Стратегія
- підтримка
- Підтриманий
- Опори
- Мета
- завдання
- команда
- технічний
- тест
- через
- час
- трудомісткий
- назва
- Навчання
- суд
- використання
- значення
- різноманітність
- в той час як
- в
- працює