Generatiivinen tiedustelu

Uudet sisäänrakennetut Amazon SageMaker -algoritmit taulukkomuotoiseen tietojen mallintamiseen: LightGBM, CatBoost, AutoGluon-Tabular ja TabTransformer

Treffi:

Amazon Sage Maker tarjoaa sviitin sisäänrakennetut algoritmit, valmiiksi koulutetut mallitja valmiiksi rakennetut ratkaisumallit auttaa datatieteilijöitä ja koneoppimisen (ML) harjoittajia pääsemään nopeasti alkuun ML-mallien koulutuksessa ja käyttöönotossa. Voit käyttää näitä algoritmeja ja malleja sekä ohjattuun että ohjaamattomaan oppimiseen. Ne voivat käsitellä erityyppisiä syöttötietoja, mukaan lukien taulukko, kuva ja teksti.

Tästä päivästä alkaen SageMaker tarjoaa neljä uutta sisäänrakennettua taulukkomuotoista tietojen mallinnusalgoritmia: LightGBM, CatBoost, AutoGluon-Tabular ja TabTransformer. Voit käyttää näitä suosittuja, huippuluokan algoritmeja sekä taulukkoluokitus- että regressiotehtäviin. Ne ovat saatavilla kautta sisäänrakennetut algoritmit SageMaker-konsolissa sekä sen kautta Amazon SageMaker JumpStart UI sisällä Amazon SageMaker Studio.

Seuraavassa on luettelo neljästä uudesta sisäänrakennetusta algoritmista sekä linkit niiden dokumentaatioon, esimerkkimuistikirjoihin ja lähteeseen.

Seuraavissa osioissa annamme lyhyen teknisen kuvauksen kustakin algoritmista ja esimerkkejä mallin kouluttamisesta SageMaker SDK:n tai SageMaker Jumpstartin kautta.

LightGBM

LightGBM on suosittu ja tehokas avoimen lähdekoodin toteutus Gradient Boosting Decision Tree (GBDT) -algoritmille. GBDT on valvottu oppimisalgoritmi, joka yrittää ennustaa tarkasti kohdemuuttujan yhdistämällä joukon arvioita joukosta yksinkertaisempia ja heikompia malleja. LightGBM käyttää lisätekniikoita parantaakseen merkittävästi perinteisen GBDT:n tehokkuutta ja skaalautuvuutta.

CatBoost

CatBoost on suosittu ja suorituskykyinen GBDT-algoritmin avoimen lähdekoodin toteutus. CatBoostissa on otettu käyttöön kaksi kriittistä algoritmista edistystä: järjestetyn tehostuksen toteutus, permutaatioohjattu vaihtoehto klassiselle algoritmille ja innovatiivinen algoritmi kategoristen ominaisuuksien käsittelyyn. Molemmat tekniikat luotiin torjumaan ennustemuutosta, jonka aiheutti erityinen kohdevuoto, joka esiintyy kaikissa nykyisissä gradienttitehostusalgoritmien toteutuksissa.

AutoGluon-Tabular

AutoGluon-Tabular on Amazonin kehittämä ja ylläpitämä avoimen lähdekoodin AutoML-projekti, joka suorittaa edistynyttä tietojenkäsittelyä, syväoppimista ja monikerroksista pinoa. Se tunnistaa automaattisesti kunkin sarakkeen tietotyypin tehokkaan tietojen esikäsittelyn, mukaan lukien tekstikenttien erityiskäsittelyn, vuoksi. AutoGluon sopii useisiin malleihin aina valmiista tehostetuista puista räätälöityihin hermoverkkomalleihin. Nämä mallit on koottu uudella tavalla: mallit pinotaan useisiin kerroksiin ja opetetaan kerroksittain, mikä takaa, että raakadata voidaan muuntaa korkealaatuisiksi ennusteiksi tietyn aikarajoituksen sisällä. Liiallista sovittamista vähennetään koko prosessin aikana jakamalla tiedot eri tavoin seuraamalla huolellisesti poikkeamattomia esimerkkejä. AutoGluon on optimoitu suorituskykyyn, ja sen käyttö on saavuttanut useita top-3- ja top-10-sijoituksia datatieteen kilpailuissa.

TabTransformer

TabTransformer on uusi syvä taulukkomuotoinen tietojen mallinnusarkkitehtuuri ohjattuun oppimiseen. TabTransformer on rakennettu omaan tarkkaavaisuuteen perustuviin Transformereihin. Transformer-tasot muuntavat kategoristen ominaisuuksien upotukset vankaiksi kontekstuaalisiksi upotuksiksi saavuttaakseen paremman ennustetarkkuuden. Lisäksi TabTransformerista opitut kontekstuaaliset upotukset ovat erittäin kestäviä sekä puuttuvia että meluisia dataominaisuuksia vastaan ​​ja tarjoavat paremman tulkittavuuden. Tämä malli on viimeaikainen tuote Amazonin tiede tutkimus (paperi ja virallinen blogi täällä) ja ML-yhteisö on ottanut sen laajasti käyttöön useilla kolmansien osapuolien toteutuksilla (KerasAutoGluon,) ja sosiaalisen median ominaisuuksia, kuten tweetskohti tietotieteitä, keskikokoinen ja Kaggle.

Sisäänrakennettujen SageMaker-algoritmien edut

Kun valitset algoritmin tietyntyyppiselle ongelmalle ja tiedollesi, sisäänrakennetun SageMaker-algoritmin käyttö on helpoin vaihtoehto, koska sillä on seuraavat suuret edut:

  • Sisäänrakennetut algoritmit eivät vaadi koodausta kokeiden käynnistämiseksi. Ainoat syötteet, jotka sinun on annettava, ovat tiedot, hyperparametrit ja laskentaresurssit. Näin voit suorittaa kokeiluja nopeammin ja vähentää tulosten ja koodimuutosten seurantakustannuksia.
  • Sisäänrakennetut algoritmit sisältävät rinnakkaisuuden useiden laskentaesiintymien välillä ja GPU-tuen heti käyttövalmiiksi kaikille soveltuville algoritmeille (jotkin algoritmit eivät ehkä sisälly niihin luontaisten rajoitusten vuoksi). Jos sinulla on paljon dataa mallin kouluttamiseen, useimmat sisäänrakennetut algoritmit voivat helposti skaalata kysyntää vastaavaksi. Vaikka sinulla olisi jo esiopetettu malli, saattaa silti olla helpompaa käyttää sen seurausta SageMakerissa ja syöttää jo tuntemasi hyperparametrit sen sijaan, että siirrät sen ja kirjoitat harjoitusskriptin itse.
  • Olet tuloksena olevien malliesineiden omistaja. Voit ottaa tämän mallin ja ottaa sen käyttöön SageMakerissa useille erilaisille päättelymalleille (katso kaikki käytettävissä olevat käyttöönottotyypit) ja helppo päätepisteiden skaalaus ja hallinta, tai voit ottaa sen käyttöön missä tahansa muualla sitä tarvitset.

Katsotaan nyt, kuinka yksi näistä sisäänrakennetuista algoritmeista koulutetaan.

Harjoittele sisäänrakennettua algoritmia SageMaker SDK:n avulla

Valitun mallin kouluttamiseksi meidän on hankittava kyseisen mallin URI sekä harjoitusskriptin ja koulutuksessa käytetyn säilön kuvan URI. Onneksi nämä kolme tuloa riippuvat yksinomaan mallin nimestä ja versiosta (luettelo saatavilla olevista malleista, katso JumpStart Saatavilla oleva mallitaulukko) ja instanssin tyyppi, jossa haluat harjoitella. Tämä näkyy seuraavassa koodinpätkässä:

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 muuttuu lightgbm-regression-model jos olemme tekemisissä regressio-ongelman kanssa. Kaikkien muiden tässä viestissä esiteltyjen mallien tunnukset on lueteltu seuraavassa taulukossa.

Malli Ongelman tyyppi Model ID
LightGBM Luokittelu lightgbm-classification-model
. Regressio lightgbm-regression-model
CatBoost Luokittelu catboost-classification-model
. Regressio catboost-regression-model
AutoGluon-Tabular Luokittelu autogluon-classification-ensemble
. Regressio autogluon-regression-ensemble
TabTransformer Luokittelu pytorch-tabtransformerclassification-model
. Regressio pytorch-tabtransformerregression-model

Sitten määrittelemme, missä syötteemme on päällä Amazonin yksinkertainen tallennuspalvelu (Amazon S3). Käytämme tässä esimerkissä julkista näytetietojoukkoa. Määrittelemme myös, minne haluamme tulostemme menevän, ja haemme oletusluettelon hyperparametreistä, joita tarvitaan valitun mallin kouluttamiseen. Voit muuttaa niiden arvoa mieleiseksesi.

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

Lopuksi instantoimme SageMakerin Estimator kaikkien haettujen syötteiden kanssa ja aloita koulutustyö .fit, välittää sille harjoitustietojoukon URI:n. The entry_point toimitettu skripti on nimetty transfer_learning.py (sama muille tehtäville ja algoritmeille) ja tulodatakanava, jolle siirretään .fit täytyy nimetä 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)

Huomaa, että voit kouluttaa sisäänrakennettuja algoritmeja Automaattinen SageMaker-viritys valita optimaaliset hyperparametrit ja parantaa mallin suorituskykyä entisestään.

Harjoittele sisäänrakennettu algoritmi SageMaker JumpStartin avulla

Voit myös harjoitella näitä sisäänrakennettuja algoritmeja muutamalla napsautuksella SageMaker JumpStart -käyttöliittymän kautta. JumpStart on SageMaker-ominaisuus, jonka avulla voit kouluttaa ja ottaa käyttöön sisäänrakennettuja algoritmeja ja esikoulutettuja malleja erilaisista ML-kehyksistä ja mallikeskittimistä graafisen käyttöliittymän kautta. Sen avulla voit myös ottaa käyttöön täysimittaisia ​​ML-ratkaisuja, jotka yhdistävät ML-malleja ja monia muita AWS-palveluita kohdennetun käyttötilanteen ratkaisemiseksi.

Lisätietoja on Suorita tekstiluokittelu Amazon SageMaker JumpStartilla käyttämällä TensorFlow Hub- ja Hugging Face -malleja.

Yhteenveto

Tässä viestissä ilmoitimme neljän tehokkaan uuden sisäänrakennetun algoritmin käynnistämisestä ML:lle taulukkotietosarjoissa, jotka ovat nyt saatavilla SageMakerissa. Annoimme teknisen kuvauksen näistä algoritmeista sekä esimerkin LightGBM:n harjoittelutyöstä SageMaker SDK:n avulla.

Tuo oma tietojoukkosi ja kokeile näitä uusia algoritmeja SageMakerissa ja tutustu mallimuistikirjoihin käyttääksesi sisäänrakennettuja algoritmeja, jotka ovat saatavilla osoitteessa GitHub.


Tietoja Tekijät

Tohtori Xin Huang on Amazon SageMaker JumpStartin ja Amazon SageMakerin sisäänrakennettujen algoritmien soveltava tutkija. Hän keskittyy skaalautuvien koneoppimisalgoritmien kehittämiseen. Hänen tutkimusintressiään ovat luonnollisen kielen prosessointi, selitettävissä oleva syvä oppiminen taulukkotiedoista ja ei-parametrisen aika-avaruusklusteroinnin robusti analyysi. Hän on julkaissut monia artikkeleita ACL-, ICDM-, KDD-konferensseissa ja Royal Statistical Society: Series A -lehdessä.

Tohtori Ashish Khetan on vanhempi soveltuva tutkija, jolla on sisäänrakennetut Amazon SageMaker JumpStart- ja Amazon SageMaker -algoritmit ja auttaa kehittämään koneoppimisalgoritmeja. Hän on aktiivinen koneoppimisen ja tilastollisen päättelyn tutkija ja julkaissut monia artikkeleita NeurIPS-, ICML-, ICLR-, JMLR-, ACL- ja EMNLP-konferensseissa.

João Moura on AI/ML Specialist Solutions -arkkitehti Amazon Web Servicesissä. Hän keskittyy enimmäkseen NLP-käyttötapauksiin ja auttaa asiakkaita optimoimaan Deep Learning -mallin koulutusta ja käyttöönottoa. Hän on myös aktiivinen matalan koodin ML-ratkaisujen ja ML-spesifisten laitteistojen kannattaja.

spot_img

Uusin älykkyys

spot_img

Keskustele kanssamme

Hei siellä! Kuinka voin olla avuksi?