Nye innebygde Amazon SageMaker-algoritmer for tabelldatamodellering: LightGBM, CatBoost, AutoGluon-Tabular og TabTransformer

Kilde node: 1541386

Amazon SageMaker gir en suite av innebygde algoritmer, ferdig trente modellerog forhåndsbygde løsningsmaler for å hjelpe dataforskere og maskinlæringsutøvere (ML) med å komme raskt i gang med opplæring og distribusjon av ML-modeller. Du kan bruke disse algoritmene og modellene for både veiledet og uovervåket læring. De kan behandle ulike typer inndata, inkludert tabeller, bilder og tekst.

Fra og med i dag tilbyr SageMaker fire nye innebygde algoritmer for tabelldatamodellering: LightGBM, CatBoost, AutoGluon-Tabular og TabTransformer. Du kan bruke disse populære, toppmoderne algoritmene for både tabellklassifisering og regresjonsoppgaver. De er tilgjengelige gjennom innebygde algoritmer på SageMaker-konsollen så vel som gjennom Amazon SageMaker JumpStart UI inni Amazon SageMaker Studio.

Følgende er listen over de fire nye innebygde algoritmene, med lenker til deres dokumentasjon, eksempelnotatbøker og kilde.

Teknisk dokumentasjon Eksempel på bærbare datamaskiner kilde
LightGBM-algoritme Regresjon, Klassifisering LightGBM
CatBoost-algoritmen Regresjon, Klassifisering CatBoost
AutoGluon-tabellalgoritme Regresjon, Klassifisering AutoGluon-tabell
TabTransformer-algoritme Regresjon, Klassifisering TabTransformer

I de følgende avsnittene gir vi en kort teknisk beskrivelse av hver algoritme, og eksempler på hvordan man trener en modell via SageMaker SDK eller SageMaker Jumpstart.

LightGBM

LightGBM er en populær og effektiv åpen kildekode-implementering av algoritmen Gradient Boosting Decision Tree (GBDT). GBDT er en overvåket læringsalgoritme som prøver å forutsi en målvariabel nøyaktig ved å kombinere et ensemble av estimater fra et sett med enklere og svakere modeller. LightGBM bruker tilleggsteknikker for å forbedre effektiviteten og skalerbarheten til konvensjonell GBDT betydelig.

CatBoost

CatBoost er en populær og høyytelses åpen kildekodeimplementering av GBDT-algoritmen. To kritiske algoritmiske fremskritt er introdusert i CatBoost: implementering av ordnet boosting, et permutasjonsdrevet alternativ til den klassiske algoritmen, og en innovativ algoritme for behandling av kategoriske funksjoner. Begge teknikkene ble laget for å bekjempe et prediksjonsskift forårsaket av en spesiell type mållekkasje som er tilstede i alle eksisterende implementeringer av gradientforsterkende algoritmer.

AutoGluon-tabell

AutoGluon-tabell er et åpen kildekode AutoML-prosjekt utviklet og vedlikeholdt av Amazon som utfører avansert databehandling, dyp læring og flerlags stack-ensembling. Den gjenkjenner automatisk datatypen i hver kolonne for robust dataforbehandling, inkludert spesiell håndtering av tekstfelt. AutoGluon passer til ulike modeller, alt fra hylleforsterkede trær til tilpassede nevrale nettverksmodeller. Disse modellene er satt sammen på en ny måte: Modeller stables i flere lag og trenes på en lagvis måte som garanterer at rådata kan oversettes til spådommer av høy kvalitet innenfor en gitt tidsbegrensning. Overtilpasning reduseres gjennom denne prosessen ved å dele opp dataene på ulike måter med nøye sporing av eksempler utenfor folden. AutoGluon er optimert for ytelse, og bruken av det ut-av-boksen har oppnådd flere topp-3 og topp-10-plasseringer i datavitenskapskonkurranser.

TabTransformer

TabTransformer er en ny, dyp tabellform datamodelleringsarkitektur for veiledet læring. TabTransformer er bygget på selvoppmerksomhetsbaserte transformatorer. Transformatorlagene forvandler innebyggingen av kategoriske funksjoner til robuste kontekstuelle innebygginger for å oppnå høyere prediksjonsnøyaktighet. Videre er de kontekstuelle innebyggingene som er lært fra TabTransformer svært robuste mot både manglende og støyende datafunksjoner, og gir bedre tolkbarhet. Denne modellen er et produkt av nyere Amazon Science forskning (papir og offisiell blogginnlegg her) og har blitt bredt adoptert av ML-fellesskapet, med ulike tredjepartsimplementeringer (KerasAutoGluon,) og sosiale mediefunksjoner som f.eks tweetsmot datavitenskap, medium og kaggle.

Fordeler med SageMaker innebygde algoritmer

Når du velger en algoritme for din spesielle type problem og data, er bruk av en SageMaker innebygd algoritme det enkleste alternativet, fordi å gjøre det har følgende store fordeler:

  • De innebygde algoritmene krever ingen koding for å begynne å kjøre eksperimenter. De eneste inngangene du trenger å gi er data, hyperparametre og dataressurser. Dette lar deg kjøre eksperimenter raskere, med mindre overhead for sporing av resultater og kodeendringer.
  • De innebygde algoritmene kommer med parallellisering på tvers av flere dataforekomster og GPU-støtte rett ut av esken for alle gjeldende algoritmer (noen algoritmer er kanskje ikke inkludert på grunn av iboende begrensninger). Hvis du har mye data du kan trene modellen din med, kan de fleste innebygde algoritmer enkelt skaleres for å møte etterspørselen. Selv om du allerede har en forhåndsopplært modell, kan det fortsatt være enklere å bruke konsekvensen i SageMaker og legge inn hyperparametrene du allerede kjenner i stedet for å overføre den og skrive et treningsskript selv.
  • Du er eieren av de resulterende modellartefaktene. Du kan ta den modellen og distribuere den på SageMaker for flere forskjellige slutningsmønstre (sjekk ut alle tilgjengelige distribusjonstyper) og enkel endepunktskalering og -administrasjon, eller du kan distribuere den hvor du ellers trenger den.

La oss nå se hvordan du trener en av disse innebygde algoritmene.

Tren en innebygd algoritme ved å bruke SageMaker SDK

For å trene en valgt modell, må vi få den modellens URI, samt den til treningsskriptet og containerbildet som brukes til opplæring. Heldigvis avhenger disse tre inngangene utelukkende av modellnavnet, versjonen (for en liste over tilgjengelige modeller, se JumpStart tilgjengelig modellbord), og typen instans du vil trene på. Dette er demonstrert i følgende kodebit:

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 endres til lightgbm-regression-model hvis vi har å gjøre med et regresjonsproblem. ID-ene for alle de andre modellene introdusert i dette innlegget er oppført i følgende tabell.

Modell Problemtype Modell-ID
LightGBM Klassifisering lightgbm-classification-model
. Regresjon lightgbm-regression-model
CatBoost Klassifisering catboost-classification-model
. Regresjon catboost-regression-model
AutoGluon-tabell Klassifisering autogluon-classification-ensemble
. Regresjon autogluon-regression-ensemble
TabTransformer Klassifisering pytorch-tabtransformerclassification-model
. Regresjon pytorch-tabtransformerregression-model

Deretter definerer vi hvor våre innspill er på Amazon enkel lagringstjeneste (Amazon S3). Vi bruker et offentlig eksempeldatasett for dette eksemplet. Vi definerer også hvor vi vil at utdataene våre skal gå, og henter standardlisten over hyperparametre som trengs for å trene den valgte modellen. Du kan endre verdien deres etter eget ønske.

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

Til slutt instansierer vi en SageMaker Estimator med alle de hentede innspillene og lanserer treningsjobben med .fit, og sender det vårt treningsdatasett URI. De entry_point skriptet som er gitt er navngitt transfer_learning.py (det samme for andre oppgaver og algoritmer), og inngangsdatakanalen sendt til .fit må navngis 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 at du kan trene innebygde algoritmer med SageMaker automatisk modellinnstilling for å velge de optimale hyperparametrene og ytterligere forbedre modellytelsen.

Tren en innebygd algoritme ved å bruke SageMaker JumpStart

Du kan også trene alle disse innebygde algoritmene med noen få klikk via SageMaker JumpStart UI. JumpStart er en SageMaker-funksjon som lar deg trene og distribuere innebygde algoritmer og forhåndstrente modeller fra ulike ML-rammeverk og modellhuber gjennom et grafisk grensesnitt. Den lar deg også distribuere fullverdige ML-løsninger som setter sammen ML-modeller og forskjellige andre AWS-tjenester for å løse en målrettet brukssituasjon.

For mer informasjon, se Kjør tekstklassifisering med Amazon SageMaker JumpStart ved å bruke TensorFlow Hub og Hugging Face-modeller.

konklusjonen

I dette innlegget kunngjorde vi lanseringen av fire kraftige nye innebygde algoritmer for ML på tabellformede datasett som nå er tilgjengelig på SageMaker. Vi ga en teknisk beskrivelse av hva disse algoritmene er, samt et eksempel på opplæringsjobb for LightGBM ved bruk av SageMaker SDK.

Ta med ditt eget datasett og prøv disse nye algoritmene på SageMaker, og sjekk ut eksempelnotatbøkene for å bruke innebygde algoritmer tilgjengelig på GitHub.


Om forfatterne

Dr. Xin Huang er en Applied Scientist for Amazon SageMaker JumpStart og Amazon SageMaker innebygde algoritmer. Han fokuserer på å utvikle skalerbare maskinlæringsalgoritmer. Hans forskningsinteresser er innen naturlig språkbehandling, forklarbar dyp læring på tabelldata og robust analyse av ikke-parametrisk rom-tid-klynger. Han har publisert mange artikler i ACL, ICDM, KDD-konferanser og Royal Statistical Society: Series A journal.

Dr. Ashish Khetan er en Senior Applied Scientist med Amazon SageMaker JumpStart og Amazon SageMaker innebygde algoritmer og hjelper til med å utvikle maskinlæringsalgoritmer. Han er en aktiv forsker innen maskinlæring og statistisk inferens og har publisert mange artikler i NeurIPS, ICML, ICLR, JMLR, ACL og EMNLP-konferanser.

João Moura er en AI/ML-spesialistløsningsarkitekt hos Amazon Web Services. Han er mest fokusert på NLP-brukssaker og å hjelpe kunder med å optimalisere Deep Learning-modellopplæring og distribusjon. Han er også en aktiv talsmann for lavkode ML-løsninger og ML-spesialisert maskinvare.

Tidstempel:

Mer fra AWS maskinlæring