Ma tean paljusid andme teadlasi â ja ilmselt kuulun ka ise sinna hulka â kes töötavad GPU-dega masinatel, olgu need siis lokaalsed vĂ”i virtuaalsed, pilves, kas Jupyter Notebookis vĂ”i mĂ”nes Python arendus keskkonnas. Töötlusaja jooksul, olles 2 aastat AI/ML arenduse ekspert, tegin ma just nii, ettevalmistades andmeid tavalisel serveril vĂ”i tööjaamal ning kĂ€ivitades koolituse virtuaalmasinas, kus oli GPU Azure'is.
Loomulikult oleme kĂ”ik kuulnud â spetsiaalne pilve platvorm masinĂ”ppe jaoks. Kuid esmapilgul, vaadates , jÀÀb mulje, et Azure ML tekitab rohkem probleeme, kui lahendab. NĂ€iteks eelmainitud koolitusnĂ€ites kĂ€ivitatakse koolitus Azure ML-is Jupyter Notebookist, samas kui koolitus skripti on soovitatav luua ja redigeerida tekstifailina ĂŒhes rakkudes â ilma automaatse tĂ€itmise, sĂŒntaksi esiletĂ”stmise ja teiste tavapĂ€rase arenduskeskkonna eeliste kasutamiseta. Selle tĂ”ttu ei ole me Azure ML-i tĂ”siselt meie töös pikka aega kasutanud.
Kuid hiljuti avastasin, kuidas alustada Azure ML efektiivset kasutamist oma töös! Huvitavad ĂŒksikasjad?

Peamine saladus on . See vĂ”imaldab teil arendada koolitusskripte otse VS Code'is, kasutades kĂ”iki keskkonna eeliseid â samal ajal saate isegi skripti kohapeal kĂ€ivitada ja siis lihtsalt saata selle Ă”ppimiseks Azure ML klastrisse vaid mĂ”ne hiireklĂ”psuga. Mugav, kas pole?
Selle kasutamine annab teile jÀrgmised eelised:
- Saate suurema osa ajast töötada oma masinas mugavas IDE-s ja kasutada GPU-d ainult mudeli koolitamiseks. Samal ajal vĂ”ivad koolitusressursid automaatselt kohanduda vajaliku koormuse jĂ€rgi, ja seades minimaalne sĂ”lmede arv 0, saate automaatselt kĂ€ivitada virtuaalmasina "nĂ”udmisel", kui koolitusĂŒlesanded on olemas.
- Te saate hoida kĂ”iki koolituse tulemusi ĂŒhes kohas, sealhulgas saavutatud mÔÔdikud ja saadud mudelid â pole vaja ise vĂ€lja mĂ”elda mingit sĂŒsteemi vĂ”i jĂ€rjestust tulemuste salvestamiseks.
- Samal ajal Ăhe projekti kallal saavad töötada mitu inimest â nad saavad kasutada sama arvutusklastrit, kĂ”ik eksperimendid asetuvad jĂ€rjekorda ning nad saavad omavahel nĂ€ha eksperimenteeritud tulemusi. Ăks selline stsenaarium on Azure ML-i kasutamine sĂŒvaĂ”ppe Ă”petamisel, kui igaĂŒhele mitte anda virtuaalmasinat GPU-ga, vaid luua ĂŒks klaster, mida saavad keskselt kasutada kĂ”ik. Lisaks vĂ”ib ĂŒldine tulemuste tabel mudeli tĂ€psuse osas olla hea konkurentsielement.
- Azure ML-iga on lihtne lĂ€bi viia eksperimenteerimise seeria, nĂ€iteks hĂŒperparameetrite optimeerimine â seda saab teha paari koodi rea abil, ei ole vaja eksperimente kĂ€sitsi lĂ€bi viia.
Loodan, et olen teid veennud proovima Azure ML-i! NĂ€iteks kuidas alustada:
- Veenduge, et teil on installitud , samuti laiendused ja
- Kloonige hoidla â see sisaldab mĂ”ningast demonstratsioonikoodi kĂ€ekirja numbrite tuvastamise mudeli treenimiseks MNIST andmestikul.
- Avage kloonitud hoidla Visual Studio Codes.
- Loe edasi!
Azure ML Tööala ja Azure ML Portaal
Azure ML on korraldatud kontseptsiooni ĂŒmber tööala â Workspace. Tööalas saab hoida andmeid, sinna saadetakse eksperimendid koolitamiseks, seal salvestatakse koolitamise tulemused â saadud mÔÔdikud ja mudelid. Vaadata, mis tööalasse kuulub, saab lĂ€bi â ja sealt saab teostada mitmeid toiminguid, alates andmete ĂŒleslaadimisest kuni eksperimentide jĂ€lgimise ja mudelite juurutamiseni.
Tööala loomine on vÔimalik lÀbi veebiliidese (vt. ), vÔi kasutades Azure CLI kÀsurida ():
az extension add -n azure-cli-ml
az group create -n myazml -l northeurope
az ml workspace create -w myworkspace -g myazmlTööalaga on seotud ka mĂ”ned arvutusressursid (Arvutus). Koolitusmudeli skripti loomisega saate saata eksperimendi tĂ€itmiseks tööalale ja mÀÀrata compute target â sel juhul pakendatakse skript, kĂ€ivitatakse vajalikus arvutuskeskkonnas, ja seejĂ€rel salvestatakse kĂ”ik eksperimendi tulemused tööalasse edasiseks analĂŒĂŒsiks ja kasutamiseks.
MNIST koolitusskript
Vaadake klassikalist ĂŒlesannet MNIST andmehulgaga. Edaspidi saate oma koolitusskripte hĂ”lpsasti kĂ€ivitada.
Meie hoidlas on skript train_local.py, mis koolitab lihtsamat lineaarselt regressioonimudelit SkLearn raamatukogu abil. Muidugi, ma mĂ”istan, et see ei ole parim viis probleemi lahendamiseks â kasutame seda lihtsalt nĂ€itena kui kĂ”ige lihtsamat.
Skript esmalt allalaadib MNIST andmed OpenML-ist ja seejÀrel kasutab klassi LogisticRegression mudeli koolitamiseks ning seejÀrel prindib vÀlja saavutatud 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('KokkuvÔtlik tÀpsus:', acc)Saate skripti oma arvutis kÀivitada ja mÔne sekundi jooksul saate tulemuse.
KĂ€ivitame skripti Azure ML-is
Kui kÀivitame skripti Azure ML-i kaudu, on meil kaks peamist eelist:
- KÀivitage koolitus mis tahes arvutusressursil, mis on tavaliselt vÔimsam kui kohalik arvuti. Azure ML hoolitseb meie skripti, sealhulgas kÔikide praeguse katalooge failide pakendamise, nÔutavate sÔltuvuste installimise ja selle kÀitamiseks edastamise eest docker-konteineris.
- Salvestage tulemused ĂŒhte registrisse Azure ML tööruumis. Selle funktsiooni kasutamiseks peame lisama koodi paar rida meie skripti, et salvestada saadud tĂ€psus:
from azureml.core.run import Run
...
try:
run = Run.get_submitted_run()
run.log('accuracy', acc)
except:
passSkripti vastav versioon on train_universal.py (see on pisut keerulisem, kui ĂŒlaltoodud, kuid mitte oluliselt). Seda skripti saab kĂ€ivitada nii kohalikult kui ka kaugussarvetel.
Selle kÀivitamiseks Azure ML-is VS Code'ist tuleb teha jÀrgmist:
Veenduge, et Azure Extension on teie tellimusega ĂŒhendatud. Valige vasakult menĂŒĂŒst Azure ikoon. Kui te pole ĂŒhendatud, kuvatakse paremas alanurgas teade (), millele klikates saate sisse logida brauseri kaudu. Samuti saate vajutada Ctrl-Shift-P VS Code'i kĂ€surea avamiseks tippige Azure sisselogimine.
SeejĂ€rel leidke Azure sektsioonis (ikoon vasakul) ala MASINĂPE:

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

- SeejÀrel jÀrgneb VS Code'i kÀsureal rida dialooge: kinnitage kasutatav tellimus ja Azure ML tööruum ning valige Loo uus eksperiment:



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

- Arvutus mÀÀrab arvutusressursi, kus koolitus toimub. VÔite valida kohaliku arvuti vÔi AmlCompute'i pilvklastri. Soovitan luua skaleeritava masinate klastrit
JÀrgmiseks peate valima konfiguratsiooni Arvutuse konfiguratsioon, mis mÀÀrab loodava konteineri parameetrid, sealhulgas kÔik vajalikud teegid. Meie puhul, kuna kasutame Scikit Learn'i, valime SkLearn, ja seejÀrel kinnitame lihtsalt soovitatud teegide nimekirja klahvivajutusega Enter. Kui kasutate mingeid tÀiendavaid teeke, tuleb need siin mÀrkida.


PĂ€rast seda avaneb aken JSON-failiga, mis kirjeldab eksperimenti. Seal saab mĂ”ned parameetrid parandada â nĂ€iteks eksperimendi nimi. PĂ€rast seda klikka lingile Esita eksperiment otse selle faili sees:

- PÀrast eksperimendi edukat esitamist lÀbi VS Code'i, nÀete paremal teavituste alal linki , kus saate jÀlgida eksperimendi olekut ja tulemusi.

Hiljem leiate selle alati jaotusest Eksperimendid , vÔi jaotusest Azure Machine Learning eksperimentide loendis:

- Kui olete pĂ€rast seda koodis mingeid parandusi teinud vĂ”i parameetreid muutnud, siis eksperimendi korduv kĂ€ivitamine on palju kiirem ja lihtsam. ParemklĂ”psates failil, nĂ€ete uut valikut menĂŒĂŒs Korda viimast kĂ€ivitamist â lihtsalt valige see, ja eksperiment kĂ€ivitatakse kohe:

Kuna tulemused kĂ”igist kĂ€ivitustest leiate alati Azure ML Portaalist, pole vaja neid ĂŒles tĂ€hendada.
NĂŒĂŒd teate, et eksperimentide kĂ€itamine Azure ML-is on lihtne ja valutult, ning samal ajal pakub see mitmeid meeldivaid eeliseid.
Kuid olete vĂ”inud mĂ€rgata ka puudusi. NĂ€iteks, skripti kĂ€ivitamine vĂ”ttis oluliselt rohkem aega. Loomulikult kulub skripti konteinerisse pakkimiseks ja serverisse kĂ€ivitamiseks aega. Kui seejuures on klaster kĂ€rbitud 0 sĂ”lme suuruseks, kulub virtuaalmasina kĂ€ivitamiseks veel rohkem aega, ja see kĂ”ik on vĂ€ga mĂ€rgatav, kui katsetame lihtsate ĂŒlesannetega nagu MNIST, mis lahendatakse paari sekundiga. Siiski, reaalelus, kus koolitus kestab mitu tundi, pĂ€eva vĂ”i isegi nĂ€dalat, muutub see tĂ€iendav aeg ebaoluliseks, eriti vĂ”rreldes palju kĂ”rgema jĂ”udluse taustaga, mida vĂ”ib anda arvutusklaster.
Mis edasi?
Loodan, et pÀrast selle artikli lugemist suudate ja kasutate Azure ML oma töös skriptide kÀitamiseks, arvutusressursside haldamiseks ja tulemustega keskse salvestuse loomiseks. Azure ML vÔib aga pakkuda teile veelgi rohkem eeliseid!
Töölaua sees saate hoida andmeid, luues seelĂ€bi kĂ”igi oma ĂŒlesannete jaoks keskse andmehoidla, millele on lihtne juurde pÀÀseda. Samuti saate eksperimente kĂ€ivitada mitte Visual Studio Code'ist, vaid API kasutades â see vĂ”ib olla eriti kasulik, kui peate hĂŒperparameetreid optimeerima ja kĂ€ivitama skripti mitu korda erinevate parameetritega. Veelgi enam, Azure ML-is on sisseehitatud spetsiaalne tehnoloogia , mis vĂ”imaldab teha nutikamat huvide ja hĂŒperparameetrite optimeerimist. Nendest vĂ”imalustest rÀÀgin oma jĂ€rgmisel postitusel.
Kasulikud ressursid
Azure ML-i pÔhjalikumaks uurimiseks vÔivad teile olla kasulikud jÀrgmised Microsoft Learn kursused:
Allikas: habr.com



