Generatiivne andmeluure

Uued sisseehitatud Amazon SageMakeri algoritmid tabeliandmete modelleerimiseks: LightGBM, CatBoost, AutoGluon-Tabular ja TabTransformer

kuupäev:

Amazon SageMaker pakub sviidi sisseehitatud algoritmid, eelkoolitatud mudelidja eelnevalt ehitatud lahendusmallid aidata andmeteadlastel ja masinõppe (ML) praktikutel ML-mudelite koolitamist ja kasutuselevõttu kiiresti alustada. Neid algoritme ja mudeleid saate kasutada nii juhendatud kui ka järelevalveta õppimiseks. Nad saavad töödelda erinevat tüüpi sisendandmeid, sealhulgas tabelit, pilti ja teksti.

Alates tänasest pakub SageMaker nelja uut sisseehitatud tabeliandmete modelleerimisalgoritmi: LightGBM, CatBoost, AutoGluon-Tabular ja TabTransformer. Neid populaarseid tipptasemel algoritme saate kasutada nii tabelipõhise klassifikatsiooni kui ka regressiooniülesannete jaoks. Need on saadaval aadressil sisseehitatud algoritmid nii SageMakeri konsoolil kui ka selle kaudu Amazon SageMaker JumpStart UI sees Amazon SageMaker Studio.

Järgmine on nelja uue sisseehitatud algoritmi loend koos linkidega nende dokumentatsioonile, näidismärkmikele ja allikale.

Järgmistes jaotistes pakume iga algoritmi lühikirjeldust ja näiteid mudeli treenimise kohta SageMaker SDK või SageMaker Kiirstardi kaudu.

LightGBM

LightGBM on Gradient Boosting Decision Tree (GBDT) algoritmi populaarne ja tõhus avatud lähtekoodiga rakendus. GBDT on juhendatud õppealgoritm, mis püüab sihtmuutujat täpselt ennustada, kombineerides hinnangute kogumit lihtsamate ja nõrgemate mudelite komplektist. LightGBM kasutab tavapärase GBDT tõhususe ja mastaapsuse oluliseks parandamiseks täiendavaid tehnikaid.

CatBoost

CatBoost on GBDT algoritmi populaarne ja suure jõudlusega avatud lähtekoodiga teostus. CatBoostis tutvustatakse kahte kriitilist algoritmilist edusamme: järjestatud võimenduse rakendamine, permutatsioonipõhine alternatiiv klassikalisele algoritmile ja uuenduslik algoritm kategooriliste funktsioonide töötlemiseks. Mõlemad tehnikad loodi selleks, et võidelda prognooside nihkega, mis on põhjustatud kõigis olemasolevates gradiendi võimendusalgoritmide rakendustes esinevast sihtlekkest.

AutoGluon-Tabular

AutoGluon-Tabular on Amazoni välja töötatud ja hooldatav avatud lähtekoodiga AutoML-projekt, mis teostab täiustatud andmetöötlust, süvaõpet ja mitmekihilist virna komplekteerimist. See tuvastab automaatselt igas veerus oleva andmetüübi, et tagada andmete tugev eeltöötlus, sealhulgas tekstiväljade eritöötlus. AutoGluon sobib erinevatele mudelitele, alustades valmis riiulilt võimendatud puudest kuni kohandatud närvivõrgu mudeliteni. Need mudelid on komplekteeritud uudsel viisil: mudelid on virnastatud mitmesse kihti ja koolitatud kihipõhiselt, mis tagab, et toorandmed saab teatud ajapiirangu jooksul muuta kvaliteetseteks ennustusteks. Ülesobitamist leevendatakse kogu selle protsessi jooksul, jagades andmeid mitmel viisil, jälgides hoolikalt volitamata näiteid. AutoGluon on optimeeritud jõudluse jaoks ja selle karbist väljas kasutamine on saavutanud andmeteaduse võistlustel mitu top 3 ja top 10 kohta.

TabTransformer

TabTransformer on uudne sügav tabelandmete modelleerimise arhitektuur juhendatud õppimiseks. TabTransformer on üles ehitatud enesetähelepanupõhistele transformeritele. Transformeri kihid teisendavad kategooriliste tunnuste manustused tugevateks kontekstipõhisteks manusteks, et saavutada suurem ennustustäpsus. Lisaks on TabTransformerist õpitud kontekstuaalsed manustused väga vastupidavad nii puuduvate kui ka mürarikaste andmefunktsioonide vastu ning pakuvad paremat tõlgendatavust. See mudel on hiljutine toode Amazoni teadus uurimistöö (paber ja ametlik blogi postitus siin) ja ML-i kogukond on selle laialdaselt kasutusele võtnud koos erinevate kolmandate osapoolte rakendustega (KerasAutoGluon,) ja sotsiaalmeedia funktsioone, nagu tweetsandmeteaduse poole, keskmine ja Kaagutama.

SageMakeri sisseehitatud algoritmide eelised

Konkreetse probleemitüübi ja andmete jaoks algoritmi valimisel on SageMakeri sisseehitatud algoritmi kasutamine lihtsaim valik, kuna sellega kaasnevad järgmised peamised eelised.

  • Sisseehitatud algoritmid ei vaja katsete käivitamiseks kodeerimist. Ainsad sisendid, mida peate esitama, on andmed, hüperparameetrid ja arvutusressursid. See võimaldab teil katseid kiiremini käitada ning tulemuste ja koodimuudatuste jälgimiseks kulub vähem kulusid.
  • Sisseehitatud algoritmid on varustatud paralleelsusega mitme arvutusjuhtumi vahel ja GPU-toega kohe kõigi kohaldatavate algoritmide jaoks (mõned algoritmid ei pruugi olla kaasatud piirangute tõttu). Kui teil on mudeli treenimiseks palju andmeid, saab enamikku sisseehitatud algoritme nõudluse rahuldamiseks hõlpsasti skaleerida. Isegi kui teil on juba eelkoolitatud mudel, võib siiski olla lihtsam kasutada selle tagajärgi SageMakeris ja sisestada juba teadaolevad hüperparameetrid, selle asemel et see üle portida ja ise treeningskripti kirjutada.
  • Olete saadud mudeli esemete omanik. Võite võtta selle mudeli ja juurutada selle SageMakeris mitme erineva järeldusmustri jaoks (vaadake kõiki saadaolevad juurutustüübid) ning lihtne lõpp-punkti skaleerimine ja haldamine või saate selle kasutusele võtta kõikjal, kus seda vajate.

Vaatame nüüd, kuidas ühte neist sisseehitatud algoritmidest treenida.

Treenige SageMakeri SDK abil sisseehitatud algoritmi

Valitud mudeli koolitamiseks peame hankima selle mudeli URI, samuti koolitusskripti ja koolituseks kasutatava konteineri kujutise URI. Õnneks sõltuvad need kolm sisendit ainult mudeli nimest ja versioonist (saadaolevate mudelite loendit vt KiirStart Saadaolevate mudelite tabel) ja eksemplari tüüp, mida soovite treenida. Seda näitab järgmine koodilõik:

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 muutub lightgbm-regression-model kui meil on tegemist regressiooniprobleemiga. Kõigi teiste selles postituses tutvustatud mudelite ID-d on loetletud järgmises tabelis.

MUDEL Probleemi tüüp Mudeli ID
LightGBM Klassifikatsioon lightgbm-classification-model
. Regressioon lightgbm-regression-model
CatBoost Klassifikatsioon catboost-classification-model
. Regressioon catboost-regression-model
AutoGluon-Tabular Klassifikatsioon autogluon-classification-ensemble
. Regressioon autogluon-regression-ensemble
TabTransformer Klassifikatsioon pytorch-tabtransformerclassification-model
. Regressioon pytorch-tabtransformerregression-model

Seejärel määratleme, kus meie sisend on sisse lülitatud Amazoni lihtne salvestusteenus (Amazon S3). Selle näite jaoks kasutame avalikku näidisandmestikku. Samuti määratleme, kuhu tahame oma väljundit suunata, ja hangime valitud mudeli treenimiseks vajalike hüperparameetrite vaikeloendi. Saate nende väärtust oma äranägemise järgi muuta.

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

Lõpuks instantseerime SageMakeri Estimator koos kõigi hangitud sisenditega ja käivitage koolitustöö .fit, edastades sellele meie koolituse andmestiku URI. The entry_point pakutav skript on nimeline transfer_learning.py (sama muude ülesannete ja algoritmide puhul) ja sisendandmekanalile, mis edastati .fit tuleb nimetada 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)

Pange tähele, et saate treenida sisseehitatud algoritme SageMaker automaatne mudeli häälestamine optimaalsete hüperparameetrite valimiseks ja mudeli jõudluse edasiseks parandamiseks.

Treenige sisseehitatud algoritmi, kasutades SageMaker JumpStart

Saate neid sisseehitatud algoritme ka mõne klõpsuga SageMaker JumpStart kasutajaliidese kaudu treenida. JumpStart on SageMakeri funktsioon, mis võimaldab graafilise liidese kaudu koolitada ja juurutada sisseehitatud algoritme ja eelkoolitatud mudeleid erinevatest ML-raamistikest ja mudelijaoturitest. Samuti võimaldab see juurutada täisväärtuslikke ML-lahendusi, mis ühendavad ML-mudelid ja mitmesugused muud AWS-teenused, et lahendada sihitud kasutusjuhtumid.

Lisateavet leiate aadressilt Käivitage teksti klassifitseerimine rakendusega Amazon SageMaker JumpStart, kasutades TensorFlow Hubi ja Hugging Face mudeleid.

Järeldus

Selles postituses teatasime nelja võimsa uue sisseehitatud algoritmi käivitamisest ML jaoks tabeliandmetes, mis on nüüd saadaval SageMakeris. Esitasime nende algoritmide tehnilise kirjelduse ja SageMakeri SDK abil LightGBM-i koolitustöö näite.

Tooge oma andmestik ja proovige neid uusi algoritme SageMakeris ning tutvuge näidismärkmikega, et kasutada saidil saadaolevaid sisseehitatud algoritme. GitHub.


Autoritest

Dr Xin Huang on Amazon SageMaker JumpStarti ja Amazon SageMakeri sisseehitatud algoritmide rakendusteadlane. Ta keskendub skaleeritavate masinõppe algoritmide arendamisele. Tema uurimishuvid on seotud loomuliku keele töötlemise, tabeliandmete seletatava süvaõppe ja mitteparameetrilise aegruumi klastrite tugeva analüüsiga. Ta on avaldanud palju artikleid ACL-i, ICDM-i, KDD konverentsidel ja Royal Statistical Society: Series A ajakirjas.

Dr Ashish Khetan on vanemrakendusteadlane, kellel on Amazon SageMaker JumpStart ja Amazon SageMaker sisseehitatud algoritmid ning aitab välja töötada masinõppe algoritme. Ta on aktiivne masinõppe ja statistiliste järelduste uurija ning avaldanud palju artikleid NeurIPS-i, ICML-i, ICLR-i, JMLR-i, ACL-i ja EMNLP konverentsidel.

João Moura on AI/ML-i spetsialistilahenduste arhitekt ettevõttes Amazon Web Services. Ta keskendub peamiselt NLP kasutusjuhtudele ja aitab klientidel optimeerida süvaõppe mudeli koolitust ja juurutamist. Samuti on ta aktiivne madala koodiga ML-lahenduste ja ML-le spetsialiseerunud riistvara pooldaja.

spot_img

Uusim intelligentsus

spot_img

Jututuba koos meiega

Tere! Kuidas ma teid aidata saan?