Novi vgrajeni algoritmi Amazon SageMaker za tabelarično modeliranje podatkov: LightGBM, CatBoost, AutoGluon-Tabular in TabTransformer

Izvorno vozlišče: 1541386

Amazon SageMaker ponuja zbirko vgrajeni algoritmi, predhodno usposobljeni modeliin vnaprej izdelane predloge rešitev za pomoč podatkovnim znanstvenikom in izvajalcem strojnega učenja (ML), da hitro začnejo z usposabljanjem in uvajanjem modelov ML. Te algoritme in modele lahko uporabite za nadzorovano in nenadzorovano učenje. Obdelujejo lahko različne vrste vhodnih podatkov, vključno s tabelarnimi, slikovnimi in besedilnimi.

Od danes naprej SageMaker ponuja štiri nove vgrajene algoritme za modeliranje tabelarnih podatkov: LightGBM, CatBoost, AutoGluon-Tabular in TabTransformer. Te priljubljene, najsodobnejše algoritme lahko uporabite za tabelarično klasifikacijo in regresijske naloge. Na voljo so prek vgrajeni algoritmi na konzoli SageMaker kot tudi prek Amazon SageMaker JumpStart UI znotraj Amazon SageMaker Studio.

Sledi seznam štirih novih vgrajenih algoritmov s povezavami do njihove dokumentacije, primerov zvezkov in vira.

dokumentacija Primeri zvezkov vir
Algoritem LightGBM regresija, Razvrstitev LightGBM
Algoritem CatBoost regresija, Razvrstitev CatBoost
AutoGluon-Tabular Algoritem regresija, Razvrstitev AutoGluon-tabular
Algoritem TabTransformer regresija, Razvrstitev TabTransformer

V naslednjih razdelkih nudimo kratek tehnični opis vsakega algoritma in primere, kako usposobiti model prek SDK-ja SageMaker ali SageMaker Jumpstart.

LightGBM

LightGBM je priljubljena in učinkovita odprtokodna izvedba algoritma Gradient Boosting Decision Tree (GBDT). GBDT je ​​algoritem za nadzorovano učenje, ki poskuša natančno napovedati ciljno spremenljivko s kombiniranjem niza ocen iz niza preprostejših in šibkejših modelov. LightGBM uporablja dodatne tehnike za znatno izboljšanje učinkovitosti in razširljivosti običajnega GBDT.

CatBoost

CatBoost je priljubljena in visoko zmogljiva odprtokodna izvedba algoritma GBDT. V CatBoostu sta uvedena dva kritična algoritemska napredka: implementacija urejenega povečanja, alternativa klasičnemu algoritmu, ki temelji na permutacijah, in inovativen algoritem za obdelavo kategoričnih značilnosti. Obe tehniki sta bili ustvarjeni za boj proti premiku napovedi, ki ga povzroča posebna vrsta ciljnega uhajanja, ki je prisotno v vseh trenutno obstoječih izvedbah algoritmov za povečanje gradienta.

AutoGluon-tabular

AutoGluon-tabular je odprtokodni projekt AutoML, ki ga je razvil in vzdržuje Amazon, ki izvaja napredno obdelavo podatkov, globoko učenje in večplastno združevanje skladov. Samodejno prepozna vrsto podatkov v vsakem stolpcu za robustno predhodno obdelavo podatkov, vključno s posebno obdelavo besedilnih polj. AutoGluon ustreza različnim modelom, od standardnih povečanih dreves do prilagojenih modelov nevronske mreže. Ti modeli so sestavljeni na nov način: modeli so zloženi v več plasteh in usposobljeni po plasteh, kar zagotavlja, da se neobdelani podatki lahko prevedejo v visokokakovostne napovedi v dani časovni omejitvi. Prekomerno prilagajanje se med tem postopkom ublaži z razdelitvijo podatkov na različne načine s pazljivim sledenjem primerom, ki niso na pregibu. AutoGluon je optimiziran za zmogljivost in njegova takojšnja uporaba je dosegla več najboljših 3 in 10 mest na tekmovanjih v znanosti o podatkih.

TabTransformer

TabTransformer je nova arhitektura globokega tabelarnega modeliranja podatkov za nadzorovano učenje. TabTransformer je zgrajen na transformatorjih, ki temeljijo na samopozornosti. Plasti Transformer pretvorijo vdelave kategoričnih značilnosti v robustne kontekstualne vdelave, da dosežejo večjo natančnost napovedi. Poleg tega so kontekstualne vdelave, pridobljene s TabTransformerjem, zelo robustne proti funkcijam manjkajočih in šumnih podatkov ter zagotavljajo boljšo interpretabilnost. Ta model je nedavni izdelek Amazonova znanost raziskave (papirja in uradno blog post tukaj) in ga je na široko sprejela skupnost ML z različnimi implementacijami tretjih oseb (KerasAutoGluon,) in funkcije družbenih medijev, kot je npr tweetsproti podatkovni znanosti, srednje in Kaggle.

Prednosti vgrajenih algoritmov SageMaker

Ko izbirate algoritem za svojo posebno vrsto problema in podatkov, je uporaba vgrajenega algoritma SageMaker najpreprostejša možnost, saj ima to naslednje glavne prednosti:

  • Vgrajeni algoritmi ne potrebujejo kodiranja za začetek izvajanja poskusov. Edini vhodni podatki, ki jih morate zagotoviti, so podatki, hiperparametri in računalniški viri. To vam omogoča hitrejše izvajanje poskusov z manj stroškov za sledenje rezultatom in spremembam kode.
  • Vgrajeni algoritmi so opremljeni s paralelizacijo v več računskih instancah in podporo za GPU takoj po izdelavi za vse uporabne algoritme (nekateri algoritmi morda niso vključeni zaradi inherentnih omejitev). Če imate veliko podatkov, s katerimi lahko usposobite svoj model, lahko večino vgrajenih algoritmov preprosto prilagodite, da zadostijo povpraševanju. Tudi če že imate predhodno usposobljen model, bo morda vseeno lažje uporabiti njegovo posledico v SageMakerju in vnesti hiperparametre, ki jih že poznate, namesto da bi ga prenesli in sami napisali skript za usposabljanje.
  • Ste lastnik nastalih artefaktov modela. Ta model lahko vzamete in ga namestite na SageMaker za več različnih vzorcev sklepanja (preglejte vse razpoložljive vrste uvajanja) ter enostavno prilagajanje in upravljanje končne točke ali pa ga namestite kjerkoli drugje, kjer ga potrebujete.

Poglejmo zdaj, kako usposobiti enega od teh vgrajenih algoritmov.

Usposobite vgrajeni algoritem z uporabo SDK SageMaker

Za usposabljanje izbranega modela moramo pridobiti URI tega modela, kot tudi URI skripta za usposabljanje in sliko vsebnika, ki se uporablja za usposabljanje. Na srečo so ti trije vnosi odvisni izključno od imena modela, različice (za seznam razpoložljivih modelov glejte Tabela razpoložljivih modelov JumpStart) in vrsto primerka, na katerem se želite učiti. To je prikazano v naslednjem delčku kode:

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
)

O train_model_id spremeni v lightgbm-regression-model če imamo opravka s problemom regresije. ID-ji za vse druge modele, predstavljene v tej objavi, so navedeni v naslednji tabeli.

Model Vrsta težave ID modela
LightGBM Razvrstitev lightgbm-classification-model
. regresija lightgbm-regression-model
CatBoost Razvrstitev catboost-classification-model
. regresija catboost-regression-model
AutoGluon-tabular Razvrstitev autogluon-classification-ensemble
. regresija autogluon-regression-ensemble
TabTransformer Razvrstitev pytorch-tabtransformerclassification-model
. regresija pytorch-tabtransformerregression-model

Nato določimo, kje je naš vnos Preprosta storitev shranjevanja Amazon (Amazon S3). Za ta primer uporabljamo javni vzorčni nabor podatkov. Določimo tudi, kam želimo, da gre naš izhod, in pridobimo privzeti seznam hiperparametrov, potrebnih za usposabljanje izbranega modela. Njihovo vrednost lahko spremenite po svojih željah.

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

Končno ustvarimo primerek SageMakerja Estimator z vsemi pridobljenimi vnosi in zaženite opravilo usposabljanja z .fit, ki mu posreduje naš URI nabora podatkov za usposabljanje. The entry_point skript je poimenovan transfer_learning.py (enako za druge naloge in algoritme) in vhodni podatkovni kanal, ki je bil posredovan .fit mora biti imenovan 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)

Upoštevajte, da lahko trenirate vgrajene algoritme z Samodejno prilagajanje modela SageMaker za izbiro optimalnih hiperparametrov in nadaljnje izboljšanje zmogljivosti modela.

Naučite vgrajeni algoritem z uporabo SageMaker JumpStart

Vse te vgrajene algoritme lahko tudi naučite z nekaj kliki prek uporabniškega vmesnika SageMaker JumpStart. JumpStart je funkcija SageMaker, ki vam omogoča usposabljanje in uvajanje vgrajenih algoritmov in vnaprej usposobljenih modelov iz različnih ogrodij ML in središč modelov prek grafičnega vmesnika. Prav tako vam omogoča, da uvedete popolne rešitve ML, ki združujejo modele ML in različne druge storitve AWS za rešitev ciljanega primera uporabe.

Za več informacij glejte Zaženite klasifikacijo besedila z Amazon SageMaker JumpStart z uporabo modelov TensorFlow Hub in Hugging Face.

zaključek

V tej objavi smo napovedali lansiranje štirih novih zmogljivih vgrajenih algoritmov za ML na tabelaričnih naborih podatkov, ki so zdaj na voljo na SageMakerju. Zagotovili smo tehnični opis, kaj so ti algoritmi, kot tudi primer usposabljanja za LightGBM z uporabo SDK SageMaker.

Prinesite svoj nabor podatkov in preizkusite te nove algoritme na SageMakerju ter si oglejte vzorčne zvezke za uporabo vgrajenih algoritmov, ki so na voljo na GitHub.


O avtorjih

dr. Xin Huang je uporabni znanstvenik za vgrajene algoritme Amazon SageMaker JumpStart in Amazon SageMaker. Osredotoča se na razvoj razširljivih algoritmov strojnega učenja. Njegovi raziskovalni interesi so na področju obdelave naravnega jezika, razložljivega globokega učenja na tabelarnih podatkih in robustne analize neparametričnega prostorsko-časovnega združevanja. Objavil je številne prispevke na konferencah ACL, ICDM, KDD in v reviji Royal Statistical Society: Series A.

Dr. Ashish Khetan je višji aplikativni znanstvenik z vgrajenimi algoritmi Amazon SageMaker JumpStart in Amazon SageMaker ter pomaga pri razvoju algoritmov strojnega učenja. Je aktiven raziskovalec strojnega učenja in statističnega sklepanja ter je objavil veliko člankov na konferencah NeurIPS, ICML, ICLR, JMLR, ACL in EMNLP.

João Moura je specialist za rešitve AI/ML pri Amazon Web Services. Večinoma se osredotoča na primere uporabe NLP in pomaga strankam pri optimizaciji usposabljanja in uvajanja modela globokega učenja. Je tudi aktiven zagovornik rešitev ML z nizko kodo in strojne opreme, specializirane za ML.

Časovni žig:

Več od Strojno učenje AWS