Noi algoritmi Amazon SageMaker încorporați pentru modelarea datelor tabulare: LightGBM, CatBoost, AutoGluon-Tabular și TabTransformer

Nodul sursă: 1541386

Amazon SageMaker oferă o suită de algoritmi încorporați, modele pre-antrenate, și șabloane de soluții prefabricate pentru a ajuta oamenii de știință ai datelor și practicanții de învățare automată (ML) să înceapă pregătirea și implementarea rapidă a modelelor ML. Puteți utiliza acești algoritmi și modele atât pentru învățarea supravegheată, cât și pentru învățarea nesupravegheată. Ele pot procesa diferite tipuri de date de intrare, inclusiv tabelare, imagini și text.

Începând de astăzi, SageMaker oferă patru noi algoritmi de modelare a datelor tabulare încorporați: LightGBM, CatBoost, AutoGluon-Tabular și TabTransformer. Puteți utiliza acești algoritmi populari, de ultimă generație, atât pentru sarcini de clasificare tabelară, cât și pentru sarcini de regresie. Sunt disponibile prin intermediul algoritmi încorporați pe consola SageMaker, precum și prin intermediul Amazon SageMaker JumpStart UI în interior Amazon SageMaker Studio.

Următoarea este lista celor patru noi algoritmi încorporați, cu link-uri către documentația lor, exemple de caiete și sursă.

Documentație Caiete de exemplu Sursă
LightGBM Algorithm Regres, Clasificare LightGBM
CatBoost Algorithm Regres, Clasificare CatBoost
AutoGluon-Tabular Algorithm Regres, Clasificare AutoGluon-Tabular
TabTransformer Algorithm Regres, Clasificare TabTransformer

În secțiunile următoare, oferim o scurtă descriere tehnică a fiecărui algoritm și exemple despre cum să antrenați un model prin intermediul SDK-ului SageMaker sau SageMaker Jumpstart.

LightGBM

LightGBM este o implementare open-source populară și eficientă a algoritmului Gradient Boosting Decision Tree (GBDT). GBDT este un algoritm de învățare supravegheată care încearcă să prezică cu acuratețe o variabilă țintă combinând un ansamblu de estimări dintr-un set de modele mai simple și mai slabe. LightGBM folosește tehnici suplimentare pentru a îmbunătăți semnificativ eficiența și scalabilitatea GBDT-ului convențional.

CatBoost

CatBoost este o implementare open-source populară și de înaltă performanță a algoritmului GBDT. Două progrese algoritmice critice sunt introduse în CatBoost: implementarea amplificarii ordonate, o alternativă bazată pe permutare la algoritmul clasic și un algoritm inovator pentru procesarea caracteristicilor categoriale. Ambele tehnici au fost create pentru a combate o schimbare de predicție cauzată de un tip special de scurgere țintă prezentă în toate implementările existente în prezent ale algoritmilor de creștere a gradientului.

AutoGluon-Tabular

AutoGluon-Tabular este un proiect AutoML cu sursă deschisă dezvoltat și întreținut de Amazon, care realizează procesare avansată a datelor, învățare profundă și ansamblu de stive pe mai multe straturi. Recunoaște automat tipul de date din fiecare coloană pentru o preprocesare robustă a datelor, inclusiv o gestionare specială a câmpurilor de text. AutoGluon se potrivește cu diverse modele, de la arbori amplificați standard până la modele personalizate de rețele neuronale. Aceste modele sunt asamblate într-un mod nou: modelele sunt stivuite în mai multe straturi și antrenate într-o manieră stratificată, care garantează că datele brute pot fi traduse în predicții de înaltă calitate într-o anumită constrângere de timp. Supra-adaptarea este atenuată pe tot parcursul acestui proces prin împărțirea datelor în diferite moduri, cu urmărirea atentă a exemplelor out-of-fold. AutoGluon este optimizat pentru performanță, iar utilizarea sa ieșită din cutie a obținut mai multe poziții de top 3 și 10 în competițiile de știință a datelor.

TabTransformer

TabTransformer este o arhitectură nouă de modelare a datelor tabulare profunde pentru învățarea supravegheată. TabTransformer este construit pe transformatoare bazate pe auto-atenție. Straturile Transformer transformă încorporarea caracteristicilor categoriale în înglobare contextuală robustă pentru a obține o precizie mai mare a predicției. În plus, înglobările contextuale învățate de la TabTransformer sunt foarte robuste atât împotriva caracteristicilor de date lipsă, cât și a celor zgomotoase și oferă o mai bună interpretare. Acest model este produsul recent Știința Amazonului cercetare (hârtie si oficial blog aici) și a fost adoptat pe scară largă de comunitatea ML, cu diverse implementări de la terți (KerasAutoGluon,) și funcții de social media, cum ar fi tweetsspre știința datelor, mediu și Kaggle.

Beneficiile algoritmilor încorporați SageMaker

Când selectați un algoritm pentru tipul dvs. particular de problemă și date, utilizarea unui algoritm încorporat SageMaker este cea mai ușoară opțiune, deoarece acest lucru vine cu următoarele beneficii majore:

  • Algoritmii încorporați nu necesită codificare pentru a începe să ruleze experimente. Singurele intrări pe care trebuie să le furnizați sunt datele, hiperparametrii și resursele de calcul. Acest lucru vă permite să desfășurați experimente mai rapid, cu mai puține cheltuieli pentru urmărirea rezultatelor și modificările codului.
  • Algoritmii încorporați vin cu paralelizare în mai multe instanțe de calcul și suport pentru GPU imediat pentru toți algoritmii aplicabili (unii algoritmi pot să nu fie incluși din cauza limitărilor inerente). Dacă aveți o mulțime de date cu care să vă antrenați modelul, majoritatea algoritmilor încorporați se pot scala cu ușurință pentru a satisface cererea. Chiar dacă aveți deja un model pre-antrenat, poate fi totuși mai ușor să utilizați corolarul său în SageMaker și să introduceți hiperparametrii pe care îi cunoașteți deja, mai degrabă decât să-l transferați și să scrieți singur un script de antrenament.
  • Sunteți proprietarul artefactelor model rezultate. Puteți lua acel model și îl puteți implementa pe SageMaker pentru mai multe modele de inferență diferite (consultați toate modelele tipurile de implementare disponibile) și scalarea și gestionarea ușoară a punctelor finale, sau îl puteți implementa oriunde mai aveți nevoie.

Să vedem acum cum să antrenăm unul dintre acești algoritmi încorporați.

Antrenați un algoritm încorporat folosind SDK-ul SageMaker

Pentru a antrena un model selectat, trebuie să obținem URI-ul modelului respectiv, precum și cel al scriptului de antrenament și al imaginii container utilizate pentru antrenament. Din fericire, aceste trei intrări depind numai de numele modelului, versiune (pentru o listă a modelelor disponibile, vezi Tabelul modelului disponibil JumpStart), și tipul de instanță pe care doriți să vă antrenați. Acest lucru este demonstrat în următorul fragment de cod:

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 schimbări la lightgbm-regression-model dacă avem de-a face cu o problemă de regresie. ID-urile pentru toate celelalte modele introduse în acest post sunt listate în tabelul următor.

Model Tipul problemei ID model
LightGBM Clasificare lightgbm-classification-model
. Regres lightgbm-regression-model
CatBoost Clasificare catboost-classification-model
. Regres catboost-regression-model
AutoGluon-Tabular Clasificare autogluon-classification-ensemble
. Regres autogluon-regression-ensemble
TabTransformer Clasificare pytorch-tabtransformerclassification-model
. Regres pytorch-tabtransformerregression-model

Apoi definim unde este activată intrarea noastră Serviciul Amazon de stocare simplă (Amazon S3). Utilizăm un set de date eșantion public pentru acest exemplu. De asemenea, definim unde vrem să meargă rezultatul nostru și recuperăm lista implicită de hiperparametri necesari pentru a antrena modelul selectat. Le puteți schimba valoarea după bunul plac.

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

În cele din urmă, instanțiem un SageMaker Estimator cu toate intrările recuperate și lansați jobul de formare cu .fit, transmițându-i URI-ul setului de date de antrenament. The entry_point scriptul furnizat este numit transfer_learning.py (la fel pentru alte sarcini și algoritmi) și canalul de date de intrare transmis .fit trebuie numit 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)

Rețineți că puteți antrena algoritmi încorporați cu Ajustarea automată a modelului SageMaker pentru a selecta hiperparametrii optimi și pentru a îmbunătăți în continuare performanța modelului.

Antrenați un algoritm încorporat folosind SageMaker JumpStart

De asemenea, puteți antrena oricare dintre acești algoritmi încorporați cu câteva clicuri prin interfața de utilizare SageMaker JumpStart. JumpStart este o caracteristică SageMaker care vă permite să antrenați și să implementați algoritmi încorporați și modele pre-antrenate din diferite cadre ML și hub-uri de model printr-o interfață grafică. De asemenea, vă permite să implementați soluții ML complete care îmbină modele ML și diverse alte servicii AWS pentru a rezolva un caz de utilizare vizat.

Pentru mai multe informații, consultați Rulați clasificarea textului cu Amazon SageMaker JumpStart folosind modelele TensorFlow Hub și Hugging Face.

Concluzie

În această postare, am anunțat lansarea a patru noi algoritmi puternici încorporați pentru ML pe seturi de date tabulare disponibile acum pe SageMaker. Am furnizat o descriere tehnică a ceea ce sunt acești algoritmi, precum și un exemplu de muncă de instruire pentru LightGBM folosind SDK-ul SageMaker.

Aduceți-vă propriul set de date și încercați acești algoritmi noi pe SageMaker și consultați exemplele de blocnotes pentru a utiliza algoritmii încorporați disponibili pe GitHub.


Despre Autori

Dr. Xin Huang este un om de știință aplicat pentru algoritmii încorporați Amazon SageMaker JumpStart și Amazon SageMaker. El se concentrează pe dezvoltarea de algoritmi scalabili de învățare automată. Interesele sale de cercetare sunt în domeniul procesării limbajului natural, al învățării profunde explicabile pe date tabulare și al analizei robuste a grupării neparametrice spațiu-timp. A publicat multe lucrări în ACL, ICDM, conferințe KDD și Royal Statistical Society: Series A journal.

Dr. Ashish Khetan este om de știință aplicat senior cu algoritmi încorporați Amazon SageMaker JumpStart și Amazon SageMaker și ajută la dezvoltarea algoritmilor de învățare automată. Este un cercetător activ în învățarea automată și inferența statistică și a publicat multe lucrări în conferințele NeurIPS, ICML, ICLR, JMLR, ACL și EMNLP.

João Moura este arhitect specializat în soluții AI/ML la Amazon Web Services. El se concentrează în principal pe cazuri de utilizare a NLP și ajută clienții să optimizeze instruirea și implementarea modelului Deep Learning. El este, de asemenea, un susținător activ al soluțiilor ML low-code și al hardware-ului specializat în ML.

Timestamp-ul:

Mai mult de la Învățare automată AWS