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

Исходный узел: 1541386

Создатель мудреца Амазонки предоставляет набор встроенные алгоритмы, предварительно обученные моделикачества готовые шаблоны решений чтобы помочь специалистам по обработке и анализу данных и специалистам по машинному обучению (ML) быстро приступить к обучению и развертыванию моделей ML. Вы можете использовать эти алгоритмы и модели как для контролируемого, так и для неконтролируемого обучения. Они могут обрабатывать различные типы входных данных, в том числе табличные, графические и текстовые.

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

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

Документация Примеры записных книжек Источник
Алгоритм LightGBM Регрессия, классификация СветGBM
Алгоритм CatBoost Регрессия, классификация CatBoost
Автоглюонно-табличный алгоритм Регрессия, классификация AutoGluon-Табулярный
Алгоритм TabTransformer Регрессия, классификация ВкладкаТрансформер

В следующих разделах мы приводим краткое техническое описание каждого алгоритма и примеры обучения модели с помощью SageMaker SDK или SageMaker Jumpstart.

СветGBM

СветGBM — это популярная и эффективная реализация с открытым исходным кодом алгоритма Gradient Boosting Decision Tree (GBDT). GBDT — это алгоритм обучения с учителем, который пытается точно предсказать целевую переменную, комбинируя ансамбль оценок из набора более простых и слабых моделей. LightGBM использует дополнительные методы для значительного повышения эффективности и масштабируемости обычного GBDT.

CatBoost

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

AutoGluon-Табулярный

AutoGluon-Табулярный — это проект AutoML с открытым исходным кодом, разработанный и поддерживаемый Amazon, который выполняет расширенную обработку данных, глубокое обучение и объединение многоуровневых стеков. Он автоматически распознает тип данных в каждом столбце для надежной предварительной обработки данных, включая специальную обработку текстовых полей. AutoGluon подходит для различных моделей, от готовых расширенных деревьев до настраиваемых моделей нейронных сетей. Эти модели собраны по-новому: модели собраны в несколько слоев и обучены послойно, что гарантирует преобразование необработанных данных в высококачественные прогнозы в заданные временные рамки. На протяжении всего этого процесса переобучение смягчается за счет разбиения данных различными способами с тщательным отслеживанием несоответствующих примеров. AutoGluon оптимизирован для повышения производительности, и его стандартное использование достигло нескольких первых 3 и 10 позиций в конкурсах по науке о данных.

ВкладкаТрансформер

ВкладкаТрансформер — это новая архитектура моделирования глубоких табличных данных для контролируемого обучения. TabTransformer построен на Трансформерах, основанных на самоконтроле. Слои Transformer преобразуют вложения категориальных признаков в надежные контекстуальные вложения для достижения более высокой точности предсказания. Кроме того, контекстуальные вложения, извлеченные из TabTransformer, очень устойчивы как к отсутствующим, так и к зашумленным функциям данных и обеспечивают лучшую интерпретируемость. Эта модель является продуктом недавнего Амазонская наука исследование (бумаги и официальный блоге здесь) и был широко принят сообществом машинного обучения с различными сторонними реализациями (KerasАвтоГлюон,) и функции социальных сетей, такие как чириканьек науке, средний и Kaggle.

Преимущества встроенных алгоритмов SageMaker

При выборе алгоритма для конкретного типа задач и данных использование встроенного алгоритма SageMaker является самым простым вариантом, поскольку это дает следующие основные преимущества:

  • Встроенные алгоритмы не требуют программирования для запуска экспериментов. Единственные входные данные, которые вам нужно предоставить, — это данные, гиперпараметры и вычислительные ресурсы. Это позволяет проводить эксперименты быстрее и с меньшими затратами на отслеживание результатов и изменений кода.
  • Встроенные алгоритмы поставляются с распараллеливанием между несколькими экземплярами вычислений и встроенной поддержкой графического процессора для всех применимых алгоритмов (некоторые алгоритмы могут быть не включены из-за присущих им ограничений). Если у вас есть много данных для обучения модели, большинство встроенных алгоритмов можно легко масштабировать в соответствии с потребностями. Даже если у вас уже есть предварительно обученная модель, все же может быть проще использовать ее следствие в SageMaker и вводить уже известные гиперпараметры, чем портировать ее и самостоятельно писать сценарий обучения.
  • Вы являетесь владельцем полученных артефактов модели. Вы можете взять эту модель и развернуть ее в SageMaker для нескольких различных шаблонов вывода (ознакомьтесь со всеми доступные типы развертывания) и легкое масштабирование и управление конечными точками, или вы можете развернуть его там, где вам это нужно.

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

Обучите встроенный алгоритм с помощью SageMaker SDK

Чтобы обучить выбранную модель, нам нужно получить URI этой модели, а также 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 если мы имеем дело с проблемой регрессии. Идентификаторы всех остальных моделей, представленных в этом посте, перечислены в следующей таблице.

Модель Тип проблемы Модель ID
СветGBM классификация lightgbm-classification-model
. Регрессия lightgbm-regression-model
CatBoost классификация catboost-classification-model
. Регрессия catboost-regression-model
AutoGluon-Табулярный классификация autogluon-classification-ensemble
. Регрессия autogluon-regression-ensemble
ВкладкаТрансформер классификация pytorch-tabtransformerclassification-model
. Регрессия pytorch-tabtransformerregression-model

Затем мы определяем, где находится наш ввод. Простой сервис хранения Amazon (Амазон С3). В этом примере мы используем общедоступный образец набора данных. Мы также определяем, куда должны направляться наши выходные данные, и извлекаем список гиперпараметров по умолчанию, необходимых для обучения выбранной модели. Вы можете изменить их значение по своему вкусу.

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 нашего обучающего набора данных. 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, которая позволяет обучать и развертывать встроенные алгоритмы и предварительно обученные модели из различных платформ машинного обучения и концентраторов моделей через графический интерфейс. Он также позволяет развертывать полноценные решения машинного обучения, которые объединяют модели машинного обучения и различные другие сервисы AWS для решения целевого варианта использования.

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

Заключение

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

Принесите свой собственный набор данных и попробуйте эти новые алгоритмы в 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. Он в основном сосредоточен на примерах использования НЛП и помогает клиентам оптимизировать обучение и развертывание модели глубокого обучения. Он также является активным сторонником решений машинного обучения с низким кодом и специализированного оборудования для машинного обучения.

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

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