Nieuwe ingebouwde Amazon SageMaker-algoritmen voor gegevensmodellering in tabelvorm: LightGBM, CatBoost, AutoGluon-Tabular en TabTransformer

Bronknooppunt: 1541386

Amazon Sage Maker biedt een suite van ingebouwde algoritmen, voorgetrainde modellen en vooraf gebouwde oplossingssjablonen om datawetenschappers en machine learning (ML)-beoefenaars te helpen snel aan de slag te gaan met het trainen en implementeren van ML-modellen. U kunt deze algoritmen en modellen gebruiken voor zowel begeleid als niet-gesuperviseerd leren. Ze kunnen verschillende soorten invoergegevens verwerken, waaronder tabellen, afbeeldingen en tekst.

Vanaf vandaag biedt SageMaker vier nieuwe ingebouwde algoritmen voor gegevensmodellering in tabelvorm: LightGBM, CatBoost, AutoGluon-Tabular en TabTransformer. U kunt deze populaire, geavanceerde algoritmen gebruiken voor zowel tabellarische classificatie als regressietaken. Ze zijn verkrijgbaar via de ingebouwde algoritmen op de SageMaker-console en via de Amazon SageMaker JumpStart UI binnen Amazon SageMaker Studio.

Het volgende is de lijst van de vier nieuwe ingebouwde algoritmen, met links naar hun documentatie, voorbeeldnotitieblokken en bron.

Documentatie Voorbeeld notebooks bron
LightGBM-algoritme Regressie, Classificatie LichtGBM
CatBoost-algoritme Regressie, Classificatie KatBoost
AutoGluon-Tabulaire Algoritme Regressie, Classificatie AutoGluon-tabel
TabTransformer-algoritme Regressie, Classificatie Tab Transformator

In de volgende secties geven we een korte technische beschrijving van elk algoritme en voorbeelden van hoe een model te trainen via de SageMaker SDK of SageMaker Jumpstart.

LichtGBM

LichtGBM is een populaire en efficiรซnte open-source implementatie van het Gradient Boosting Decision Tree (GBDT) algoritme. GBDT is een gesuperviseerd leeralgoritme dat probeert een doelvariabele nauwkeurig te voorspellen door een ensemble van schattingen van een reeks eenvoudigere en zwakkere modellen te combineren. LightGBM gebruikt aanvullende technieken om de efficiรซntie en schaalbaarheid van conventionele GBDT aanzienlijk te verbeteren.

KatBoost

KatBoost is een populaire en krachtige open-source implementatie van het GBDT-algoritme. In CatBoost worden twee cruciale algoritmische vooruitgangen geรฏntroduceerd: de implementatie van geordende boosting, een permutatie-gestuurd alternatief voor het klassieke algoritme, en een innovatief algoritme voor het verwerken van categorische kenmerken. Beide technieken zijn gemaakt om een โ€‹โ€‹voorspellingsverschuiving te bestrijden die wordt veroorzaakt door een speciaal soort lekkage van doelen die aanwezig is in alle momenteel bestaande implementaties van gradiรซntverhogende algoritmen.

AutoGluon-tabel

AutoGluon-tabel is een open-source AutoML-project dat is ontwikkeld en onderhouden door Amazon en dat geavanceerde gegevensverwerking, diep leren en stapelen met meerdere lagen uitvoert. Het herkent automatisch het gegevenstype in elke kolom voor robuuste gegevensvoorverwerking, inclusief speciale verwerking van tekstvelden. AutoGluon past op verschillende modellen, variรซrend van kant-en-klare versterkte bomen tot aangepaste neurale netwerkmodellen. Deze modellen zijn op een nieuwe manier samengevoegd: modellen worden in meerdere lagen gestapeld en op een laaggewijze manier getraind, wat garandeert dat onbewerkte gegevens binnen een bepaalde tijdsdruk kunnen worden vertaald in hoogwaardige voorspellingen. Overfitting wordt tijdens dit proces beperkt door de gegevens op verschillende manieren te splitsen met zorgvuldige tracking van out-of-fold voorbeelden. AutoGluon is geoptimaliseerd voor prestaties en het out-of-the-box gebruik heeft verschillende top-3- en top-10-posities behaald in datawetenschapscompetities.

Tab Transformator

Tab Transformator is een nieuwe architectuur voor diepgaande gegevensmodellering in tabellen voor begeleid leren. De TabTransformer is gebouwd op op zelf-aandacht gebaseerde Transformers. De Transformer-lagen transformeren de inbedding van categorische kenmerken in robuuste contextuele inbeddingen om een โ€‹โ€‹hogere voorspellingsnauwkeurigheid te bereiken. Bovendien zijn de contextuele inbeddingen die van TabTransformer zijn geleerd, zeer robuust tegen zowel ontbrekende als ruisrijke gegevensfuncties en bieden ze een betere interpreteerbaarheid. Dit model is het product van recente Amazone-wetenschap Onderzoek (papier en officieel blogpost hier) en is op grote schaal overgenomen door de ML-gemeenschap, met verschillende implementaties van derden (KerasAutoGluon,) en functies voor sociale media zoals tweetsrichting datawetenschap, gemiddeld, en Kaggle.

Voordelen van ingebouwde algoritmen van SageMaker

Wanneer u een algoritme selecteert voor uw specifieke type probleem en gegevens, is het gebruik van een ingebouwd SageMaker-algoritme de gemakkelijkste optie, omdat dit de volgende grote voordelen met zich meebrengt:

  • De ingebouwde algoritmen vereisen geen codering om experimenten uit te voeren. De enige invoer die u hoeft te verstrekken, zijn de gegevens, hyperparameters en rekenresources. Hierdoor kunt u experimenten sneller uitvoeren, met minder overhead voor het bijhouden van resultaten en codewijzigingen.
  • De ingebouwde algoritmen worden geleverd met parallellisatie over meerdere rekeninstances en GPU-ondersteuning direct uit de doos voor alle toepasselijke algoritmen (sommige algoritmen zijn mogelijk niet inbegrepen vanwege inherente beperkingen). Als u veel gegevens heeft om uw model mee te trainen, kunnen de meeste ingebouwde algoritmen eenvoudig worden geschaald om aan de vraag te voldoen. Zelfs als je al een vooraf getraind model hebt, kan het nog steeds gemakkelijker zijn om het uitvloeisel ervan in SageMaker te gebruiken en de hyperparameters die je al kent in te voeren in plaats van het over te dragen en zelf een trainingsscript te schrijven.
  • U bent de eigenaar van de resulterende modelartefacten. Je kunt dat model nemen en het op SageMaker inzetten voor verschillende inferentiepatronen (bekijk alle beschikbare implementatietypes) en eenvoudig schalen en beheren van eindpunten, of u kunt het implementeren waar u het ook maar nodig hebt.

Laten we nu kijken hoe we een van deze ingebouwde algoritmen kunnen trainen.

Train een ingebouwd algoritme met behulp van de SageMaker SDK

Om een โ€‹โ€‹geselecteerd model te trainen, moeten we de URI van dat model ophalen, evenals die van het trainingsscript en de containerafbeelding die voor de training wordt gebruikt. Gelukkig zijn deze drie ingangen uitsluitend afhankelijk van de modelnaam, versie (voor een lijst van de beschikbare modellen, zie Tabel met beschikbare JumpStart-modellen), en het type instantie waarop u wilt trainen. Dit wordt gedemonstreerd in het volgende codefragment:

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
)

De train_model_id veranderd naar lightgbm-regression-model als we te maken hebben met een regressieprobleem. De ID's voor alle andere modellen die in dit bericht zijn geรฏntroduceerd, worden vermeld in de volgende tabel.

Model Probleemtype Model ID
LichtGBM Classificatie lightgbm-classification-model
. Regressie lightgbm-regression-model
KatBoost Classificatie catboost-classification-model
. Regressie catboost-regression-model
AutoGluon-tabel Classificatie autogluon-classification-ensemble
. Regressie autogluon-regression-ensemble
Tab Transformator Classificatie pytorch-tabtransformerclassification-model
. Regressie pytorch-tabtransformerregression-model

We definiรซren dan waar onze input aan staat Amazon eenvoudige opslagservice (Amazon S3). Voor dit voorbeeld gebruiken we een openbare voorbeeldgegevensset. We definiรซren ook waar we onze uitvoer willen hebben en halen de standaardlijst met hyperparameters op die nodig zijn om het geselecteerde model te trainen. U kunt hun waarde naar wens wijzigen.

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

Ten slotte instantiรซren we een SageMaker Estimator met alle opgehaalde invoer en start de trainingstaak met .fit, door het door te geven aan onze trainingsdataset-URI. De entry_point het opgegeven script heeft een naam transfer_learning.py (hetzelfde voor andere taken en algoritmen), en het invoergegevenskanaal dat wordt doorgegeven aan .fit moet worden genoemd 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)

Merk op dat u ingebouwde algoritmen kunt trainen met: Automatische afstemming van SageMaker-modellen om de optimale hyperparameters te selecteren en de modelprestaties verder te verbeteren.

Train een ingebouwd algoritme met SageMaker JumpStart

U kunt deze ingebouwde algoritmen ook met een paar klikken trainen via de SageMaker JumpStart UI. JumpStart is een SageMaker-functie waarmee u ingebouwde algoritmen en vooraf getrainde modellen uit verschillende ML-frameworks en modelhubs kunt trainen en implementeren via een grafische interface. Het stelt u ook in staat om volwaardige ML-oplossingen te implementeren die ML-modellen en verschillende andere AWS-services aan elkaar rijgen om een โ€‹โ€‹gerichte use case op te lossen.

Raadpleeg voor meer informatie Voer tekstclassificatie uit met Amazon SageMaker JumpStart met behulp van TensorFlow Hub en Hugging Face-modellen.

Conclusie

In dit bericht hebben we de lancering aangekondigd van vier krachtige nieuwe ingebouwde algoritmen voor ML op tabelgegevenssets die nu beschikbaar zijn op SageMaker. We hebben een technische beschrijving gegeven van wat deze algoritmen zijn, evenals een voorbeeld van een trainingstaak voor LightGBM met behulp van de SageMaker SDK.

Breng uw eigen dataset mee en probeer deze nieuwe algoritmen op SageMaker, en bekijk de voorbeeldnotitieblokken om ingebouwde algoritmen te gebruiken die beschikbaar zijn op GitHub.


Over de auteurs

Dr Xin Huang is een toegepast wetenschapper voor de ingebouwde algoritmen van Amazon SageMaker JumpStart en Amazon SageMaker. Hij richt zich op het ontwikkelen van schaalbare algoritmen voor machine learning. Zijn onderzoeksinteresses liggen op het gebied van natuurlijke taalverwerking, verklaarbaar diep leren op tabelgegevens en robuuste analyse van niet-parametrische ruimte-tijdclustering. Hij heeft veel artikelen gepubliceerd in ACL, ICDM, KDD-conferenties en het tijdschrift Royal Statistical Society: Series A.

Dr Ashish Khetan is een Senior Applied Scientist met ingebouwde algoritmen van Amazon SageMaker JumpStart en Amazon SageMaker en helpt bij het ontwikkelen van algoritmen voor machine learning. Hij is een actief onderzoeker op het gebied van machine learning en statistische inferentie en heeft veel artikelen gepubliceerd op NeurIPS-, ICML-, ICLR-, JMLR-, ACL- en EMNLP-conferenties.

Joao Moura is een AI/ML Specialist Solutions Architect bij Amazon Web Services. Hij is vooral gericht op NLP-use-cases en helpt klanten bij het optimaliseren van de training en implementatie van Deep Learning-modellen. Hij is ook een actief voorstander van low-code ML-oplossingen en ML-gespecialiseerde hardware.

Tijdstempel:

Meer van AWS-machine learning