Joulukuussa 2020 AWS ilmoitti - yleinen saatavuus Amazon SageMaker JumpStart, kyky Amazon Sage Maker jonka avulla pääset nopeasti ja helposti alkuun koneoppimisen (ML) kanssa. Maaliskuussa 2022 myös me ilmoitti tuki API:ille JumpStartissa. JumpStart tarjoaa yhdellä napsautuksella hienosäätöä ja laajan valikoiman valmiiksi koulutettuja malleja yleisiin ML-tehtäviin sekä valikoiman päästä päähän -ratkaisuja, jotka ratkaisevat yleisiä liiketoimintaongelmia. Nämä ominaisuudet poistavat raskasta nostoa ML-prosessin jokaisesta vaiheesta, mikä helpottaa korkealaatuisten mallien kehittämistä ja lyhentää käyttöönottoon kuluvaa aikaa.
Tässä viestissä näytämme, kuinka automaattinen mallin viritys suoritetaan JumpStartilla.
Automaattinen SageMaker-viritys
Perinteisesti ML-insinöörit ottavat käyttöön yrityksen ja erehdyksen -menetelmän oikean hyperparametrijoukon löytämiseksi. Kokeilu ja erehdys tarkoittaa useiden töiden suorittamista peräkkäin tai rinnakkain samalla kun hankitaan kokeilun suorittamiseen tarvittavat resurssit.
Kanssa Automaattinen SageMaker-viritysML-insinöörit ja datatieteilijät voivat vapauttaa aikaa vievän mallinsa optimointitehtävän ja antaa SageMakerin suorittaa kokeilun. SageMaker hyödyntää AWS-alustan joustavuutta suorittaakseen tehokkaasti ja samanaikaisesti useita koulutussimulaatioita tietojoukossa ja löytääkseen parhaat hyperparametrit mallille.
SageMaker automaattinen mallin viritys löytää mallin parhaan version suorittamalla monia koulutustöitä tietojoukossasi käyttämällä algoritmia ja vaihtelee määrittämäsi hyperparametrit. Sitten se valitsee hyperparametriarvot, jotka johtavat malliin, joka toimii parhaiten, mitattuna a:lla metrinen että valitset.
Automaattinen mallin viritys käyttää joko a Bayes (oletus) tai a satunnainen hakustrategia löytääksesi parhaat arvot hyperparametreille. Bayesilainen haku käsittelee hyperparametrien viritystä kuten a regressio ongelma. Valitessaan parhaita hyperparametreja seuraavaa harjoitustyötä varten se ottaa huomioon kaiken, mitä se tietää ongelmasta tähän mennessä ja sallii algoritmin hyödyntää tunnetuimpia tuloksia.
Tässä viestissä käytämme Bayesin oletushakustrategiaa näyttääksemme vaiheet, jotka liittyvät automaattiseen mallin viritykseen JumpStartilla käyttämällä LightGBM malli.
JumpStart tukee tällä hetkellä 10 esimerkkikannettavaa automaattisella mallivirityksellä. Se tukee myös neljää suosittua taulukkomuotoisen tietojen mallintamisalgoritmia. Tehtävät ja linkit heidän mallimuistikirjoihin on yhteenveto seuraavassa taulukossa.
Tehtävä | Valmiiksi koulutetut mallit | Tukee mukautettua tietojoukkoa | Tuetut puitteet | Esimerkkikannettavat |
Kuvien luokittelu | Joo | Joo | PyTorch, TensorFlow | Johdatus JumpStartiin – kuvien luokittelu |
Objektin tunnistus | Joo | Joo | PyTorch, TensorFlow, MXNet | Johdatus JumpStartiin – Objektin tunnistus |
Semanttinen segmentointi | Joo | Joo | MX Net | Johdatus JumpStartiin – semanttinen segmentointi |
Tekstiluokitus | Joo | Joo | TensorFlow | Johdatus JumpStartiin – Tekstin luokittelu |
Lauseparien luokittelu | Joo | Joo | TensorFlow, halaavat kasvot | Johdatus JumpStartiin – lauseparien luokittelu |
Kysymykseen vastaaminen | Joo | Joo | PyTorch | JumpStartin esittely – Kysymyksiin vastaaminen |
Taulukkoluokitus | Joo | Joo | LightGBM, CatBoost, XGBoost, lineaarinen oppija | Johdatus JumpStartiin – Taulukkoluokitus – LightGBM, CatBoost Johdatus JumpStartiin – Taulukkoluokitus – XGBoost, Lineaarinen oppija |
Taulukkoregressio | Joo | Joo | LightGBM, CatBoost, XGBoost, lineaarinen oppija | Johdatus JumpStartiin – Taulukkoregressio – LightGBM, CatBoost Johdatus JumpStartiin – Taulukkoregressio – XGBoost, Lineaarinen oppija |
Ratkaisun yleiskatsaus
Tämä tekninen työnkulku antaa yleiskatsauksen Amazon Sagemakerin eri ominaisuuksista ja vaiheista, joita tarvitaan JumpStart-mallin automaattiseen viritykseen.
Seuraavissa osioissa tarjoamme vaiheittaisen esittelyn automaattisen mallin virityksen suorittamisesta JumpStartilla LightGBM-algoritmin avulla. Tarjoamme mukana muistikirja tätä läpikäyntiä varten.
Käymme läpi seuraavat korkean tason vaiheet:
- Hae JumpStart-valmiiksi koulutettu malli- ja kuvasäiliö.
- Aseta staattiset hyperparametrit.
- Määritä viritettävät hyperparametrialueet.
- Alusta automaattinen mallin viritys.
- Suorita viritystyö.
- Ota paras malli käyttöön päätepisteessä.
Hae JumpStart-valmiiksi koulutettu malli- ja kuvasäiliö
Tässä osiossa valitsemme LightGBM-luokitusmallin hienosäätöä varten. Käytämme ilmentymätyyppiä ml.m5.xlarge, jolla mallia ajetaan. Haemme sitten koulutus Docker-säilön, koulutusalgoritmin lähteen ja esiopetetun mallin. Katso seuraava koodi:
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 pre-trained model tarball to further fine-tune
train_model_uri = model_uris.retrieve(
model_id=train_model_id, model_version=train_model_version, model_scope=train_scope
)
Aseta staattiset hyperparametrit
Haemme nyt tämän LightGBM-mallin oletushyperparametrit JumpStartin esimäärittämällä. Ohitamme myös num_boost_round
hyperparametri mukautetulla arvolla.
# Retrieve the default hyper-parameters for fine-tuning the model
hyperparameters = hyperparameters.retrieve_default(
model_id=train_model_id, model_version=train_model_version
)
# [Optional] Override default hyperparameters with custom values
Määritä viritettävät hyperparametrialueet
Seuraavaksi määritetään hyperparametrien alueet optimoitu automaattisella mallivirityksellä. Määritämme hyperparametrin nimen mallin odotetulla tavalla ja sitten arvoalueet, joita kokeillaan tälle hyperparametrille. Automaattinen mallin viritys ottaa näytteitä (yhtä kuin max_jobs
parametri) hyperparametrien avaruudesta käyttämällä Bayesin hakutekniikkaa. Kullekin piirretylle hyperparametrinäytteelle viritin luo harjoitustyön arvioidakseen mallin kyseisellä kokoonpanolla. Katso seuraava koodi:
hyperparameter_ranges = {
"learning_rate": ContinuousParameter(1e-4, 1, scaling_type="Logarithmic"),
"num_boost_round": IntegerParameter(2, 30),
"early_stopping_rounds": IntegerParameter(2, 30),
"num_leaves": IntegerParameter(10, 50),
"feature_fraction": ContinuousParameter(0, 1),
"bagging_fraction": ContinuousParameter(0, 1),
"bagging_freq": IntegerParameter(1, 10),
"max_depth": IntegerParameter(5, 30),
"min_data_in_leaf": IntegerParameter(5, 50),
}
Alusta automaattinen mallin viritys
Aloitamme luomalla arviointityökalu objektin kaikilla vaadituilla koulutustyön määrittävillä resursseilla, kuten esikoulutettu malli, koulutuskuva ja koulutusskripti. Sitten määrittelemme a Hyperparametri Viritin objekti vuorovaikutuksessa SageMakerin hyperparametrien virityssovellusliittymien kanssa.
- HyperparameterTuner
hyväksyy parametreiksi Estimator-objektin, tavoitemittarin, jonka perusteella päätetään paras hyperparametrijoukko, koulutustöiden kokonaismäärän (max_jobs
) aloittaaksesi hyperparametrien viritystyön ja suurimman rinnakkaisen harjoitustyön suorittamisen (max_parallel_jobs
). Harjoitustyöt suoritetaan LightGBM-algoritmilla ja hyperparametriarvoilla, joilla on minimi mlogloss
mittari on valittu. Lisätietoja automaattisen mallin virityksen määrittämisestä on kohdassa Hyperparametrien virityksen parhaat käytännöt.
# Create SageMaker Estimator instance
tabular_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,
) tuner = HyperparameterTuner(
estimator=tabular_estimator,
objective_metric_name="multi_logloss",
hyperparameter_ranges=hyperparameter_ranges,
metric_definitions=[{"Name": "multi_logloss", "Regex": "multi_logloss: ([0-9\.]+)"}],
strategy="Bayesian",
max_jobs=10,
max_parallel_jobs=2,
objective_type="Minimize",
base_tuning_job_name=training_job_name,
)
Edellisessä koodissa kerromme virittimen suorittamaan enintään 10 koetta (max_jobs
) ja vain kaksi samanaikaista koetta kerrallaan (max_parallel_jobs
). Molemmat parametrit pitävät kustannukset ja harjoitusaikasi hallinnassa.
Suorita viritystyö
SageMaker-viritystyön käynnistämiseksi kutsumme hyperparametriviritinobjektin sovitusmenetelmää ja välitämme Amazonin yksinkertainen tallennuspalvelu (Amazon S3) harjoitustietojen polku:
tuner.fit({"training": training_dataset_s3_path}, logs=True)
Automaattinen mallin viritys etsii parhaita hyperparametreja, mutta voit seurata niiden edistymistä joko SageMaker-konsolissa tai amazonin pilvikello. Kun harjoitus on suoritettu, parhaan mallin hienosäädetyt esineet ladataan harjoituskokoonpanossa määritettyyn Amazon S3 -tulostuspaikkaan.
Ota paras malli käyttöön päätepisteessä
Kun viritystyö on valmis, paras malli on valittu ja tallennettu Amazon S3:een. Voimme nyt ottaa tämän mallin käyttöön kutsumalla sen käyttöönottomenetelmää HyperparameterTuner
objekti ja välitetään tarvittavat parametrit, kuten luodulle päätepisteelle käytettävien esiintymien lukumäärä, niiden tyyppi, käyttöön otettava kuva ja suoritettava komentosarja:
tuner.deploy(
initial_instance_count=1,
instance_type=inference_instance_type,
entry_point="inference.py",
image_uri=deploy_image_uri,
source_dir=deploy_source_uri,
endpoint_name=endpoint_name,
enable_network_isolation=True
)
Voimme nyt testata luotua päätepistettä tekemällä päättelypyyntöjä. Voit seurata prosessin loppua oheisesta muistikirja.
Yhteenveto
Automaattisen mallin virityksen avulla SageMakerissa voit löytää mallistasi parhaan version suorittamalla koulutustöitä toimitetussa tietojoukossa jollakin tuetuista algoritmeista. Automaattisen mallin virityksen avulla voit lyhentää mallin virittämiseen kuluvaa aikaa etsimällä automaattisesti parhaan hyperparametrikokoonpanon määrittämiltäsi hyperparametrialueilta.
Tässä viestissä näytimme automaattisen mallin virityksen arvon JumpStart-esikoulutetussa mallissa SageMaker-sovellusliittymiä käyttämällä. Käytimme LightGBM-algoritmia ja määritimme enintään 10 harjoitustyötä. Annoimme myös linkkejä esimerkkimuistikirjoihin, jotka esittelevät JumpStart-mallin optimointia tukevat ML-kehykset.
Katso esimerkistämme lisätietoja JumpStart-mallin optimoinnista automaattisen mallin virityksen avulla muistikirja.
kirjailijasta
Doug Mbaya on Senior Partner Solution -arkkitehti, joka keskittyy dataan ja analytiikkaan. Doug tekee tiivistä yhteistyötä AWS-kumppaneiden kanssa ja auttaa heitä integroimaan data- ja analytiikkaratkaisuja pilveen.
Kruthi Jayasimha Rao on Partner Solutions -arkkitehti Scale-PSA-tiimissä. Kruthi suorittaa kumppaneille teknisiä validointeja, joiden avulla he voivat edistyä kumppanipolulla.
Giannis Mitropoulos on SageMakerin ohjelmistokehitysinsinööri Automaattinen mallin viritys.
Tohtori Ashish Khetan on vanhempi soveltuva tutkija Amazon SageMaker JumpStart ja Amazon SageMakerin sisäänrakennetut algoritmit ja auttaa kehittämään koneoppimisalgoritmeja. Hän on aktiivinen koneoppimisen ja tilastollisen päättelyn tutkija ja on julkaissut monia artikkeleita NeurIPS-, ICML-, ICLR-, JMLR- ja ACL-konferensseissa.
- "
- 10
- 100
- 2020
- 2022
- Meistä
- poikki
- aktiivinen
- Etu
- algoritmi
- algoritmit
- Kaikki
- Amazon
- Analytics
- API
- Varat
- automaattisesti
- saatavuus
- AWS
- PARAS
- sisäänrakennettu
- liiketoiminta
- soittaa
- Valita
- valittu
- luokittelu
- pilvi
- koodi
- Yhteinen
- konferenssit
- Konfigurointi
- pitää
- Console
- Kontti
- ohjaus
- luoda
- luotu
- luo
- Luominen
- Tällä hetkellä
- asiakassuhde
- tiedot
- päätti
- osoittaa
- sijoittaa
- käyttöön
- käyttöönotto
- yksityiskohdat
- kehittää
- Kehitys
- eri
- Satamatyöläinen
- helposti
- tehokkaasti
- mahdollistaa
- päätepiste
- insinööri
- Engineers
- arvioida
- kaikki
- esimerkki
- odotettu
- kokeilu
- Käyttää hyväkseen
- Ominaisuudet
- löydöt
- sovittaa
- Keskittää
- seurata
- jälkeen
- edelleen
- general
- korkeus
- auttaa
- auttaa
- korkealaatuisia
- Miten
- Miten
- HTTPS
- kuva
- toteuttaa
- tiedot
- yhdistää
- osallistuva
- IT
- Job
- Työpaikat
- käynnistää
- oppiminen
- nosto
- linkit
- sijainti
- kone
- koneoppiminen
- Tekeminen
- maaliskuu
- ML
- malli
- mallit
- monitori
- lisää
- eniten
- moninkertainen
- numero
- optimointi
- Optimoida
- optimoimalla
- kumppani
- kumppani
- Ohimenevä
- foorumi
- Suosittu
- Ongelma
- ongelmia
- prosessi
- toimittaa
- tarjoaa
- kysymys
- nopeasti
- vähentää
- vähentämällä
- pyynnöt
- tarvitaan
- Esittelymateriaalit
- REST
- tulokset
- ajaa
- juoksu
- Tiedemies
- tutkijat
- Haku
- valittu
- setti
- esittelylle
- Yksinkertainen
- So
- Tuotteemme
- ohjelmistokehitys
- ratkaisu
- Ratkaisumme
- SOLVE
- Tila
- Alkaa
- alkoi
- tilastollinen
- Levytila
- Strategia
- tuki
- Tuetut
- Tukee
- Kohde
- tehtävät
- joukkue-
- Tekninen
- testi
- Kautta
- aika
- aikaavievä
- Otsikko
- koulutus
- oikeudenkäynti
- käyttää
- arvo
- lajike
- vaikka
- sisällä
- toimii