Neue integrierte Amazon SageMaker-Algorithmen für die tabellarische Datenmodellierung: LightGBM, CatBoost, AutoGluon-Tabular und TabTransformer

Quellknoten: 1541386

Amazon Sage Maker bietet eine Reihe von eingebaute Algorithmen, vorgefertigte Modelle und vorgefertigte Lösungsvorlagen um Datenwissenschaftler und Praktiker des maschinellen Lernens (ML) beim schnellen Einstieg in das Training und die Bereitstellung von ML-Modellen zu unterstützen. Sie können diese Algorithmen und Modelle sowohl für überwachtes als auch für unüberwachtes Lernen verwenden. Sie können verschiedene Arten von Eingabedaten verarbeiten, darunter Tabellen, Bilder und Text.

Ab heute bietet SageMaker vier neue integrierte tabellarische Datenmodellierungsalgorithmen: LightGBM, CatBoost, AutoGluon-Tabular und TabTransformer. Sie können diese beliebten, hochmodernen Algorithmen sowohl für tabellarische Klassifizierungs- als auch für Regressionsaufgaben verwenden. Sie sind über die erhältlich eingebaute Algorithmen auf der SageMaker-Konsole sowie über die Amazon SageMaker-JumpStart Benutzeroberfläche innen Amazon SageMaker-Studio.

Im Folgenden finden Sie eine Liste der vier neuen integrierten Algorithmen mit Links zu ihrer Dokumentation, Beispiel-Notebooks und Quellen.

Dokumentation Beispiel Notebooks Quelle
LightGBM-Algorithmus Regression, Klassifikation LichtGBM
CatBoost-Algorithmus Regression, Klassifikation CatBoost
AutoGluon-Tabellenalgorithmus Regression, Klassifikation AutoGluon-Tabelle
TabTransformer-Algorithmus Regression, Klassifikation TabTransformer

In den folgenden Abschnitten bieten wir eine kurze technische Beschreibung jedes Algorithmus und Beispiele für das Trainieren eines Modells über das SageMaker SDK oder SageMaker Jumpstart.

LichtGBM

LichtGBM ist eine beliebte und effiziente Open-Source-Implementierung des Gradient Boosting Decision Tree (GBDT)-Algorithmus. GBDT ist ein überwachter Lernalgorithmus, der versucht, eine Zielvariable genau vorherzusagen, indem er ein Ensemble von Schätzungen aus einer Reihe einfacherer und schwächerer Modelle kombiniert. LightGBM verwendet zusätzliche Techniken, um die Effizienz und Skalierbarkeit herkömmlicher GBDT erheblich zu verbessern.

CatBoost

CatBoost ist eine beliebte und leistungsstarke Open-Source-Implementierung des GBDT-Algorithmus. Zwei wichtige algorithmische Fortschritte werden in CatBoost eingeführt: die Implementierung von Ordered Boosting, eine permutationsgesteuerte Alternative zum klassischen Algorithmus, und ein innovativer Algorithmus zur Verarbeitung kategorialer Merkmale. Beide Techniken wurden entwickelt, um eine Vorhersageverschiebung zu bekämpfen, die durch eine spezielle Art von Zielleckage verursacht wird, die in allen derzeit existierenden Implementierungen von Gradientenverstärkungsalgorithmen vorhanden ist.

AutoGluon-Tabelle

AutoGluon-Tabelle ist ein von Amazon entwickeltes und gepflegtes Open-Source-AutoML-Projekt, das fortschrittliche Datenverarbeitung, Deep Learning und Multi-Layer-Stack-Ensembling durchführt. Es erkennt automatisch den Datentyp in jeder Spalte für eine robuste Datenvorverarbeitung, einschließlich einer speziellen Behandlung von Textfeldern. AutoGluon passt zu verschiedenen Modellen, von handelsüblichen verstärkten Bäumen bis hin zu kundenspezifischen neuronalen Netzwerkmodellen. Diese Modelle werden auf neuartige Weise zusammengestellt: Modelle werden in mehreren Schichten gestapelt und schichtweise trainiert, was garantiert, dass Rohdaten innerhalb einer bestimmten Zeitvorgabe in qualitativ hochwertige Vorhersagen übersetzt werden können. Eine Überanpassung wird während dieses Prozesses gemildert, indem die Daten auf verschiedene Arten aufgeteilt werden, wobei die Out-of-Fold-Beispiele sorgfältig verfolgt werden. AutoGluon ist auf Leistung optimiert und seine sofort einsatzbereite Verwendung hat mehrere Top-3- und Top-10-Platzierungen bei Data-Science-Wettbewerben erreicht.

TabTransformer

TabTransformer ist eine neuartige tiefe tabellarische Datenmodellierungsarchitektur für überwachtes Lernen. Der TabTransformer basiert auf auf Selbstaufmerksamkeit basierenden Transformern. Die Transformer-Ebenen wandeln die Einbettungen kategorialer Merkmale in robuste kontextbezogene Einbettungen um, um eine höhere Vorhersagegenauigkeit zu erreichen. Darüber hinaus sind die von TabTransformer gelernten kontextbezogenen Einbettungen sehr robust gegenüber fehlenden und verrauschten Datenmerkmalen und bieten eine bessere Interpretierbarkeit. Dieses Modell ist das Produkt der letzten Amazon-Wissenschaft Forschung (Krepppapier und offiziell Blog-Post hier) und wurde von der ML-Community weithin angenommen, mit verschiedenen Implementierungen von Drittanbietern (KerasAutoGluon,) und Social-Media-Funktionen wie z Tweetsin RichtungDatenwissenschaft, mittel und Kaggle.

Vorteile der in SageMaker integrierten Algorithmen

Bei der Auswahl eines Algorithmus für Ihre spezielle Art von Problem und Daten ist die Verwendung eines in SageMaker integrierten Algorithmus die einfachste Option, da dies die folgenden Hauptvorteile bietet:

  • Die integrierten Algorithmen erfordern keine Programmierung, um mit der Ausführung von Experimenten zu beginnen. Die einzigen Eingaben, die Sie bereitstellen müssen, sind die Daten, Hyperparameter und Rechenressourcen. Dadurch können Sie Experimente schneller ausführen, mit weniger Overhead für das Nachverfolgen von Ergebnissen und Codeänderungen.
  • Die integrierten Algorithmen werden mit Parallelisierung über mehrere Compute-Instanzen und GPU-Unterstützung für alle anwendbaren Algorithmen geliefert (einige Algorithmen sind aufgrund von inhärenten Einschränkungen möglicherweise nicht enthalten). Wenn Sie viele Daten zum Trainieren Ihres Modells haben, können die meisten integrierten Algorithmen problemlos skaliert werden, um den Bedarf zu decken. Selbst wenn Sie bereits über ein vortrainiertes Modell verfügen, ist es möglicherweise immer noch einfacher, dessen logische Entsprechung in SageMaker zu verwenden und die bereits bekannten Hyperparameter einzugeben, anstatt es zu portieren und selbst ein Trainingsskript zu schreiben.
  • Sie sind der Eigentümer der resultierenden Modellartefakte. Sie können dieses Modell nehmen und es auf SageMaker für mehrere verschiedene Inferenzmuster einsetzen (sehen Sie sich alle verfügbare Bereitstellungstypen) und einfache Endpunktskalierung und -verwaltung, oder Sie können es überall dort bereitstellen, wo Sie es benötigen.

Sehen wir uns nun an, wie man einen dieser eingebauten Algorithmen trainiert.

Trainieren Sie einen integrierten Algorithmus mit dem SageMaker SDK

Um ein ausgewähltes Modell zu trainieren, müssen wir den URI dieses Modells sowie den des Trainingsskripts und das für das Training verwendete Container-Image abrufen. Glücklicherweise hängen diese drei Eingaben ausschließlich vom Modellnamen und der Version ab (eine Liste der verfügbaren Modelle finden Sie unter Verfügbare JumpStart-Modelltabelle) und den Instance-Typ, für den Sie trainieren möchten. Dies wird im folgenden Code-Snippet demonstriert:

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
)

Das train_model_id ändert sich zu lightgbm-regression-model wenn wir es mit einem Regressionsproblem zu tun haben. Die IDs für alle anderen in diesem Beitrag vorgestellten Modelle sind in der folgenden Tabelle aufgeführt.

Modell Problemtyp Modell-ID
LichtGBM Klassifikation lightgbm-classification-model
. Regression lightgbm-regression-model
CatBoost Klassifikation catboost-classification-model
. Regression catboost-regression-model
AutoGluon-Tabelle Klassifikation autogluon-classification-ensemble
. Regression autogluon-regression-ensemble
TabTransformer Klassifikation pytorch-tabtransformerclassification-model
. Regression pytorch-tabtransformerregression-model

Wir definieren dann, wo unser Eingang ist Amazon Simple Storage-Service (Amazon S3). Wir verwenden für dieses Beispiel einen öffentlichen Beispieldatensatz. Wir definieren auch, wohin unsere Ausgabe gehen soll, und rufen die Standardliste der Hyperparameter ab, die zum Trainieren des ausgewählten Modells erforderlich sind. Sie können ihren Wert nach Belieben ändern.

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

Schließlich instanziieren wir einen SageMaker Estimator mit allen abgerufenen Eingaben und starten Sie den Trainingsjob mit .fit, und übergeben Sie ihm unseren Trainingsdatensatz-URI. Das entry_point bereitgestelltes Skript heißt transfer_learning.py (dasselbe gilt für andere Tasks und Algorithmen) und der Eingangsdatenkanal, an den übergeben wird .fit muss benannt werden 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)

Beachten Sie, dass Sie integrierte Algorithmen mit trainieren können Automatische Modellabstimmung von SageMaker um die optimalen Hyperparameter auszuwählen und die Modellleistung weiter zu verbessern.

Trainieren Sie einen integrierten Algorithmus mit SageMaker JumpStart

Sie können diese integrierten Algorithmen auch mit wenigen Klicks über die SageMaker JumpStart-Benutzeroberfläche trainieren. JumpStart ist eine SageMaker-Funktion, mit der Sie integrierte Algorithmen und vortrainierte Modelle aus verschiedenen ML-Frameworks und Modell-Hubs über eine grafische Oberfläche trainieren und bereitstellen können. Es ermöglicht Ihnen auch, vollwertige ML-Lösungen bereitzustellen, die ML-Modelle und verschiedene andere AWS-Services aneinanderreihen, um einen gezielten Anwendungsfall zu lösen.

Weitere Informationen finden Sie unter Führen Sie die Textklassifizierung mit Amazon SageMaker JumpStart mithilfe von TensorFlow Hub- und Hugging Face-Modellen durch.

Zusammenfassung

In diesem Beitrag haben wir die Einführung von vier leistungsstarken neuen integrierten Algorithmen für ML auf tabellarischen Datensätzen angekündigt, die jetzt auf SageMaker verfügbar sind. Wir haben eine technische Beschreibung dieser Algorithmen sowie einen beispielhaften Trainingsjob für LightGBM mit dem SageMaker SDK bereitgestellt.

Bringen Sie Ihren eigenen Datensatz mit und probieren Sie diese neuen Algorithmen auf SageMaker aus, und sehen Sie sich die Beispiel-Notebooks an, um integrierte Algorithmen zu verwenden, die verfügbar sind GitHub.


Über die Autoren

Xin Huang ist ein angewandter Wissenschaftler für Amazon SageMaker JumpStart und die integrierten Algorithmen von Amazon SageMaker. Er konzentriert sich auf die Entwicklung skalierbarer Algorithmen für maschinelles Lernen. Seine Forschungsinteressen liegen im Bereich der Verarbeitung natürlicher Sprache, erklärbares Deep Learning auf tabellarischen Daten und robuste Analyse von nichtparametrischem Raum-Zeit-Clustering. Er hat viele Artikel in ACL-, ICDM-, KDD-Konferenzen und in der Zeitschrift Royal Statistical Society: Series A veröffentlicht.

Dr. Ashish Khetan ist Senior Applied Scientist mit Amazon SageMaker JumpStart und integrierten Amazon SageMaker-Algorithmen und hilft bei der Entwicklung von Algorithmen für maschinelles Lernen. Er ist ein aktiver Forscher auf dem Gebiet des maschinellen Lernens und der statistischen Inferenz und hat viele Artikel auf den Konferenzen NeurIPS, ICML, ICLR, JMLR, ACL und EMNLP veröffentlicht.

Joao Moura ist AI/ML Specialist Solutions Architect bei Amazon Web Services. Er konzentriert sich hauptsächlich auf NLP-Anwendungsfälle und hilft Kunden, das Training und die Bereitstellung von Deep-Learning-Modellen zu optimieren. Er ist auch ein aktiver Befürworter von Low-Code-ML-Lösungen und ML-spezialisierter Hardware.

Zeitstempel:

Mehr von AWS Maschinelles Lernen