Nuovi algoritmi Amazon SageMaker integrati per la modellazione di dati tabulari: LightGBM, CatBoost, AutoGluon-Tabular e TabTransformer

Nodo di origine: 1541386

Amazon Sage Maker fornisce una suite di algoritmi incorporati, modelli pre-addestratie modelli di soluzioni predefiniti per aiutare i data scientist e i professionisti dell'apprendimento automatico (ML) a iniziare ad addestrare e distribuire rapidamente i modelli ML. È possibile utilizzare questi algoritmi e modelli sia per l'apprendimento supervisionato che non supervisionato. Possono elaborare vari tipi di dati di input, inclusi tabulari, immagini e testo.

A partire da oggi, SageMaker fornisce quattro nuovi algoritmi di modellazione dei dati tabulari integrati: LightGBM, CatBoost, AutoGluon-Tabular e TabTransformer. È possibile utilizzare questi popolari algoritmi all'avanguardia sia per la classificazione tabellare che per le attività di regressione. Sono disponibili tramite il algoritmi incorporati sulla console SageMaker e tramite il JumpStart di Amazon SageMaker Interfaccia utente interna Amazon Sage Maker Studio.

Di seguito è riportato l'elenco dei quattro nuovi algoritmi integrati, con collegamenti alla relativa documentazione, quaderni di esempio e origine.

Documentazione Notebook di esempio Fonte
Algoritmo LightGBM Regressione, Classificazione LuceGBM
Algoritmo CatBoost Regressione, Classificazione Cat Boost
Algoritmo AutoGluon-Tabulare Regressione, Classificazione AutoGluon-Tabulare
Algoritmo TabTransformer Regressione, Classificazione Trasformatore di schede

Nelle sezioni seguenti viene fornita una breve descrizione tecnica di ciascun algoritmo ed esempi su come addestrare un modello tramite SageMaker SDK o SageMaker Jumpstart.

LuceGBM

LuceGBM è un'implementazione open source popolare ed efficiente dell'algoritmo Gradient Boosting Decision Tree (GBDT). GBDT è un algoritmo di apprendimento supervisionato che tenta di prevedere con precisione una variabile target combinando un insieme di stime da un insieme di modelli più semplici e più deboli. LightGBM utilizza tecniche aggiuntive per migliorare significativamente l'efficienza e la scalabilità del GBDT convenzionale.

Cat Boost

Cat Boost è un'implementazione open source popolare e ad alte prestazioni dell'algoritmo GBDT. In CatBoost vengono introdotti due progressi algoritmici critici: l'implementazione dell'aumento ordinato, un'alternativa guidata dalla permutazione all'algoritmo classico e un algoritmo innovativo per l'elaborazione di caratteristiche categoriali. Entrambe le tecniche sono state create per combattere un cambiamento di previsione causato da un tipo speciale di perdita di destinazione presente in tutte le implementazioni attualmente esistenti di algoritmi di aumento del gradiente.

AutoGluon-Tabulare

AutoGluon-Tabulare è un progetto AutoML open source sviluppato e mantenuto da Amazon che esegue elaborazione dati avanzata, deep learning e stacking multistrato. Riconosce automaticamente il tipo di dati in ciascuna colonna per una solida preelaborazione dei dati, inclusa la gestione speciale dei campi di testo. AutoGluon si adatta a vari modelli che vanno dagli alberi potenziati standard ai modelli di rete neurale personalizzati. Questi modelli sono raggruppati in un modo nuovo: i modelli sono impilati in più livelli e addestrati in modo da garantire che i dati grezzi possano essere tradotti in previsioni di alta qualità entro un determinato vincolo di tempo. L'eccessivo adattamento viene mitigato durante questo processo suddividendo i dati in vari modi con un attento monitoraggio di esempi fuori piega. AutoGluon è ottimizzato per le prestazioni e il suo utilizzo immediato ha raggiunto diverse posizioni tra le prime 3 e le prime 10 nelle competizioni di data science.

Trasformatore di schede

Trasformatore di schede è una nuova architettura di modellazione di dati tabulari per l'apprendimento supervisionato. Il TabTransformer è costruito su Transformers basati sull'auto-attenzione. I livelli Transformer trasformano gli incorporamenti di caratteristiche categoriali in solidi incorporamenti contestuali per ottenere una maggiore precisione di previsione. Inoltre, gli incorporamenti contestuali appresi da TabTransformer sono altamente robusti rispetto alle funzionalità di dati mancanti e rumorose e offrono una migliore interpretabilità. Questo modello è il prodotto di recente Scienza amazzonica ricerca (carta e ufficiale post sul blog qui) ed è stato ampiamente adottato dalla comunità ML, con varie implementazioni di terze parti (KerasAutoGluone,) e funzionalità dei social media come tweetverso la scienza dei dati, medio e Kaggle.

Vantaggi degli algoritmi integrati di SageMaker

Quando si seleziona un algoritmo per il proprio tipo particolare di problema e dati, l'utilizzo di un algoritmo integrato di SageMaker è l'opzione più semplice, poiché ciò comporta i seguenti vantaggi principali:

  • Gli algoritmi integrati non richiedono codifica per iniziare a eseguire esperimenti. Gli unici input che devi fornire sono i dati, gli iperparametri e le risorse di calcolo. Ciò ti consente di eseguire esperimenti più rapidamente, con un sovraccarico minore per il monitoraggio dei risultati e delle modifiche al codice.
  • Gli algoritmi integrati sono dotati di parallelizzazione su più istanze di calcolo e supporto GPU pronto all'uso per tutti gli algoritmi applicabili (alcuni algoritmi potrebbero non essere inclusi a causa di limitazioni intrinseche). Se hai molti dati con cui addestrare il tuo modello, la maggior parte degli algoritmi integrati può facilmente scalare per soddisfare la domanda. Anche se disponi già di un modello pre-addestrato, potrebbe essere comunque più semplice utilizzare il suo corollario in SageMaker e inserire gli iperparametri che già conosci piuttosto che trasferirlo e scrivere tu stesso uno script di addestramento.
  • Sei il proprietario degli artefatti del modello risultanti. Puoi prendere quel modello e distribuirlo su SageMaker per diversi modelli di inferenza (controlla tutti i tipi di distribuzione disponibili) e una facile scalabilità e gestione degli endpoint, oppure puoi distribuirlo ovunque ti serva.

Vediamo ora come addestrare uno di questi algoritmi integrati.

Addestra un algoritmo integrato utilizzando SageMaker SDK

Per addestrare un modello selezionato, dobbiamo ottenere l'URI di quel modello, così come quello dello script di training e l'immagine del contenitore usata per il training. Per fortuna, questi tre input dipendono esclusivamente dal nome del modello, dalla versione (per un elenco dei modelli disponibili, vedere Tabella dei modelli disponibili JumpStart) e il tipo di istanza su cui desideri eseguire l'addestramento. Ciò è dimostrato nel seguente frammento di codice:

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
)

I train_model_id cambia in lightgbm-regression-model se abbiamo a che fare con un problema di regressione. Gli ID per tutti gli altri modelli introdotti in questo post sono elencati nella tabella seguente.

Modello Tipo di problema ID modello
LuceGBM Classificazione lightgbm-classification-model
. Regressione lightgbm-regression-model
Cat Boost Classificazione catboost-classification-model
. Regressione catboost-regression-model
AutoGluon-Tabulare Classificazione autogluon-classification-ensemble
. Regressione autogluon-regression-ensemble
Trasformatore di schede Classificazione pytorch-tabtransformerclassification-model
. Regressione pytorch-tabtransformerregression-model

Definiamo quindi dove si trova il nostro input Servizio di archiviazione semplice Amazon (Amazon S3). Stiamo usando un set di dati di esempio pubblico per questo esempio. Definiamo anche dove vogliamo che il nostro output vada e recuperiamo l'elenco predefinito di iperparametri necessari per addestrare il modello selezionato. Puoi cambiare il loro valore a tuo piacimento.

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

Infine, istanziamo un SageMaker Estimator con tutti gli input recuperati e avvia il lavoro di formazione con .fit, passandogli l'URI del set di dati di addestramento. Il entry_point lo script fornito è denominato transfer_learning.py (lo stesso per altre attività e algoritmi) e il canale dei dati di input a cui è passato .fit deve essere nominato 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)

Nota che puoi addestrare algoritmi integrati con Ottimizzazione automatica del modello di SageMaker per selezionare gli iperparametri ottimali e migliorare ulteriormente le prestazioni del modello.

Addestra un algoritmo integrato utilizzando SageMaker JumpStart

Puoi anche addestrare tutti questi algoritmi integrati con pochi clic tramite l'interfaccia utente di SageMaker JumpStart. JumpStart è una funzionalità di SageMaker che consente di addestrare e distribuire algoritmi integrati e modelli pre-addestrati da vari framework ML e hub modello attraverso un'interfaccia grafica. Ti consente inoltre di distribuire soluzioni ML complete che mettono insieme modelli ML e vari altri servizi AWS per risolvere un caso d'uso mirato.

Per ulteriori informazioni, fare riferimento a Esegui la classificazione del testo con Amazon SageMaker JumpStart utilizzando i modelli TensorFlow Hub e Hugging Face.

Conclusione

In questo post, abbiamo annunciato il lancio di quattro nuovi potenti algoritmi integrati per ML su set di dati tabulari ora disponibili su SageMaker. Abbiamo fornito una descrizione tecnica di cosa sono questi algoritmi, oltre a un esempio di lavoro di formazione per LightGBM utilizzando SageMaker SDK.

Porta il tuo set di dati e prova questi nuovi algoritmi su SageMaker e dai un'occhiata ai quaderni di esempio per utilizzare gli algoritmi integrati disponibili su GitHub.


Informazioni sugli autori

Dott. Xin Huang è uno scienziato applicato per gli algoritmi integrati Amazon SageMaker JumpStart e Amazon SageMaker. Si concentra sullo sviluppo di algoritmi di apprendimento automatico scalabili. I suoi interessi di ricerca sono nell'area dell'elaborazione del linguaggio naturale, del deep learning spiegabile su dati tabulari e dell'analisi robusta del clustering spazio-temporale non parametrico. Ha pubblicato molti articoli su ACL, ICDM, conferenze KDD e Royal Statistical Society: rivista di serie A.

Dottor Ashish Khetan è un Senior Applied Scientist con Amazon SageMaker JumpStart e algoritmi integrati Amazon SageMaker e aiuta a sviluppare algoritmi di machine learning. È un ricercatore attivo nell'apprendimento automatico e nell'inferenza statistica e ha pubblicato molti articoli in conferenze NeurIPS, ICML, ICLR, JMLR, ACL ed EMNLP.

João Moura è un architetto specializzato in soluzioni AI/ML presso Amazon Web Services. Si concentra principalmente sui casi d'uso della NLP e aiuta i clienti a ottimizzare la formazione e l'implementazione del modello di Deep Learning. È anche un attivo sostenitore di soluzioni ML a basso codice e hardware specializzato in ML.

Timestamp:

Di più da Apprendimento automatico di AWS