Ma tean palju andme teadlasi â ja ilmselt kuulun ka ise nende hulka â kes töötavad GPU-dega masinatel, olgu need siis kohalikud vĂ”i virtuaalsed, mis asuvad pilves, kas Jupyter Notebooki vĂ”i mĂ”ne Python'i arenduskeskkonna kaudu. Töötades 2 aastat AI/ML ekspert-arendajana tegin ma just nii, valmistades andmeid ette tavainfokeskuses vĂ”i tööjaamas ja kĂ€ivitades Ă”ppe virtuaalmasinas GPU-ga Azure'is.
Loomulikult oleme me kĂ”ik kuulnud â spetsiaalsest pilveplatvormist masinĂ”ppe jaoks. Kuid juba esimese pilguga , tekib mulje, et Azure ML tekitab rohkem probleeme, kui lahendab. NĂ€iteks eelpool mainitud Ă”ppe nĂ€ites kĂ€ivitatakse Ă”pe Azure ML-is Jupyter Notebookist, samas kui Ă”ppe skripti pakutakse luua ja redigeerida kui tekstifaili ĂŒhes rakenduse rakkudes â samal ajal ei kasuta funktsioone nagu automaatne tĂ€iendamine, sĂŒntaksivĂ€rv ja teised normaalse arenduskeskkonna eelised. SellepĂ€rast ei ole me pikka aega tĂ”siselt Azure ML-i oma töös kasutanud.
Ent hiljuti avastasin ma viisi, kuidas alustada Azure ML-i tĂ”husat kasutamist oma töös! Kas sind huvitavad ĂŒksikasjad?

PĂ”hisecret â see on . See vĂ”imaldab sul arendada Ă”ppeskripte otse VS Code'is, kasutades keskkonna kĂ”iki eeliseid â samas saad isegi skripti kohapeal kĂ€ivitada ja siis lihtsalt paar hiireklĂ”psu jĂ€lgides saata selle Ă”ppeks Azure ML klastrisse. Mugav, eks?
Kuid sa saad Azure ML-i kasutamisega jÀrgmised eelised:
- Sa saad suurema osa ajast töötada kohapeal oma masinas mugavas IDE-s ning kasutada GPU-d ainult mudeli koolitamiseks.Samuti saavad koolitusressursid automaatselt kohanduda vajaliku koormuse jĂ€rgi, ning seadistades minimaalne sĂ”lmede arv 0-le, saad sa automaatselt kĂ€ivitada virtuaalmasina "nĂ”udmisel" koolitusĂŒlesannete olemasolul.
- Saate salvestada kĂ”ik koolitustulemused ĂŒhte kohta, sealhulgas saavutatud meetrikaid ja saadud mudeleid â pole vajadust ise mĂ”elda, kuidas kĂ”iki tulemusi salvestada.
- Selle juures ĂŒhe projekti kallal saavad töötada mitu inimest. â nad saavad kasutada sama arvutusklastri, kĂ”ik eksperimendid jonduvad jĂ€rjekorda ning nad saavad nĂ€ha ĂŒksteise katsete tulemusi. Ăks selline stsenaarium on Azure ML-i kasutamine sĂŒvaĂ”ppe Ă”petamisel, kui igaĂŒhele ei anta GPU-d sisaldavat virtuaalmasinat, vaid luuakse ĂŒks klaster, mida saavad kasutada kĂ”ik tsentraliseeritult. Lisaks vĂ”ib ĂŒhine tulemuste tabel mudeli tĂ€psuse kohta olla hea konkurentsilement.
- Azure ML-i abil on lihtne lĂ€bi viia katsetuste seeriat, nĂ€iteks hĂŒpertĂ€psustuse optimeerimiseks â seda saab teha mĂ”ne koodireaga, manuaalset katsetuste seeriat pole vaja lĂ€bi viia.
Loodetavasti veensin teid proovima Azure ML-i! Nii saate alustada:
- Veenduge, et teil oleks installitud , samuti laiendused ja
- Kloonige hoidla â see sisaldab mĂ”ningaid demonstreerivaid koode kĂ€te kirjutatud numbrite tuvastamise mudeli treenimiseks MNIST andmestikul.
- Avage kloonitud hoidla Visual Studio Code'is.
- Lugege edasi!
Azure ML Tööruum ja Azure ML Portaal
Azure ML on korraldatud tööruumi kontseptsiooni ĂŒmber â Tööruum. Tööruumis vĂ”ivad olla andmed, sinna saadetakse katsetused Ă”ppimiseks, seal hoitakse ka saadud metrikad ja mudeleid. Tööruumi sisu saab vaadata Azure ML portaali kaudu Tööruumi saab luua veebiliidese kaudu
Azure Portaali (vt. az extension add -n azure-cli-ml az group create -n myazml -l northeurope az ml workspace create -w myworkspace -g myazml):
Tööruumiga on seotud ka mĂ”nedarvutusressursid ). Looge mudeli Ă”ppimiseks skript, nagu saate (Arvutussaata eksperimendi tööruumi ja mÀÀrata arvutus sihtkoht â sel juhul pakendatakse skript, kĂ€ivitatakse sobivas arvutuskeskkonnas ja seejĂ€rel salvestatakse kĂ”ik katse tulemused tööruumis edasiseks analĂŒĂŒsimiseks ja kasutamiseks. Treeningu skript MNIST jaoks Vaadakem klassikalist ĂŒlesannet
kÀte kirjutatud numbrite tuvastamine
kÀte kirjutatud numbrite tuvastamiseks kasutades MNIST andmete kogumit. Samuti saate edaspidi teostada oma Ôppeskriptide töötlemise.
Meie hoidlas on skript train_local.py, mis treenib kĂ”ige lihtsamat lineaarse regressiooni mudelit kasutades SkLearn raamatukogu. Muidugi mĂ”istan, et see ei ole parim viis probleemi lahendamiseks â kasutame seda nĂ€itena kĂ”ige lihtsama mudelina.
Skript laadib alguses MNIST andmeid OpenML-ist ja seejÀrel kasutab klassi LogisticRegression mudeli treenimiseks ning prindib vÀlja saadud tÀpsuse:
mnist = fetch_openml('mnist_784')
mnist['target'] = np.array([int(x) for x in mnist['target']])
shuffle_index = np.random.permutation(len(mnist['data']))
X, y = mnist['data'][shuffle_index], mnist['target'][shuffle_index]
X_train, X_test, y_train, y_test =
train_test_split(X, y, test_size = 0.3, random_state = 42)
lr = LogisticRegression()
lr.fit(X_train, y_train)
y_hat = lr.predict(X_test)
acc = np.average(np.int32(y_hat == y_test))
print('Ăldine tĂ€psus:', acc)Saate skripti kĂ€ivitada oma arvutis ja paari sekundi pĂ€rast saada tulemuse.
KĂ€ivitame skripti Azure ML-is
Kui kÀivitame skripti treenimiseks Azure ML-is, on meil kaks peamist eelist:
- Treeningu kÀivitamine mida tahes arvutivahendil, mis on tavaliselt vÔimsam kui kohalik arvuti. Samuti hoolitseb Azure ML ise selle eest, et pakendada meie skript koos kÔigi failidega praegusest kataloogist docker-konteinerisse, installida vajalikud sÔltuvused ja saata see tÀitmiseks.
- Tulemuste salvestamine ĂŒhte registrisse Azure ML-i tööruumis. Selle vĂ”imaluse kasutamiseks peame lisama paar rida koodi meie skripti tulemuste tĂ€psuse salvestamiseks:
from azureml.core.run import Run
...
try:
run = Run.get_submitted_run()
run.log('tÀpsus', acc)
except:
passSelle skripti vastav versioon on train_universal.py (see on veidi keerulisem kui eespool on kirjutatud, aga mitte palju). Seda skripti saab kÀivitada nii kohapeal kui ka kaug arvutivahendil.
Selle kÀivitamiseks Azure ML-is VS Code'is peate tegema jÀrgmist:
Veenduge, et Azure'i laiendus on ĂŒhendatud teie tellimusega. Valige Azure ikoon vasakul menĂŒĂŒs. Kui te ei ole ĂŒhendatud, ilmub paremasse alumisse nurka teade (), millele vajutades saate sisse logida veebibrauseri kaudu. Samuti saate vajutada Ctrl-Shift-P VS Code'i kĂ€suribal kutsumiseks ja sisestada Azure Sign In.
SeejĂ€rel leidke Azure'i jaotises (vasaku kĂŒlje ikoon) sektsioon MASINA ĂPPIMINE:

Siin peaksite nÀgema erinevaid objektigrupe tööruumis: arvutusressursid, eksperimendid jne.
- Minge failide nimekirja, paremklÔpsake skriptil
train_universal.pyja valige Azure ML: KĂ€ivita kui eksperiment Azure'is.

- JÀrgneb seeria dialooge VS Code'i kÀsuribal: kinnitage, millist tellimust ja Azure ML tööruumi kasutatakse, ning valige Loo uus eksperiment:



Valige uue arvutusressursi loomine Loo uus arvutus:
- Arvutus mÀÀrab arvutusressursi, millel koolitus toimub. VÔite valida kohaliku arvuti vÔi pilve klastrit AmlCompute. Soovitan luua skaleeritava masinate klastri
STANDARD_DS3_v2, minimaalse masinate arvu 0 (kuid maksimaalne vÔib olla 1 vÔi rohkem, sÔltuvalt teie soovidest). Seda saab teha lÀbi VS Code'i liidese vÔi eelnevalt lÀbi .

- Arvutus mÀÀrab arvutusressursi, millel koolitus toimub. VÔite valida kohaliku arvuti vÔi pilve klastrit AmlCompute. Soovitan luua skaleeritava masinate klastri
JÀrgmiseks tuleb valida konfiguratsioon Arvutuse konfiguratsioon, mis mÀÀrab vajalikud parameetrid koolitamiseks loodud konteinerile, sealhulgas kÔik vajalikud raamatukogud. Meie juhul, kuna kasutame Scikit Learn, valige SkLearn, ja siis lihtsalt kinnitage pakutud raamatukogude nimekiri klahvikomplektiga Enter. Kui kasutate mingeid lisaraamatukogusid, tuleb need siia mÀrkida.


PÀrast seda avaneb aken JSON-failiga, mis kirjeldab eksperimenti. Selles saab korrigeerida mÔningaid parameetreid, nÀiteks eksperimendi nime. PÀrast seda klÔpsake lingil Esita eksperiment otse selle faili sees:

- PÀrast eksperimendi edukat esitamist VS Code'is nÀete paremal teatealas linki , kus saate jÀlgida eksperimendi staatust ja tulemusi.

Tulevikus leiate selle alati jaotusest Eksperimendid , vÔi jaotusest Azure Machine Learning eksperimentide nimekirjas:

- Kui olete pĂ€rast seda koodi muutnud vĂ”i parameetreid muutnud, on eksperimendi uuesti kĂ€ivitamine palju kiirem ja lihtsam. ParemklĂ”psake failil, nĂ€ete uut menĂŒĂŒpunkti Korda viimast kĂ€ivitust â lihtsalt valige see ja eksperiment kĂ€ivitub kohe:

KĂ”igi kĂ€ivitamise tulemuste mÔÔdikud leiate alati Azure ML Portaalist, pole vajalik neid ĂŒles kirjutada.
NĂŒĂŒd teate, et eksperimentide kĂ€ivitamine Azure ML-i kaudu on lihtne ja valutult, samas kui saate mitmeid meeldivaid eeliseid.
Kuid te vĂ”isite mĂ€rkida ka puudusi. NĂ€iteks skripti kĂ€ivitamiseks kulus oluliselt rohkem aega. Loomulikult vajab skripti konteinerisse pakkimine ja serverisse seadistamine aega. Kui samal ajal klaster piiratakse 0 sĂ”lme suuruseks, kulub virtuaalmasina kĂ€ivitamiseks veel rohkem aega, ja see on eriti mĂ€rgatav, kui katsetame lihtsate ĂŒlesannetega, nĂ€iteks MNIST, mis lahendatakse mĂ”ne sekundi jooksul. Siiski, reaalses elus, kus koolitus kestab tunde, pĂ€evi vĂ”i isegi nĂ€dalaid, muutub see lisaaeg ebaoluliseks, eriti vĂ”rreldes palju kĂ”rgema tootlikkusega, mida saab pakkuda arvutusklaster.
Mis edasi?
Loodan, et pÀrast seda artiklit suudate ja hakkate Azure ML-i oma töös kasutama skriptide kÀivitamiseks, arvutusressursside haldamiseks ja tulemuste keskse hoidmise jaoks. Kuid Azure ML vÔib pakkuda teile veelgi rohkem eeliseid!
TööhĂ”ivevaldkonnas saab andmeid hoida, luues sellega keskse salvestuskoha kĂ”ikide oma ĂŒlesannete jaoks, millele on lihtne juurde pÀÀseda. Lisaks saate katseid kĂ€ivitada mitte Visual Studio Code'ist, vaid API kaudu â see vĂ”ib olla eriti kasulik, kui peate tegema hĂŒperparameterite optimeerimist ja kĂ€ivitama skripti mitu korda erinevate parameetritega. Veelgi enam, Azure ML-s on sisseehitatud spetsiaalne tehnoloogia , mis vĂ”imaldab teha nutikamat otsingut ja hĂŒperparameterite optimeerimist. Nendest vĂ”imalustest rÀÀgin oma jĂ€rgmises mĂ€rkuses.
Kasulikud ressursid
Azure ML-i pÔhjalikumaks uurimiseks vÔivad teid huvitada jÀrgmised Microsoft Learni kursused:
Allikas: habr.com



