Kuidas karta ĂŒletada ja alustada Azure Machine Learning'i kasutamist

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 Azure Machine Learning — spetsiaalsest pilveplatvormist masinĂ”ppe jaoks. Kuid juba esimese pilguga sissejuhatavatesse artiklitesse, 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?

Kuidas karta ĂŒletada ja alustada Azure Machine Learning'i kasutamist

PĂ”hisecret — see on Visual Studio Code'i laiendus Azure ML. 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:

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 — sealt saab teha mitmeid toiminguid, andmete ĂŒleslaadimisest mudelite juurutamiseni ja katsete jĂ€lgimiseni. Tööruumi saab luua veebiliidese kaudu

Azure Portaali samuti samm-sammult juhised (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 myazmljuhendis):

Tööruumiga on seotud ka mÔned

arvutusressursid ). 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 kÀte kirjutatud numbrite tuvastamine 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:
    pass

Selle 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:

  1. 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 (selline), millele vajutades saate sisse logida veebibrauseri kaudu. Samuti saate vajutada Ctrl-Shift-P VS Code'i kĂ€suribal kutsumiseks ja sisestada Azure Sign In.

  2. SeejĂ€rel leidke Azure'i jaotises (vasaku kĂŒlje ikoon) sektsioon MASINA ÕPPIMINE:

Kuidas karta ĂŒletada ja alustada Azure Machine Learning'i kasutamist
Siin peaksite nÀgema erinevaid objektigrupe tööruumis: arvutusressursid, eksperimendid jne.

  1. Minge failide nimekirja, paremklÔpsake skriptil train_universal.py ja valige Azure ML: KÀivita kui eksperiment Azure'is.

Kuidas karta ĂŒletada ja alustada Azure Machine Learning'i kasutamist

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

Kuidas karta ĂŒletada ja alustada Azure Machine Learning'i kasutamist
Kuidas karta ĂŒletada ja alustada Azure Machine Learning'i kasutamist
Kuidas karta ĂŒletada ja alustada Azure Machine Learning'i kasutamist

  1. 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 ML Portaal.

    Kuidas karta ĂŒletada ja alustada Azure Machine Learning'i kasutamist

  2. 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.

    Kuidas karta ĂŒletada ja alustada Azure Machine Learning'i kasutamist
    Kuidas karta ĂŒletada ja alustada Azure Machine Learning'i kasutamist

  3. 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:

Kuidas karta ĂŒletada ja alustada Azure Machine Learning'i kasutamist

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

Kuidas karta ĂŒletada ja alustada Azure Machine Learning'i kasutamist
Tulevikus leiate selle alati jaotusest Eksperimendid Azure ML Portaal, vÔi jaotusest Azure Machine Learning eksperimentide nimekirjas:

Kuidas karta ĂŒletada ja alustada Azure Machine Learning'i kasutamist

  1. 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:

Kuidas karta ĂŒletada ja alustada Azure Machine Learning'i kasutamist
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 Hyperdrive, 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

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster