Optimeerige hüperparameetreid Amazon SageMakeri automaatse mudeli häälestamise PlatoBlockchain Data Intelligence abil. Vertikaalne otsing. Ai.

Optimeerige hüperparameetreid Amazon SageMakeri automaatse mudeli häälestamisega

Masinõppe (ML) mudelid vallutavad maailma tormiliselt. Nende jõudlus sõltub õigete treeningandmete kasutamisest ning õige mudeli ja algoritmi valimisest. Kuid see ei lõpe siin. Tavaliselt lükkavad algoritmid mõned kujundusotsused ML-praktiku teha, et need oma konkreetsete andmete ja ülesande jaoks vastu võtta. Need edasilükatud disainiotsused avalduvad kui hüperparameetrid.

Mida see nimi tähendab? ML-treeningu tulemust, mudelit, võib suures osas vaadelda parameetrite kogumina, mida treenides õpitakse. Seetõttu nimetatakse ML-i treeningprotsessi konfigureerimiseks kasutatavaid parameetreid hüperparameetriteks – parameetrite loomist kirjeldavateks parameetriteks. Igal juhul on neist väga praktiline kasu, näiteks treenitavate perioodide arv, õppimiskiirus, otsustuspuu maksimaalne sügavus ja nii edasi. Ja me pöörame neile palju tähelepanu, sest neil on suur mõju teie mudeli parimale jõudlusele.

Nii nagu raadiovastuvõtja nupu keeramine õige sageduse leidmiseks, tuleks iga hüperparameeter jõudluse optimeerimiseks hoolikalt häälestada. Hüperparameetriruumist optimaalsete väärtuste otsimist nimetatakse hüperparameetrite häälestamine or hüperparameetrite optimeerimine (HPO) ja peaks andma täpseid prognoose andva mudeli.

Selles postituses seadistame ja käitame oma esimese HPO töö, kasutades Amazon SageMakeri automaatne mudeli häälestamine (AMT). Õpime tundma tulemuste uurimiseks saadaolevaid meetodeid ja loome oma HPO katsetest ja hüperparameetrite ruumi uurimisest mõned arusaadavad visualiseeringud!

Amazon SageMakeri automaatne mudeli häälestamine

ML-i praktikuna kasutades SageMaker AMT, saate keskenduda järgmisele:

  • Koolitustöö pakkumine
  • Teie ülesandele vastava õige eesmärgimõõdiku määratlemine
  • Hüperparameetri otsinguruumi ulatuse määramine

SageMaker AMT hoolitseb ülejäänu eest ja te ei pea mõtlema infrastruktuurile, koolitustööde korraldamisele ja hüperparameetrite valiku parandamisele.

Alustuseks kasutame SageMaker AMT-d oma esimese lihtsa HPO töö jaoks, et treenida ja häälestada XGBoost algoritm. Soovime, et teie AMT-teekond oleks praktiline ja praktiline, seetõttu oleme jaganud järgmist näidet GitHubi hoidla. See postitus hõlmab 1_tuning_of_builtin_xgboost.ipynb märkmik.

Tulevases postituses laiendame parimate hüperparameetrite leidmise mõistet ja lisame otsinguruumi tundmaõppimise ja selle, milliste hüperparameetrite vahemike suhtes mudel on tundlik. Samuti näitame, kuidas muuta ühekordne häälestustegevus mitmeastmeliseks vestluseks ML-praktikuga, et koos õppida. Püsige lainel (sõnamäng mõeldud)!

Eeldused

See postitus on mõeldud kõigile, kes on huvitatud HPO-st ja ei nõua eelteadmisi teemast. ML-i kontseptsioonide ja Pythoni programmeerimise põhitundmine on siiski kasulik. Parima õppimiskogemuse saamiseks soovitame kindlasti järgida jookseb iga sammu märkmikus paralleelselt selle postituse lugemisega. Märkmiku lõpus saate proovida ka interaktiivset visualiseerimist, mis muudab häälestustulemused elavaks.

Lahenduse ülevaade

Ehitame SageMaker AMT abil oma esimese HPO töö tegemiseks täieliku seadistuse. Kui meie häälestustöö on lõpetatud, vaatame tulemuste uurimiseks mõningaid saadaolevaid meetodeid, mõlema kaudu AWS-i juhtimiskonsool ja programmiliselt AWS-i SDK-de ja API-de kaudu.

Esmalt tutvume keskkonna ja SageMakeri koolitusega, tehes eraldiseisvat koolitustööd, praegu ilma häälestamiseta. Kasutame XGBoosti algoritmi, mis on üks paljudest algoritmidest, mis on esitatud kui a SageMakeri sisseehitatud algoritm (koolitusskripti pole vaja!).

Näeme, kuidas SageMaker Training toimib järgmistel viisidel:

  • Käivitab ja peatab eksemplari
  • Varustab vajaliku konteineri
  • Kopeerib koolitus- ja valideerimisandmed eksemplari
  • Käitab koolitust
  • Kogub mõõdikuid ja logisid
  • Kogub ja säilitab koolitatud modelli

Seejärel liigume AMT-sse ja teeme HPO tööd:

  • Seadistame ja käivitame oma häälestustöö AMT-ga
  • Sukeldume saadaolevatesse meetoditesse iga koolitustöö jaoks üksikasjalike jõudlusmõõdikute ja metaandmete hankimiseks, mis võimaldab meil rohkem teada saada meie hüperparameetrite ruumi optimaalsete väärtuste kohta.
  • Näitame teile, kuidas katsete tulemusi vaadata
  • Pakume teile tööriistu andmete visualiseerimiseks diagrammides, mis annavad väärtuslikku teavet meie hüperparameetrite ruumi kohta

Treenige SageMakeri sisseehitatud XGBoost algoritmi

Kõik algab modelli koolitamisest. Seda tehes saame aimu SageMakeri koolituse toimimisest.

Soovime ära kasutada SageMakeri pakutavat kiirust ja kasutusmugavust sisseehitatud algoritmid. Treeningu alustamiseks vajame vaid mõnda sammu:

  1. Valmistage ette ja laadige andmed – Laadime alla ja valmistame oma andmestiku XGBoosti sisendiks ning laadime selle üles Amazoni lihtne salvestusteenus (Amazon S3) kopp.
  2. Valige meie sisseehitatud algoritmi pildi URI – SageMaker kasutab seda URI-d meie treeningkonteineri toomiseks, mis meie puhul sisaldab kasutusvalmis XGBoost treeningskripti. Toetatud on mitu algoritmi versiooni.
  3. Määratlege hüperparameetrid - SageMaker pakub liidest selle määratlemiseks hüperparameetrid meie sisseehitatud algoritmi jaoks. Need on samad hüperparameetrid, mida kasutab avatud lähtekoodiga versioon.
  4. Koostage hindaja – Määratleme koolitusparameetrid, nagu eksemplari tüüp ja eksemplaride arv.
  5. Kutsuge funktsioon fit(). – Alustame oma koolitustööd.

Järgmine diagramm näitab, kuidas need sammud koos töötavad.

Esitage andmed

ML-treeningu läbiviimiseks peame esitama andmed. Pakume oma koolitus- ja valideerimisandmeid SageMakerile Amazon S3 kaudu.

Meie näites kasutame lihtsuse huvides oma andmete salvestamiseks SageMakeri vaikeämbrit. Kuid võite vabalt kohandada järgmisi väärtusi vastavalt oma eelistustele.

sm_sess = sagemaker.session.Session([..])

BUCKET = sm_sess.default_bucket()
PREFIX = 'amt-visualize-demo'
output_path = f's3://{BUCKET}/{PREFIX}/output'

Märkmikus kasutame avalikku andmestikku ja salvestame andmed lokaalselt data kataloog. Seejärel laadime oma koolitus- ja valideerimisandmed Amazon S3-sse. Hiljem määratleme ka nendele asukohtadele viitajad, et need SageMakeri koolitusele edastada.

# acquire and prepare the data (not shown here)
# store the data locally
[..]
train_data.to_csv('data/train.csv', index=False, header=False)
valid_data.to_csv('data/valid.csv', index=False, header=False)
[..]
# upload the local files to S3
boto_sess.resource('s3').Bucket(BUCKET).Object(os.path.join(PREFIX, 'data/train/train.csv')).upload_file('data/train.csv')
boto_sess.resource('s3').Bucket(BUCKET).Object(os.path.join(PREFIX, 'data/valid/valid.csv')).upload_file('data/valid.csv')

Selles postituses keskendume HPO tutvustamisele. Illustreerimiseks kasutame konkreetset andmekogumit ja ülesannet, et saaksime objektiivsete mõõdikute mõõtmised, mida kasutame seejärel hüperparameetrite valiku optimeerimiseks. Üldise postituse jaoks pole aga andmed ega ülesanne oluline. Täieliku pildi esitamiseks kirjeldame lühidalt, mida me teeme: koolitame välja XGBoosti mudeli, mis peaks klassifitseerima käsitsi kirjutatud numbrid
Käsitsi kirjutatud numbrite andmekogumi optiline tuvastamine [1] Scikit-learni kaudu. XGBoost on suurepärane algoritm struktureeritud andmete jaoks ja seda saab rakendada isegi numbrite andmekogumile. Väärtused on 8 × 8 kujutist, nagu järgmises näites, mis näitab a
0 a
5 ja
4.

Optimeerige hüperparameetreid Amazon SageMakeri automaatse mudeli häälestamise PlatoBlockchain Data Intelligence abil. Vertikaalne otsing. Ai.

Valige XGBoosti pildi URI

Pärast sisseehitatud algoritmi (XGBoost) valimist peame leidma pildi URI ja edastama selle SageMakerile, et laadida see meie koolituseksemplari. Selle etapi jaoks vaatame läbi saadaolevad versioonid. Siin oleme otsustanud kasutada versiooni 1.5.1, mis pakub algoritmi uusimat versiooni. Sõltuvalt ülesandest võivad ML-i praktikud kirjutada oma koolitusskripti, mis sisaldab näiteks andmete ettevalmistamise etappe. Kuid see pole meie puhul vajalik.

Kui soovite kirjutada oma koolituse stsenaariumi, siis olge kursis, meie järgmises postituses käsitleme teid! Näitame teile, kuidas juhtida SageMakeri koolitustöid teie enda kohandatud koolitusskriptidega.

Praegu vajame õiget pildi URI-d, määrates algoritmi, AWS-i piirkonna ja versiooninumbri:

xgboost_container = sagemaker.image_uris.retrieve('xgboost', region, '1.5-1')

See on kõik. Nüüd on meil viide XGBoosti algoritmile.

Määratlege hüperparameetrid

Nüüd määratleme oma hüperparameetrid. Need väärtused konfigureerivad, kuidas meie mudelit koolitatakse, ja lõpuks mõjutavad seda, kuidas mudel toimib võrreldes objektiivse mõõdikuga, mille alusel me mõõdame, näiteks meie puhul täpsust. Pange tähele, et miski järgmise koodiploki kohta pole SageMakerile omane. Me kasutame tegelikult avatud lähtekoodiga versioon XGBoost, mille just pakub ja SageMaker on selle jaoks optimeeritud.

Kuigi kõik need hüperparameetrid on konfigureeritavad ja reguleeritavad, on objektiivne mõõdik multi:softmax määrab meie andmekogum ja probleemi tüüp, mida me lahendame. Meie puhul sisaldab numbrite andmestik mitut silti (käsitsi kirjutatud numbri vaatlus võib olla 0 or 1,2,3,4,5,6,7,8,9), mis tähendab, et tegemist on mitme klassi klassifitseerimisprobleemiga.

hyperparameters = {
    'num_class': 10,
    'max_depth': 5,
    'eta':0.2,
    'alpha': 0.2,
    'objective':'multi:softmax',
    'eval_metric':'accuracy',
    'num_round':200,
    'early_stopping_rounds': 5
}

Teiste hüperparameetrite kohta lisateabe saamiseks vaadake XGBoost hüperparameetrid.

Koostage hindaja

Konfigureerime koolituse hindajaobjektil, mis on SageMakeri koolituse kõrgetasemeline liides.

Järgmisena määratleme treenitavate eksemplaride arvu, eksemplari tüübi (CPU-põhine või GPU-põhine) ja lisatud salvestusruumi suuruse.

estimator = sagemaker.estimator.Estimator(
    image_uri=xgboost_container, 
    hyperparameters=hyperparameters,
    role=role,
    instance_count=1, 
    instance_type='ml.m5.large', 
    volume_size=5, # 5 GB 
    output_path=output_path
)

Meil on nüüd infrastruktuuri konfiguratsioon, mida vajame alustamiseks. Ülejäänu eest hoolitseb SageMakeri koolitus.

Kutsuge funktsioon fit().

Kas mäletate andmeid, mida me varem Amazon S3-sse üles laadisime? Nüüd loome sellele viited:

s3_input_train = TrainingInput(s3_data=f's3://{BUCKET}/{PREFIX}/data/train', content_type='csv')
s3_input_valid = TrainingInput(s3_data=f's3://{BUCKET}/{PREFIX}/data/valid', content_type='csv')

Kõne aadressile fit() käivitab meie koolituse. Edastame viited äsja loodud treeningandmetele, et suunata SageMaker Training meie koolitus- ja valideerimisandmetele:

estimator.fit({'train': s3_input_train, 'validation': s3_input_valid})

Pange tähele, et HPO hilisemaks käivitamiseks ei pea me tegelikult helistama fit() siin. Vajame lihtsalt HPO jaoks hindajaobjekti ja võiksime lihtsalt hüpata oma HPO töökoha loomise juurde. Kuid kuna tahame SageMakeri koolituse kohta õppida ja näha, kuidas juhtida ühte koolitustööd, kutsume selle siia ja vaatame väljundi üle.

Pärast koolituse algust hakkame lahtrite all nägema väljundit, nagu on näidatud järgmisel ekraanipildil. Väljund on saadaval Amazon CloudWatch kui ka selles märkmikus.

Must tekst on SageMakeri enda logiväljund, mis näitab treeningu orkestreerimisega seotud etappe, nagu eksemplari käivitamine ja treeningpildi laadimine. Sinine tekst väljastatakse otse koolituseksemplarist endast. Saame jälgida treeningandmete laadimise ja sõelumise protsessi ning visuaalselt näha treeningu edenemist ja eesmärgimõõdiku paranemist otse eksemplaris töötavast treeningskriptist.

Funktsiooni fit() väljund Jupyteri sülearvutis

Pange tähele ka seda, et väljundtöö lõpus kuvatakse treeningu kestus sekundites ja arveldatavad sekundid.

Lõpuks näeme, et SageMaker laadib meie treeningmudeli üles S3 väljundteele, mis on määratletud hindaja objektil. Mudel on järelduste tegemiseks kasutamiseks valmis.

Ühes tulevases postituses loome oma koolitusmahuti ja määratleme väljastatavad treeningmõõdikud. Näete, kuidas SageMaker on agnostik selle suhtes, millise konteineri te selle koolituseks läbite. See on väga mugav, kui soovite sisseehitatud algoritmiga kiiresti alustada, kuid otsustate hiljem läbida oma kohandatud treeningskripti!

Kontrollige praeguseid ja varasemaid koolitustöid

Seni oleme oma koodiga sülearvutist töötanud ja SageMakerile koolitustöid esitanud. Vahetame vaatenurki ja jätame sülearvuti hetkeks, et vaadata, kuidas see SageMakeri konsoolil välja näeb.

SageMakeri koolitustööde konsoolivaade

SageMaker peab ajaloolist arvestust tehtud koolitustööde, nende konfiguratsioonide, näiteks hüperparameetrite, algoritmide, andmesisendi, arveldatava aja ja tulemuste kohta. Eelmise ekraanipildi loendis näete XGBoosti jaoks filtreeritud uusimaid koolitustöid. Esile tõstetud koolitustöö on äsja märkmikus koolitatud töö, mille väljundit nägite varem. Sukeldume sellesse individuaalsesse koolitustöösse, et saada rohkem teavet.

Järgmine ekraanipilt näitab meie koolitustöö konsoolivaadet.

Konsoolivaade ühe SageMakeri koolitustöö kohta

Saame lahtri väljundina saadud teabe meie omale üle vaadata fit() funktsioon SageMakeri konsooli individuaalses treeningtöös koos hindajas määratletud parameetrite ja metaandmetega.

Tuletage meelde varem nähtud koolituseksemplari logiväljund. Oma koolitustöö logidele pääseme juurde ka siit, kerides valikule Jälgida jaotis ja valimine Vaata logisid.

Koolitustöö jälgimise vahekaardi konsoolivaade

See näitab meile CloudWatchi eksemplari logisid.

CloudWatchi koolituseksemplari logide konsoolivaade

Pidage meeles ka hüperparameetreid, mille me märkmikus koolitustöö jaoks määrasime. Näeme neid siin ka koolitustöö samas kasutajaliideses.

SageMakeri koolitustöö hüperparameetrite konsoolivaade

Tegelikult leiate üksikasjad ja metaandmed, mille me varem oma koolitustöö ja hinnangu jaoks määrasime, sellelt SageMakeri konsooli lehelt. Meil on kasulik teave koolitusel kasutatud seadete kohta, näiteks kasutatud koolitusmahuti ning koolituse ja valideerimise andmekogumite asukohad.

Siinkohal võite küsida, miks on see hüperparameetrite optimeerimise jaoks asjakohane? Selle põhjuseks on asjaolu, et saate otsida, kontrollida ja sukelduda sügavamale nendesse HPO katsetesse, millest oleme huvitatud. Võib-olla need, millel on parimad tulemused, või need, mis näitavad huvitavat käitumist. Jätame teile selle, mida te määratlete kui "huvitavat". See annab meile ühise liidese meie koolitustööde kontrollimiseks ja saate seda kasutada koos SageMaker Searchiga.

Kuigi SageMaker AMT korraldab HPO töid, käivitatakse kõik HPO katsetused üksikute SageMakeri koolitustöödena ja neile pääseb juurde ka sellisena.

Treeninguga alustame häälestamist!

Treenige ja häälestage SageMakeri sisseehitatud XGBoost algoritm

Oma XGBoosti mudeli häälestamiseks kasutame uuesti oma olemasolevaid hüperparameetreid ja määratleme väärtusvahemikud, mida tahame nende jaoks uurida. Mõelge sellele kui uurimise piiride laiendamisele meie hüperparameetrite otsinguruumis. Meie häälestustöö valib otsinguruumist ja juhib koolitustöid uute väärtuskombinatsioonide jaoks. Järgmine kood näitab, kuidas määrata hüperparameetrite vahemikud, millest SageMaker AMT proovima peaks võtma:

from sagemaker.tuner import IntegerParameter, ContinuousParameter, HyperparameterTuner

hpt_ranges = {
    'alpha': ContinuousParameter(0.01, .5),
    'eta': ContinuousParameter(0.1, .5),
    'min_child_weight': ContinuousParameter(0., 2.),
    'max_depth': IntegerParameter(1, 10)
}

Üksiku hüperparameetri vahemikud määratakse nende tüübi järgi, näiteks ContinuousParameter. Lisateavet ja näpunäiteid nende parameetrivahemike valimise kohta leiate aadressilt Häälestage XGBoost mudel.

Me pole veel katseid teinud, seega ei tea me oma hüperparameetrite heade väärtuste vahemikke. Seetõttu alustame haritud oletusega, kasutades oma teadmisi algoritmide kohta ja meie dokumentatsiooni sisseehitatud algoritmide hüperparameetrite kohta. See määrab otsinguruumi määratlemise alguspunkti.

Seejärel käivitame määratletud vahemike hüperparameetritest häälestustöö valimi. Selle tulemusena näeme, millised hüperparameetrite vahemikud annavad häid tulemusi. Nende teadmistega saame täpsustada otsinguruumi piire, kitsendades või laiendades kasutatavaid hüperparameetrite vahemikke. Näitame, kuidas katsetest õppida järgmises ja viimases osas, kus me tulemusi uurime ja visualiseerime.

Järgmises postituses jätkame oma teekonda ja sukeldume sügavamale. Lisaks saame teada, et on mitmeid strateegiaid, mida saame oma otsinguruumi uurimiseks kasutada. Käitame järgnevaid HPO töid, et leida meie hüperparameetrite jaoks veelgi tõhusamaid väärtusi, samal ajal võrreldes neid erinevaid strateegiaid. Samuti näeme, kuidas SageMaker AMT-ga soojalt alustada, et kasutada varem uuritud otsinguruumidest saadud teadmisi meie uurimisel väljaspool neid esialgseid piire.

Selle postituse puhul keskendume sellele, kuidas analüüsida ja visualiseerida ühe HPO töö tulemusi, kasutades Bayesi otsingustrateegiat, mis on tõenäoliselt hea lähtepunkt.

Kui järgite lingitud märkmikku, pange tähele, et edastame sama hindaja, mida kasutasime oma ühe sisseehitatud XGBoosti koolitustöö jaoks. See hinnanguobjekt toimib mallina uutele koolitustöödele, mille AMT loob. Seejärel muudab AMT hüperparameetreid meie määratletud vahemikes.

Täpsustades, et tahame oma objektiivset mõõdikut maksimeerida, validation:accuracy, käsime SageMaker AMT-l otsida neid mõõdikuid koolituseksemplari logidest ja valida hüperparameetrite väärtused, mis tema arvates suurendavad meie valideerimisandmete täpsusmõõdikut. Valisime sobiva XGBoosti objektiivne mõõdik meie dokumentatsioonist.

Lisaks saame ära kasutada paralleelsust max_parallel_jobs. See võib olla võimas tööriist, eriti strateegiate puhul, mille katsed valitakse sõltumatult, ilma eelnevate katsete tulemusi arvesse võtmata (nendest õppimata). Uurime neid teisi strateegiaid ja parameetreid lähemalt oma järgmises postituses. Selle postituse jaoks kasutame Bayesi keelt, mis on suurepärane vaikestrateegia.

Samuti määratleme max_jobs et määrata, mitu katset kokku käitada. Võite meie näitest kõrvale kalduda ja raha säästmiseks kasutada väiksemat numbrit.

n_jobs = 50
n_parallel_jobs = 3

tuner_parameters = {
    'estimator': estimator, # The same estimator object we defined above
    'base_tuning_job_name': 'bayesian',
    'objective_metric_name': 'validation:accuracy',
    'objective_type': 'Maximize',
    'hyperparameter_ranges': hpt_ranges,
    'strategy': 'Bayesian',
    'max_jobs': n_jobs,
    'max_parallel_jobs': n_parallel_jobs
}

Helistame veel kord fit(), samamoodi nagu siis, kui käivitasime postituse alguses ühe koolitustöö. Kuid seekord tuuneri objektil, mitte hinnangulisel objektil. See käivitab häälestustöö ja AMT omakorda alustab koolitustöödega.

tuner = HyperparameterTuner(**tuner_parameters)
tuner.fit({'train': s3_input_train, 'validation': s3_input_valid}, wait=False)
tuner_name = tuner.describe()['HyperParameterTuningJobName']
print(f'tuning job submitted: {tuner_name}.')

Järgmine diagramm laiendab meie eelmist arhitektuuri, lisades HPO koos SageMaker AMT-ga.

Ülevaade SageMakeri koolitusest ja hüperparameetrite optimeerimisest SageMaker AMT-ga

Näeme, et meie HPO töö on esitatud. Olenevalt katsete arvust, määratleb n_jobs ja paralleelsuse tase, võib see veidi aega võtta. Meie näite puhul võib 30 katse jaoks, mille paralleelsuse tase on 50, kuluda kuni 3 minutit.

tuning job submitted: bayesian-221102-2053.

Kui see häälestustöö on lõpetatud, uurime SageMakeri konsoolis saadaolevat teavet.

Uurige konsooli AMT töid

Leiame oma häälestustöö SageMakeri konsoolil valides koolitus navigeerimispaanil ja seejärel Hüperparameetrite häälestamise tööd. See annab meile loendi meie AMT töödest, nagu on näidatud järgmisel ekraanipildil. Siit leiame oma bayesian-221102-2053 häälestustööd ja avastage, et see on nüüd lõpetatud.

Hüperparameetrite häälestustööde lehe konsoolivaade. Pilt näitab häälestustööde loendivaadet, mis sisaldab meie üht häälestuskirjet

Vaatame selle HPO töö tulemusi lähemalt.

Oleme uurinud tulemuste programmilist ekstraheerimist rakenduses märkmik. Esiteks kaudu SageMaker Python SDK, mis on kõrgema taseme avatud lähtekoodiga Pythoni teek, mis pakub SageMakerile spetsiaalset API-d. Siis läbi Boto3, mis pakub meile SageMakeri ja muude AWS-teenuste madalama taseme API-sid.

SageMaker Python SDK abil saame oma HPO töö tulemused:

sagemaker.HyperparameterTuningJobAnalytics(tuner_name).dataframe()[:10]

See võimaldas meil analüüsida iga meie katse tulemusi Pandas DataFrame'is, nagu on näha järgmisel ekraanipildil.

Pandade tabel Jupyteri sülearvutis, mis näitab tulemusi ja metaandmeid meie HPO töö jaoks jooksnud jälgedest

Vahetame nüüd taas vaatenurki ja vaatame, millised tulemused SageMakeri konsoolil välja näevad. Seejärel vaatame oma kohandatud visualiseerimisi.

Samal lehel valides meie bayesian-221102-2053 häälestustöö annab meile nimekirja katsetest, mis meie häälestustöö jaoks läbiti. Iga siinne HPO prooviversioon on SageMakeri koolitustöö. Tuletage meelde varem, kui koolitasime oma ühtset XGBoosti mudelit ja uurisime SageMakeri konsoolis koolitustööd. Sama saame teha siinsete katsumustega.

Kui me oma katseid uurime, näeme seda bayesian-221102-2053-048-b59ec7b4 lõi kõige paremini toimiva mudeli, mille valideerimise täpsus on ligikaudu 89.815%. Uurime, millised hüperparameetrid viisid selle jõudluseni, valides selle Parim koolitustöö Tab.

Üksiku häälestustöö konsoolivaade, mis näitab sooritatud koolitustööde loendit

Näeme üksikasjalikku vaadet parimatest hinnatud hüperparameetritest.

Ühe häälestustöö konsoolivaade, mis näitab parima koolitustöö üksikasju

Näeme kohe, millised hüperparameetri väärtused viisid selle suurepärase jõudluseni. Siiski tahame rohkem teada. Kas oskate arvata mida? Me näeme seda alpha võtab ligikaudse väärtuse 0.052456 ja samamoodi eta on seatud väärtusele 0.433495. See ütleb meile, et need väärtused töötasid hästi, kuid see räägib vähe hüperparameetriruumi enda kohta. Näiteks võime küsida, kas 0.433495 jaoks eta oli kõrgeim testitud väärtus või kas on ruumi kasvuks ja mudeli täiustamiseks, valides kõrgemad väärtused.

Selleks peame välja suumima ja võtma palju laiemat vaadet, et näha, kuidas meie hüperparameetrite muud väärtused toimivad. Üks viis paljude andmete korraga vaatamiseks on joonistada meie HPO katsetest saadud hüperparameetrite väärtused diagrammile. Nii näeme, kuidas need väärtused suhteliselt toimisid. Järgmises jaotises tõmbame need andmed SageMakerist ja visualiseerime.

Visualiseerige meie katseid

SageMaker SDK pakub meile meie uurimise jaoks andmeid ja märkmikud annavad teile selle ülevaate. Kuid selle kasutamiseks ja visualiseerimiseks on palju võimalusi. Selles postituses jagame näidist, kasutades Altaïr statistilise visualiseerimise teek, mida kasutame oma katsetest visuaalsema ülevaate saamiseks. Need on leitud amtviz pakett, mida pakume proovi osana:

from amtviz import visualize_tuning_job
visualize_tuning_job(tuner, trials_only=True)

Nende visualiseerimiste võimsus ilmneb kohe, kui joonistame meie katsete valideerimise täpsuse (y-telg) ajas (x-telg). Järgmine vasakpoolne tabel näitab valideerimise täpsust aja jooksul. Näeme selgelt mudeli jõudluse paranemist, kui aja jooksul katsetame rohkem. See on Bayesi strateegiaga HPO juhtimise otsene ja oodatud tulemus. Järgmises postituses näeme, kuidas see on võrreldes teiste strateegiatega, ja täheldame, et see ei pea nii olema kõigi strateegiate puhul.

Kaks diagrammi, mis näitavad HPO jälgi. Vasakpoolne diagramm näitab valideerimise täpsust aja jooksul. Parempoolne diagramm näitab valideerimise täpsuse väärtuste tiheduse diagrammi

Pärast aja jooksul toimunud üldiste edusammude ülevaatamist vaatame nüüd oma hüperparameetrite ruumi.

Järgmised diagrammid näitavad valideerimise täpsust y-teljel, kusjuures iga diagramm on näidatud max_depth, alpha, etaja min_child_weight vastavalt x-teljel. Oleme joonistanud kogu oma HPO töö igasse diagrammi. Iga punkt on üks katse ja iga diagramm sisaldab kõiki 50 katset, kuid iga hüperparameetri jaoks eraldi. See tähendab, et meie kõige paremini toimiv prooviversioon nr 48 on kõigis nendes graafikutes tähistatud täpselt ühe sinise punktiga (mille oleme teie jaoks järgmisel joonisel esile tõstnud). Saame visuaalselt võrrelda selle toimivust kõigi ülejäänud 49 katse kontekstis. Niisiis, vaatame lähemalt.

Huvitav! Näeme kohe, millised meie hüperparameetrite ruumi määratletud vahemike piirkonnad on kõige tõhusamad! Meie peale tagasi mõeldes eta väärtus, on nüüd selge, et 0-le lähemate väärtuste valimine andis halvema jõudluse, samas kui meie piirile (0.5) lähemale liikumine annab paremaid tulemusi. Vastupidine näib olevat tõsi alphaja max_depth näib olevat eelistatud väärtuste komplekt piiratud. Vaatan max_depth, saate ka näha, kuidas Bayesi strateegia kasutamine juhendab SageMaker AMT-d sagedamini proovima õpitud väärtusi, mis varem hästi toimisid.

Neli diagrammi, mis näitavad valideerimise täpsust y-teljel, kusjuures iga diagramm näitab vastavalt max_depth, alfa, eta, min_child_weight x-teljel. Iga andmepunkt esindab ühte HPO uuringut

Vaadates meie eta väärtust, võime küsida, kas tasub uurida rohkem paremale, võib-olla kaugemale kui 0.45? Kas see langeb jätkuvalt madalamale täpsusele või vajame siin rohkem andmeid? See imestamine on osa meie esimese HPO töö tegemise eesmärgist. See annab meile ülevaate sellest, milliseid hüperparameetriruumi piirkondi peaksime edasi uurima.

Kui soovite rohkem teada saada ja olete sellest teema sissejuhatusest sama põnevil kui meie, siis olge kursis meie järgmise postitusega, kus räägime rohkem erinevatest HPO strateegiatest, võrdleme neid üksteisega ja harjutage treeningut meie enda Pythoni skriptiga.

Koristage

Soovimatute kulude vältimiseks pärast HPO-ga katsetamise lõpetamist peate eemaldama kõik failid oma S3 ämbrist koos eesliitega amt-visualize-demo ja ka sulgege Studio ressursid.

Käivitage oma märkmikus järgmine kood, et eemaldada sellest postitusest kõik S3-failid.

!aws s3 rm s3://{BUCKET}/amt-visualize-demo --recursive

Kui soovite andmekogumeid või mudeli artefakte säilitada, saate koodi eesliidet muuta amt-visualize-demo/data ainult andmete kustutamiseks või amt-visualize-demo/output ainult mudeli artefaktide kustutamiseks.

Järeldus

Selles postituses koolitasime ja häälestasime mudelit, kasutades XGBoosti algoritmi SageMakeri sisseehitatud versiooni. Kasutades HPO-d koos SageMaker AMT-ga, õppisime tundma hüperparameetreid, mis selle konkreetse algoritmi ja andmestiku jaoks hästi töötavad.

Nägime mitmeid viise oma hüperparameetrite häälestamise tulemuste ülevaatamiseks. Alustades parima prooviversiooni hüperparameetrite eraldamisest, õppisime ka seda, kuidas saada sügavamat arusaama sellest, kuidas meie katsed on aja jooksul edenenud ja millised hüperparameetri väärtused on mõjusad.

SageMakeri konsooli kasutades nägime ka, kuidas sukelduda sügavamale individuaalsetesse treeningjooksudesse ja vaadata üle nende logid.

Seejärel suumisime välja, et vaadata kõiki meie katseid koos ja vaadata üle nende toimivus võrreldes teiste katsete ja hüperparameetritega.

Saime teada, et iga katse käigus tehtud tähelepanekute põhjal suutsime hüperparameetrite ruumis navigeerida, et näha, et väikesed muudatused meie hüperparameetri väärtustes võivad meie mudeli jõudlust tohutult mõjutada. SageMaker AMT abil saame käivitada hüperparameetrite optimeerimise, et leida tõhusalt häid hüperparameetri väärtusi ja maksimeerida mudeli jõudlust.

Tulevikus uurime erinevaid SageMaker AMT pakutavaid HPO strateegiaid ja kuidas kasutada oma kohandatud koolituskoodi. Andke meile kommentaarides teada, kui teil on küsimusi või soovite soovitada valdkonda, mida peaksime tulevastes postitustes käsitlema.

Seniks soovime teile ja teie modellidele head õppimist ja häälestamist!

viited

Tsitaadid:

[1] Dua, D. ja Graff, C. (2019). UCI masinõppe hoidla [http://archive.ics.uci.edu/ml]. Irvine, CA: California ülikooli info- ja arvutiteaduste kool.


Autoritest

Optimeerige hüperparameetreid Amazon SageMakeri automaatse mudeli häälestamise PlatoBlockchain Data Intelligence abil. Vertikaalne otsing. Ai.Andrew Ellul on Amazon Web Servicesi lahenduste arhitekt. Ta töötab väikeste ja keskmise suurusega ettevõtetega Saksamaal. Väljaspool tööd naudib Andrew jalgsi või rattaga loodust avastamist.

Optimeerige hüperparameetreid Amazon SageMakeri automaatse mudeli häälestamise PlatoBlockchain Data Intelligence abil. Vertikaalne otsing. Ai.Elina Lesyk on lahenduste arhitekt, mis asub Münchenis. Tema tähelepanu keskmes on finantsteenuste valdkonna ettevõtete kliendid. Vabal ajal meeldib Elinale õppida hispaania keeles kitarriteooriat, et ristõppida ja käia jooksmas.

Optimeerige hüperparameetreid Amazon SageMakeri automaatse mudeli häälestamise PlatoBlockchain Data Intelligence abil. Vertikaalne otsing. Ai.Mariano Kamp on Amazon Web Services'i peamine lahenduste arhitekt. Ta töötab masinõppe alal finantsteenuste klientidega Saksamaal. Vabal ajal naudib Mariano koos naisega matkamist.

Ajatempel:

Veel alates AWS-i masinõpe