UnĂ« njoh shumĂ« shkencĂ«tarĂ« tĂ« tĂ« dhĂ«naveâdhe ndoshta jam vetĂ« njĂ« prej tyreâqĂ« punojnĂ« nĂ« makina tĂ« pajisura me GPU, lokale ose virtuale, tĂ« hostuara nĂ« cloud, duke pĂ«rdorur Jupyter Notebook ose ndonjĂ« mjedis zhvillimi Python. GjatĂ« dy viteve tĂ« mia si zhvillues ekspert i IA/ML, bĂ«ra pikĂ«risht kĂ«tĂ«, duke pĂ«rgatitur tĂ« dhĂ«na nĂ« njĂ« server ose stacion pune tĂ« rregullt dhe duke drejtuar trajnime nĂ« njĂ« makinĂ« virtuale tĂ« pajisur me GPU nĂ« Azure.
Sigurisht, tĂ« gjithĂ« kemi dĂ«gjuar pĂ«r â njĂ« platformĂ« e dedikuar cloud pĂ«r tĂ« mĂ«suarit automatik. MegjithatĂ«, pas njĂ« vĂ«shtrimi tĂ« parĂ« nĂ« , duket se Azure ML do tĂ« krijojĂ« mĂ« shumĂ« probleme sesa zgjidh. PĂ«r shembull, nĂ« shembullin e trajnimit tĂ« lartpĂ«rmendur, trajnimi Azure ML niset nga njĂ« Jupyter Notebook, por vetĂ« skripti i trajnimit krijohet dhe modifikohet si skedar teksti nĂ« njĂ«rĂ«n nga qelizat - pa pĂ«rfitimin e plotĂ«simit automatik, theksimit tĂ« sintaksĂ«s ose avantazheve tĂ« tjera tĂ« njĂ« mjedisi normal zhvillimi. PĂ«r kĂ«tĂ« arsye, ne nuk e pĂ«rdorĂ«m seriozisht Azure ML nĂ« punĂ«n tonĂ« pĂ«r njĂ« kohĂ« tĂ« gjatĂ«.
Megjithatë, kohët e fundit zbulova një mënyrë për të filluar përdorimin e Azure ML në mënyrë efektive në punën time! Të interesuar të mësosh më shumë?

Sekreti kryesor është ky Ju lejon të zhvilloni skripte trajnimi direkt në VS Code, duke përfituar plotësisht nga mjedisi. Madje mund ta ekzekutoni skriptin lokalisht dhe pastaj thjesht ta dërgoni atë në një klaster Azure ML për trajnim vetëm me disa klikime. I përshtatshëm, apo jo?
Në të njëjtën kohë, ju përfitoni përfitimet e mëposhtme nga përdorimi i Azure ML:
- Mund të punoni shumicën e kohës lokalisht në makinën tuaj në një IDE të përshtatshme, dhe përdor GPU-në vetëm për trajnimin e modelitGrupi i burimeve të trajnimit mund të përshtatet automatikisht me ngarkesën e kërkuar të punës dhe, duke vendosur numrin minimal të nyjeve në 0, mund ta nisni automatikisht makinën virtuale "sipas kërkesës" kur detyrat e trajnimit janë të disponueshme.
- Ju mund të ruajini të gjitha rezultatet e të nxënit në një vend, duke përfshirë metrikat e arritura dhe modelet që rezultojnë - nuk ka nevojë të hartohet ndonjë sistem ose urdhër për ruajtjen e të gjitha rezultateve.
- NĂ« kĂ«tĂ« rast, disa njerĂ«z mund tĂ« punojnĂ« nĂ« njĂ« projekt â ata mund tĂ« pĂ«rdorin tĂ« njĂ«jtin grumbull kompjuterik, tĂ« gjitha eksperimentet do tĂ« vendosen nĂ« radhĂ« dhe gjithashtu mund tĂ« shohin rezultatet e eksperimenteve tĂ« njĂ«ri-tjetrit. NjĂ« skenar i tillĂ« Ă«shtĂ« PĂ«rdorimi i Azure ML nĂ« MĂ«simdhĂ«nien e ThellĂ« tĂ« tĂ« MĂ«suaritNĂ« vend qĂ« tâi jepni secilit student njĂ« makinĂ« virtuale me njĂ« GPU, mund tĂ« krijoni njĂ« klaster tĂ« vetĂ«m qĂ« tĂ« gjithĂ« mund ta pĂ«rdorin nĂ« mĂ«nyrĂ« qendrore. PĂ«r mĂ« tepĂ«r, njĂ« tabelĂ« rezultatesh e pĂ«rbashkĂ«t me saktĂ«si modeli mund tĂ« shĂ«rbejĂ« si njĂ« element i mirĂ« konkurrues.
- Me Azure ML, mund të kryeni lehtësisht një sërë eksperimentesh, si p.sh. optimizimi i hiperparametrave - Kjo mund të bëhet me disa rreshta kodi, nuk ka nevojë të kryhen një sërë eksperimentesh manualisht.
Shpresoj se ju kam bindur të provoni Azure ML! Ja se si të filloni:
- Sigurohuni që e keni instaluar , si dhe zgjerime О
- Klononi depon â pĂ«rmban njĂ« kod demo pĂ«r trajnimin e njĂ« modeli tĂ« njohjes sĂ« shifrave tĂ« shkruara me dorĂ« nĂ« tĂ« dhĂ«nat MNIST.
- Hapni depon e klonuar në Visual Studio Code.
- Lexo më tej!
Hapësira e Punës Azure ML dhe Portal Azure ML
Azure ML Ă«shtĂ« e organizuar rreth konceptit zonĂ« pune â HapĂ«sira e punĂ«s. HapĂ«sira e punĂ«s mund tĂ« ruajĂ« tĂ« dhĂ«na, eksperimentet pĂ«r trajnim i dĂ«rgohen asaj dhe rezultatet e trajnimit - metrikat dhe modelet qĂ« rezultojnĂ« - ruhen gjithashtu atje. Mund tĂ« shikoni se çfarĂ« ka brenda hapĂ«sirĂ«s sĂ« punĂ«s duke pĂ«rdorur â dhe prej andej mund tĂ« kryeni njĂ« sĂ«rĂ« operacionesh, nga ngarkimi i tĂ« dhĂ«nave deri te monitorimi i eksperimenteve dhe vendosja e modeleve.
Ju mund tĂ« krijoni njĂ« hapĂ«sirĂ« ââpune pĂ«rmes ndĂ«rfaqes nĂ« internet. (Cm. ), ose duke pĂ«rdorur rreshtin e komandĂ«s Azure CLI ():
az extension add -n azure-cli-ml
az group create -n myazml -l northeurope
az ml workspace create -w myworkspace -g myazmlKa edhe disa qĂ« lidhen me fushĂ«n e punĂ«s burimet kompjuterike (bĂ«j llogaritjePasi tĂ« keni krijuar njĂ« skript pĂ«r tĂ« trajnuar modelin, mundeni dĂ«rgo njĂ« eksperiment pĂ«r ekzekutim nĂ« zonĂ«n e punĂ«s dhe specifikoni llogarit objektivin â skripti do tĂ« paketohet, do tĂ« lançohet nĂ« mjedisin e kĂ«rkuar informatik dhe mĂ« pas tĂ« gjitha rezultatet e eksperimentit do tĂ« ruhen nĂ« hapĂ«sirĂ«n e punĂ«s pĂ«r analiza dhe pĂ«rdorim tĂ« mĂ«tejshĂ«m.
Skript trajnimi për MNIST
Le të shqyrtojmë një problem klasik duke përdorur të dhënat MNIST. Ju mund të ekzekutoni cilindo nga skriptet tuaja të trajnimit në të njëjtën mënyrë.
Ekziston një skript në depon tonë train_local.py, i cili trajnon një model të thjeshtë regresioni linear duke përdorur bibliotekën SkLearn. Sigurisht, e kuptoj që kjo nuk është mënyra më e mirë për të zgjidhur problemin - po e përdorim si shembull sepse është më e thjeshta.
Skripti së pari shkarkon të dhënat MNIST nga OpenML dhe më pas përdor klasën LogisticRegression për të trajnuar modelin, dhe pastaj printon saktësinë që rezulton:
mnist = fetch_openml('mnist_784')
mnist['target'] = np.array([int(x) for x in mnist['target']])
shuffle_index = np.random.permutation(len(mist['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('Overall accuracy:', acc)Mund ta ekzekutoni skriptin në kompjuterin tuaj dhe të merrni rezultatin brenda disa sekondash.
Ekzekutoni skriptin në Azure ML
Nëse e ekzekutojmë skriptin e trajnimit përmes Azure ML, do të kemi dy përparësi kryesore:
- Nisni trajnimin në një burim arbitrar informatik, i cili zakonisht është më i fuqishëm se një kompjuter lokal. Azure ML do ta paketojë automatikisht skriptin tonë me të gjithë skedarët nga drejtoria aktuale në një enë Docker, do të instalojë varësitë e kërkuara dhe do ta dërgojë atë për ekzekutim.
- Shkrimi i rezultateve në një regjistër të unifikuar brenda hapësirës së punës Azure ML. Për të përfituar nga kjo veçori, duhet të shtojmë disa rreshta kodi në skriptin tonë për të regjistruar saktësinë që rezulton:
from azureml.core.run import Run
...
try:
run = Run.get_submitted_run()
run.log('accuracy', acc)
except:
passVersioni pĂ«rkatĂ«s i skriptit quhet train_universal.py (ĂshtĂ« pak mĂ« i sofistikuar nga sa pĂ«rshkruhet mĂ« sipĂ«r, por jo shumĂ«.) Ky skript mund tĂ« ekzekutohet si nĂ« nivel lokal ashtu edhe nĂ« njĂ« burim kompjuterik nĂ« distancĂ«.
Për ta ekzekutuar atë në Azure ML nga VS Code, duhet të bëni sa vijon:
Sigurohuni që Shtesa Azure është e lidhur me abonimin tuaj. Zgjidhni ikonën Azure në menynë e majtë. Nëse nuk jeni të lidhur, një njoftim do të shfaqet në këndin e poshtëm të djathtë (), duke klikuar mbi të cilin mund të identifikoheni përmes shfletuesit. Gjithashtu mund të klikoni Ctrl-Shift-P për të hapur rreshtin e komandës VS Code dhe shkruani Hyrja në Azure.
Pas kësaj, në seksionin Azure (ikona në të majtë), gjeni seksionin MARSIMI I MAKINS:

Këtu duhet të shihni grupe të ndryshme objektesh brenda hapësirës së punës: burime llogaritëse, eksperimente, etj.
- Shko te lista e skedarëve, kliko me të djathtën mbi skriptin
train_universal.pydhe zgjidhni Azure ML: Ekzekutojeni si eksperiment në Azure.

- Kjo më pas do t'ju shfaqë një seri dialogësh në zonën e komandës së VS Code: konfirmoni abonimin Azure ML dhe hapësirën e punës që po përdorni dhe zgjidhni Krijo një eksperiment të ri:



Zgjidhni për të krijuar një burim të ri kompjuterik Krijo një llogari të re:
- bëj llogaritje Përcakton burimin kompjuterik mbi të cilin do të zhvillohet trajnimi. Mund të zgjidhni një kompjuter lokal ose një klaster të reve AmlCompute. Unë rekomandoj krijimin e një klasteri të shkallëzueshëm makinash.
STANDARD_DS3_v2, me një numër minimal makinash prej 0 (dhe maksimumi mund të jetë 1 ose më shumë, varësisht nga oreksi juaj). Kjo mund të bëhet përmes ndërfaqes VS Code, ose paraprakisht përmes .

- bëj llogaritje Përcakton burimin kompjuterik mbi të cilin do të zhvillohet trajnimi. Mund të zgjidhni një kompjuter lokal ose një klaster të reve AmlCompute. Unë rekomandoj krijimin e një klasteri të shkallëzueshëm makinash.
Tjetra ju duhet të zgjidhni konfigurimin Konfigurimi i Llogaritjes, i cili përcakton parametrat e kontejnerit të krijuar për trajnim, në veçanti, të gjitha libraritë e nevojshme. Në rastin tonë, meqenëse po përdorim Scikit Learn, ne zgjedhim SkLearn, dhe pastaj thjesht konfirmoni listën e sugjeruar të bibliotekave duke shtypur Enter. Nëse përdorni ndonjë bibliotekë shtesë, duhet t'i specifikoni ato këtu.


Do të hapet një dritare me një skedar JSON që përshkruan eksperimentin. Mund të modifikoni disa parametra këtu, siç është emri i eksperimentit. Pas kësaj, klikoni lidhjen Dorëzo eksperimentin direkt brenda këtij skedari:

- Pasi ta keni dorëzuar me sukses eksperimentin tuaj përmes VS Code, do të shihni një lidhje për te , ku mund të gjurmoni statusin dhe rezultatet e eksperimentit.

Gjithmonë mund ta gjeni në seksion më vonë. eksperimentet , ose në seksionin Mësimi i Makinës Azure në listën e eksperimenteve:

- NĂ«se keni bĂ«rĂ« ndonjĂ« ndryshim nĂ« kod ose keni ndryshuar ndonjĂ« parametĂ«r qĂ« atĂ«herĂ«, riekzekutimi i eksperimentit do tĂ« jetĂ« shumĂ« mĂ« i shpejtĂ« dhe mĂ« i lehtĂ«. Klikimi me tĂ« djathtĂ«n mbi skedar do tĂ« zbulojĂ« njĂ« artikull tĂ« ri nĂ« menu. PĂ«rsĂ«rite vrapimin e fundit â thjesht zgjidhe atĂ« dhe eksperimenti do tĂ« nisĂ« menjĂ«herĂ«:

Gjithmonë mund të gjesh rezultate të metrikave nga të gjitha ekzekutimet në Portalin Azure ML; nuk ka nevojë t'i regjistrosh ato.
Tani e dini që kryerja e eksperimenteve me Azure ML është e thjeshtë dhe pa probleme, dhe përfitoni një sërë përfitimesh të mira.
Por mund të keni vënë re disa anë negative. Për shembull, ekzekutimi i skriptit zgjati shumë më tepër. Sigurisht, paketimi i skriptit në një kontejner dhe vendosja e tij në server kërkon kohë. Nëse klasteri do të zvogëlohej në 0 nyje, do të duhej edhe më shumë kohë për të nisur makinën virtuale. Kjo është veçanërisht e dukshme kur eksperimentojmë me probleme të thjeshta si MNIST, të cilat zgjasin disa sekonda për t'u zgjidhur. Megjithatë, në jetën reale, kur trajnimi zgjat orë, ose edhe ditë ose javë, kjo kohë shtesë bëhet e parëndësishme, veçanërisht krahasuar me performancën dukshëm më të lartë që mund të ofrojë një klaster kompjuterik.
Ăka mĂ« tej?
Shpresoj që pasi ta lexoni këtë artikull, do të jeni në gjendje dhe do ta përdorni Azure ML në rrjedhën tuaj të punës për të ekzekutuar skripte, për të menaxhuar burimet kompjuterike dhe për të centralizuar rezultatet. Megjithatë, Azure ML mund t'ju ofrojë edhe më shumë përfitime!
Ju mund të ruani të dhëna brenda hapësirës suaj të punës, duke krijuar një depo të centralizuar dhe lehtësisht të arritshme për të gjitha detyrat tuaja. Gjithashtu mund të kryeni eksperimente duke përdorur API-n në vend të Kodit Visual Studio - kjo mund të jetë veçanërisht e dobishme nëse duhet të kryeni optimizimin e hiperparametrave dhe të ekzekutoni një skript disa herë me parametra të ndryshëm. Për më tepër, Azure ML ka teknologji të integruar për këtë. , e cila lejon kërkim dhe optimizim më të sofistikuar të hiperparametrave. Do t'i diskutoj këto aftësi në postimin tim të ardhshëm.
Burime të dobishme
Për një kuptim më të thellë të Azure ML, mund t'ju duken të dobishme kurset e mëposhtme të Microsoft Learn:
Burimi: www.habr.com



