Нові вбудовані алгоритми Amazon SageMaker для моделювання табличних даних: LightGBM, CatBoost, AutoGluon-Tabular і TabTransformer

Вихідний вузол: 1541386

Amazon SageMaker надає набір з вбудовані алгоритми, попередньо навчені моделі та попередньо створені шаблони рішень щоб допомогти науковцям з даних і практикам машинного навчання (ML) розпочати навчання та швидко розгорнути моделі машинного навчання. Ви можете використовувати ці алгоритми та моделі як для навчання з наглядом, так і для навчання без нагляду. Вони можуть обробляти різні типи вхідних даних, включаючи табличні, графічні та текстові.

Починаючи з сьогоднішнього дня, SageMaker надає чотири нові вбудовані алгоритми моделювання табличних даних: LightGBM, CatBoost, AutoGluon-Tabular і TabTransformer. Ви можете використовувати ці популярні, найсучасніші алгоритми як для табличної класифікації, так і для завдань регресії. Вони доступні через вбудовані алгоритми на консолі SageMaker, а також через Amazon SageMaker JumpStart Інтерфейс користувача всередині Студія Amazon SageMaker.

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

документація Приклад блокнотів Source
Алгоритм LightGBM Регресія, Класифікація LightGBM
Алгоритм CatBoost Регресія, Класифікація CatBoost
Автоглюонно-табличний алгоритм Регресія, Класифікація Автоглюонно-табличний
Алгоритм TabTransformer Регресія, Класифікація TabTransformer

У наступних розділах ми надаємо короткий технічний опис кожного алгоритму та приклади того, як навчити модель за допомогою SageMaker SDK або SageMaker Jumpstart.

LightGBM

LightGBM є популярною та ефективною реалізацією з відкритим вихідним кодом алгоритму дерева рішень, що посилює градієнт (GBDT). GBDT – це контрольований алгоритм навчання, який намагається точно передбачити цільову змінну шляхом поєднання ансамблю оцінок з набору простіших і слабкіших моделей. LightGBM використовує додаткові методи для значного підвищення ефективності та масштабованості звичайного GBDT.

CatBoost

CatBoost є популярною та високопродуктивною реалізацією алгоритму GBDT з відкритим кодом. У CatBoost запроваджено два критичних алгоритмічних удосконалення: реалізація впорядкованого підвищення, альтернатива класичному алгоритму на основі перестановок та інноваційний алгоритм обробки категорійних ознак. Обидва методи були створені для боротьби зі зміщенням передбачення, спричиненим особливим типом цільового витоку, присутнім у всіх існуючих на даний момент реалізаціях алгоритмів підвищення градієнта.

Автоглюонно-табличний

Автоглюонно-табличний — це проект AutoML з відкритим вихідним кодом, розроблений і підтримуваний Amazon, який виконує розширену обробку даних, глибоке навчання та багаторівневе ансамблювання стека. Він автоматично розпізнає тип даних у кожному стовпці для надійної попередньої обробки даних, включаючи спеціальну обробку текстових полів. AutoGluon підходить для різних моделей, починаючи від стандартних розширених дерев до налаштованих моделей нейронних мереж. Ці моделі об’єднані по-новому: моделі складаються в кілька шарів і навчаються пошаровим способом, що гарантує, що вихідні дані можуть бути переведені в високоякісні прогнози протягом певного часу. Надмірне пристосування пом’якшується протягом цього процесу шляхом поділу даних різними способами з ретельним відстеженням нерозкладених прикладів. AutoGluon оптимізовано для продуктивності, і його звичайне використання досягло кількох топ-3 і топ-10 позицій у змаганнях із науки про дані.

TabTransformer

TabTransformer — це нова архітектура глибокого табличного моделювання даних для навчання під керівництвом. TabTransformer побудований на основі трансформаторів, що базуються на самоуважності. Шари Transformer перетворюють вбудовування категорійних ознак у надійні контекстні вбудовування для досягнення більшої точності передбачення. Крім того, контекстні вбудовування, засвоєні від TabTransformer, мають високу надійність проти як відсутніх, так і шумових функцій даних, і забезпечують кращу інтерпретацію. Ця модель є новим продуктом Amazon Science дослідження (папір і офіційний блог тут) і широко прийнято спільнотою ML із різними реалізаціями сторонніх розробників (КерасАвтоглюон,) і функції соціальних мереж, такі як твітівдо науки про дані, середній і Згорнути.

Переваги вбудованих алгоритмів SageMaker

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

  • Вбудовані алгоритми не потребують кодування для початку експериментів. Єдині вхідні дані, які вам потрібно надати, це дані, гіперпараметри та обчислювальні ресурси. Це дозволяє проводити експерименти швидше, з меншими витратами на відстеження результатів і зміни коду.
  • Вбудовані алгоритми забезпечуються розпаралелюванням між кількома екземплярами обчислень і підтримкою графічного процесора для всіх застосовних алгоритмів (деякі алгоритми можуть не бути включені через притаманні обмеження). Якщо у вас є багато даних для навчання моделі, більшість вбудованих алгоритмів можна легко масштабувати, щоб задовольнити попит. Навіть якщо у вас вже є попередньо навчена модель, все одно може бути простіше використати її наслідок у SageMaker та ввести гіперпараметри, які ви вже знаєте, а не переносити її та писати навчальний сценарій самостійно.
  • Ви є власником отриманих артефактів моделі. Ви можете взяти цю модель і розгорнути її на SageMaker для кількох різних шаблонів висновку (перегляньте всі доступні типи розгортання) і просте масштабування кінцевих точок і керування ними, або ви можете розгорнути його там, де вам це потрібно.

Давайте тепер подивимося, як навчити один із цих вбудованих алгоритмів.

Навчіть вбудований алгоритм за допомогою SageMaker SDK

Щоб навчити вибрану модель, нам потрібно отримати URI цієї моделі, а також сценарій навчання та зображення контейнера, яке використовується для навчання. На щастя, ці три параметри залежать виключно від назви моделі, версії (перелік доступних моделей див. JumpStart Таблиця доступних моделей), і тип екземпляра, на якому ви хочете тренуватися. Це демонструється в наступному фрагменті коду:

from sagemaker import image_uris, model_uris, script_uris train_model_id, train_model_version, train_scope = "lightgbm-classification-model", "*", "training"
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 model artifact; in the tabular case, the model is not pre-trained train_model_uri = model_uris.retrieve( model_id=train_model_id, model_version=train_model_version, model_scope=train_scope
)

Команда train_model_id змінюється на lightgbm-regression-model якщо ми маємо справу з проблемою регресії. Ідентифікатори всіх інших моделей, представлених у цій публікації, наведені в наступній таблиці.

Model Тип проблеми Ідентифікатор моделі
LightGBM Класифікація lightgbm-classification-model
. Регресія lightgbm-regression-model
CatBoost Класифікація catboost-classification-model
. Регресія catboost-regression-model
Автоглюонно-табличний Класифікація autogluon-classification-ensemble
. Регресія autogluon-regression-ensemble
TabTransformer Класифікація pytorch-tabtransformerclassification-model
. Регресія pytorch-tabtransformerregression-model

Потім ми визначаємо, де знаходиться наш вхід Служба простого зберігання Amazon (Amazon S3). Для цього прикладу ми використовуємо загальнодоступний зразок набору даних. Ми також визначаємо, куди ми хочемо, щоб наш вихідний результат був, і отримуємо список гіперпараметрів за замовчуванням, необхідних для навчання вибраної моделі. Ви можете змінити їх значення на свій смак.

import sagemaker
from sagemaker import hyperparameters sess = sagemaker.Session()
region = sess.boto_session.region_name # URI of sample training dataset
training_dataset_s3_path = f"s3:///jumpstart-cache-prod-{region}/training-datasets/tabular_multiclass/" # URI for output artifacts output_bucket = sess.default_bucket()
s3_output_location = f"s3://{output_bucket}/jumpstart-example-tabular-training/output" # Retrieve the default hyper-parameters for training
hyperparameters = hyperparameters.retrieve_default( model_id=train_model_id, model_version=train_model_version
) # [Optional] Override default hyperparameters with custom values
hyperparameters[ "num_boost_round"
] = "500" # The same hyperparameter is named as "iterations" for CatBoost

Нарешті, ми створюємо екземпляр SageMaker Estimator з усіма отриманими вводами та запустіть навчальне завдання з .fit, передаючи йому URI нашого навчального набору даних. The entry_point наданий сценарій називається transfer_learning.py (те саме для інших завдань і алгоритмів), а вхідний канал даних передається до .fit повинен бути названий training.

from sagemaker.estimator import Estimator
from sagemaker.utils import name_from_base # Unique training job name
training_job_name = name_from_base(f"built-in-example-{model_id}") # Create SageMaker Estimator instance
tc_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,
) # Launch a SageMaker Training job by passing s3 path of the training data
tc_estimator.fit({"training": training_dataset_s3_path}, logs=True)

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

Навчіть вбудований алгоритм за допомогою SageMaker JumpStart

Ви також можете навчити будь-які ці вбудовані алгоритми кількома клацаннями за допомогою інтерфейсу SageMaker JumpStart. JumpStart — це функція SageMaker, яка дозволяє навчати та розгортати вбудовані алгоритми та попередньо навчені моделі з різних фреймворків машинного навчання та концентраторів моделей через графічний інтерфейс. Це також дозволяє вам розгортати повноцінні рішення ML, які об’єднують моделі ML та різні інші служби AWS для вирішення цільового випадку використання.

Для отримання додаткової інформації зверніться до Запустіть класифікацію тексту за допомогою Amazon SageMaker JumpStart, використовуючи моделі TensorFlow Hub і Hugging Face.

Висновок

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

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


Про авторів

Доктор Синь Хуан є прикладним науковцем для вбудованих алгоритмів Amazon SageMaker JumpStart і Amazon SageMaker. Він зосереджується на розробці масштабованих алгоритмів машинного навчання. Його наукові інтереси пов’язані з обробкою природної мови, глибоким вивченням табличних даних та надійним аналізом непараметричної просторово-часової кластеризації. Він опублікував багато робіт у конференціях ACL, ICDM, KDD та журналі Royal Statistical Society: Series A.

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

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

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

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