Si të tejkaloni frikën dhe të filloni të përdorni Azure Machine Learning

Njoh shumĂ« Data Scientist-Ă« — madje mendoj se edhe unĂ« i pĂ«rkas atyre — tĂ« cilĂ«t punojnĂ« nĂ« makina me GPU, lokale ose virtuale, tĂ« vendosura nĂ« re, ose pĂ«rmes Jupyter Notebook, ose pĂ«rmes ndonjĂ« mjedisi zhvillimi Python. Duke punuar pĂ«r 2 vjet si ekspert zhvillues nĂ« AI/ML, kam bĂ«rĂ« pikĂ«risht kĂ«shtu, duke pĂ«rgatitur tĂ« dhĂ«nat nĂ« njĂ« server ose stacion pune tĂ« zakonshĂ«m, ndĂ«rsa mĂ«soja nĂ« njĂ« virtuale me GPU nĂ« Azure.

Natyrisht, tĂ« gjithĂ« kemi dĂ«gjuar pĂ«r Azure Machine Learning — njĂ« platformĂ« speciale nĂ« re pĂ«r mĂ«simin e makinave. MegjithatĂ«, pas shikimit tĂ« parĂ« nĂ« artikelĂ«t hyrĂ«s, krijohet pĂ«rshtypja se Azure ML do t'ju sjellĂ« mĂ« shumĂ« probleme sesa zgjidhje. PĂ«r shembull, nĂ« shembullin e trajnimit tĂ« pĂ«rmendur mĂ« sipĂ«r, trajnimi nĂ« Azure ML niset nga Jupyter Notebook, ndĂ«rsa skripti i vetĂ« trajnimit propozohet tĂ« krijohet dhe modifikohet si njĂ« skedar tekstual nĂ« njĂ« nga qelizat — pa pĂ«rdorur plotĂ«simin automatik, ndriçimin e sintaksĂ«s dhe pĂ«rfitime tĂ« tjera tĂ« njĂ« mjedisi tĂ« zakonshĂ«m zhvillimi. PĂ«r kĂ«tĂ« arsye, ne gjatĂ« njĂ« periudhe tĂ« gjatĂ« nuk e kemi pĂ«rdorur seriozisht Azure ML nĂ« punĂ«n tonĂ«.

Së fundmi, kam zbuluar një mënyrë për ta përdorur efektivisht Azure ML në punën time! A jeni të interesuar për detaje?

Si të tejkaloni frikën dhe të filloni të përdorni Azure Machine Learning

Sekreti kryesor Ă«shtĂ« zgjerimi i Visual Studio Code pĂ«r Azure ML. Ai ju lejon tĂ« zhvilloni skriptet e trajnimit direkt nĂ« VS Code, duke pĂ«rdorur tĂ« gjitha avantazhet e mjedisit — pĂ«r mĂ« tepĂ«r, mund tĂ« ekzekutoni skriptin lokalisht dhe pastaj thjesht ta dĂ«rgoni pĂ«r trajnim nĂ« klasterin Azure ML me disa klikime tĂ« thjeshta. E lehtĂ«, apo jo?

Dhe ju merrni këto përfitime nga përdorimi i Azure ML:

  • Mund tĂ« punoni shumicĂ«n e kohĂ«s lokal nĂ« makinĂ«n tuaj nĂ« njĂ« IDE tĂ« rehatshme, dhe tĂ« pĂ«rdorni GPU vetĂ«m pĂ«r trajnimin e modelit. Gjithashtu, rezervuari i burimeve tĂ« trajnimit mund tĂ« pĂ«rshtatet automatikisht me ngarkesĂ«n e nevojshme, dhe duke vendosur numrin minimal tĂ« nyjeve nĂ« 0, do tĂ« jeni nĂ« gjendje tĂ« aktivizoni automatikisht njĂ« makinĂ« virtuale "nĂ« kĂ«rkesĂ«" kur ka detyra trajnimi.
  • Ju mund tĂ« tĂ« ruani tĂ« gjitha rezultatet e trajnimit nĂ« njĂ« vend, pĂ«rfshirĂ« metrikat e arritura dhe modelet e gjeneruara — nuk ka nevojĂ« tĂ« krijoni njĂ« sistem ose rend pĂ«r ruajtjen e tĂ« gjithĂ« rezultateve.
  • Dhe kĂ«shtu pĂ«r njĂ« projekt mund tĂ« punojnĂ« disa njerĂ«z — ata mund tĂ« pĂ«rdorin tĂ« njĂ«jtin klaster kompjuterik, tĂ« gjitha eksperimet do tĂ« renditen gjithashtu, dhe ata mund tĂ« shohin rezultatet e eksperimenteve tĂ« njĂ«ri-tjetrit. NjĂ« nga skenarĂ«t e tillĂ« Ă«shtĂ« pĂ«rdorimi i Azure ML nĂ« mĂ«simin e Deep Learning, kur nĂ« vend qĂ« t'i jepni çdo student njĂ« makinĂ« virtuale me GPU, mund tĂ« krijoni njĂ« klaster tĂ« vetĂ«m qĂ« do tĂ« pĂ«rdoret nga tĂ« gjithĂ« qendralisht. PĂ«r mĂ« tepĂ«r, njĂ« tabelĂ« e pĂ«rbashkĂ«t rezultatesh me saktĂ«sinĂ« e modelit mund tĂ« shĂ«rbejĂ« si njĂ« element tĂ«rheqĂ«s konkurrues.
  • Me ndihmĂ«n e Azure ML, mund tĂ« kryeni lehtĂ«sisht seria eksperimentesh, pĂ«r shembull, pĂ«r optimizimin e hiperparametrave — kĂ«tĂ« mund ta bĂ«ni me disa rreshta kodi, nuk ka nevojĂ« tĂ« kryeni seria eksperimentesh manualisht.

Shpresoj se ju kam bindur të provoni Azure ML! Ja se si mund të filloni:

Azure ML Workspace dhe Azure ML Portal

Azure ML Ă«shtĂ« organizuar rreth konceptit tĂ« hapĂ«sirĂ«s sĂ« punĂ«s — Workspace. NĂ« hapĂ«sirĂ«n e punĂ«s mund tĂ« ruhen tĂ« dhĂ«na, dĂ«rgohen eksperimente pĂ«r trajnim, ndĂ«rsa aty ruhen rezultatet e trajnimit — metrikat dhe modelet e marra. Mund tĂ« shihni se çfarĂ« ndodhet brenda hapĂ«sirĂ«s sĂ« punĂ«s pĂ«rmes portalit Azure ML — dhe nga aty mund tĂ« bĂ«ni shumĂ« operacione, duke filluar nga ngarkimi i tĂ« dhĂ«nave e deri te monitorimi i eksperimenteve dhe vendosja e modeleve.

Krijoni një hapësirë pune përmes ndërfaqes në Azure Portal (shiko. instruksione hap pas hapi), ose duke përdorur komandën e linjës Azure CLI (udhëzues):

az extension add -n azure-cli-ml
az group create -n myazml -l northeurope
az ml workspace create -w myworkspace -g myazml

Me hapĂ«sirĂ«n e punĂ«s lidhen gjithashtu disa burime pĂ«rpunuese (Kalkulimi). Pas krijimit tĂ« njĂ« skenari pĂ«r trajnimin e modelit, mund tĂ« dĂ«rgoni eksperimentin pĂ«r ekzekutim nĂ« hapĂ«sirĂ«n e punĂ«s dhe tĂ« specifikoni targetin pĂ«rpunues — duke e paketuar skenarin, duke e operuar nĂ« ambientin pĂ«rpunues tĂ« duhur, dhe pastaj tĂ« gjitha rezultatet e eksperimenteve do tĂ« ruhen nĂ« hapĂ«sirĂ«n e punĂ«s pĂ«r analizĂ« dhe pĂ«rdorim tĂ« mĂ«tejshĂ«m.

Scripti edukativ për MNIST

Le të shqyrtojmë detyrën klasike e njohjes së numrave të shkruar me dorë duke përdorur setin e të dhënave MNIST. Në të njëjtën mënyrë, më vonë do të jeni në gjendje të ekzekutoni çdo script tuajin edukativ.

NĂ« depozitat tona ka njĂ« script 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 — e pĂ«rdorim si shembull, si mĂ«nyrĂ« mĂ« tĂ« thjeshtĂ«.

Scripti së pari shkarkon të dhënat MNIST nga OpenML dhe pastaj përdor klasën LogisticRegression për të trajnuar modelin, dhe pastaj printon saktësinë e fituar:

mnist = fetch_openml('mnist_784')
mnist['target'] = np.array([int(x) për x në 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('Saktësia e përgjithshme:', acc)

Mund ta ekzekutoni scriptin në kompjuterin tuaj dhe për disa sekonda do të merrni rezultatin.

Ekuptojmë scriptin në Azure ML

Nëse ne do të ekzekutonim scriptin për trajnim përmes Azure ML, do të kishim dy përfitime kryesore:

  • Nisni trajnimin nĂ« njĂ« burim llogaritĂ«s tĂ« rastĂ«sishĂ«m, i cili zakonisht Ă«shtĂ« mĂ« i fuqishĂ«m se kompjuteri lokal. NĂ« kĂ«tĂ« rast, Azure ML do tĂ« kujdeset pĂ«r paketimin e skenarit tonĂ« me tĂ« gjitha skedarĂ«t nga direktoria aktuale nĂ« njĂ« kontejner docker, tĂ« vendosĂ« varĂ«sitĂ« e nevojshme dhe ta dĂ«rgojĂ« pĂ«r ekzekutim.
  • Regjistrimi i rezultateve nĂ« njĂ« regjistĂ«r tĂ« vetĂ«m brenda hapĂ«sirĂ«s sĂ« punĂ«s Azure ML. PĂ«r tĂ« shfrytĂ«zuar kĂ«tĂ« mundĂ«si, ne duhet tĂ« shtojmĂ« disa rreshta kodi nĂ« skenarin tonĂ« pĂ«r tĂ« regjistruar saktĂ«sinĂ« pĂ«rfundimtare:

from azureml.core.run import Run
...
try:    
    run = Run.get_submitted_run()
    run.log('accuracy', acc)
except:
    pass

Versioni përkatës i skenarit quhet train_universal.py (është pak më e ndërlikuar se sa është shkruar më sipër, por jo shumë). Ky skenar mund të ekzekutohet si në lokal, ashtu edhe në një burim llogaritës të largët.

Për ta nisur atë në Azure ML nga VS Code, duhet të bëni si më poshtë:

  1. Sigurohuni që Shtesa Azure të jetë e lidhur me abonimin tuaj. Zgjidhni ikonën Azure në menunë e majtë. Nëse nuk jeni të lidhur, në qoshen e poshtme të djathtën do të shfaqet një njoftim (diçka e tillë), me të cilin mund të hyni përmes shfletuesit. Mund të klikoni gjithashtu Ctrl-Shift-P për të thirrur komandën e linjës së komandës në VS Code dhe të shkruani Azure Sign In.

  2. Pas kësaj, në seksionin Azure (ikona në anën e majtë), gjeni seksionin MACHINE LEARNING:

Si të tejkaloni frikën dhe të filloni të përdorni Azure Machine Learning
Këtu duhet të shihni grupe të ndryshme objektesh brenda hapësirës së punës: burime përpunuese, eksperimente etj.

  1. Shkoni te lista e skedarëve, klikoni me të djathtën mbi skriptin train_universal.py dhe zgjidhni Azure ML: Ekzekuto si eksperiment në Azure.

Si të tejkaloni frikën dhe të filloni të përdorni Azure Machine Learning

  1. Pas kësaj do të ndiqni një seri dialogësh në fushën e komandës së VS Code: konfirmoni abonimin dhe hapësirën e punës në Azure ML, si dhe zgjidhni Krijo eksperiment të ri:

Si të tejkaloni frikën dhe të filloni të përdorni Azure Machine Learning
Si të tejkaloni frikën dhe të filloni të përdorni Azure Machine Learning
Si të tejkaloni frikën dhe të filloni të përdorni Azure Machine Learning

  1. Zgjidhni krijimin e një burimi të ri përpunues Krijo Burim të Ri:

    • Kalkulimi pĂ«rcakton burimin pĂ«rpunues nĂ« tĂ« cilin do tĂ« ndodhĂ« trajnimi. Ju mund tĂ« zgjidhni kompjuterin lokal ose njĂ« klaster cloud AmlCompute. UnĂ« rekomandoj tĂ« krijoni njĂ« klaster tĂ« shkallĂ«zueshĂ«m makinash STANDARD_DS3_v2, me numrin minimal tĂ« makinave 0 (dhe maksimal mund tĂ« jetĂ« 1 ose mĂ« shumĂ«, nĂ« varĂ«si tĂ« apetitet tuaj). Kjo mund tĂ« bĂ«het pĂ«rmes ndĂ«rfaqes sĂ« VS Code, ose paraprakisht pĂ«rmes ML Portal.

    Si të tejkaloni frikën dhe të filloni të përdorni Azure Machine Learning

  2. MĂ« pas Ă«shtĂ« e nevojshme tĂ« zgjidhet konfigurimi Konfigurimi i Burimeve tĂ« PĂ«rpunimit, e cila pĂ«rcakton parametrat e konteinerit tĂ« krijuar pĂ«r trajnim, nĂ« veçanti, tĂ« gjitha bibliotekat e nevojshme. NĂ« rastin tonĂ«, pĂ«r arsye se pĂ«rdorim Scikit Learn, zgjidhim SkLearn, dhe pastaj thjesht konfirmoni listĂ«n e propozuar tĂ« bibliotekave duke shtypur Enter. NĂ«se po pĂ«rdorni ndonjĂ« bibliotekĂ« shtesĂ« — ato duhet tĂ« tregohen kĂ«tu.

    Si të tejkaloni frikën dhe të filloni të përdorni Azure Machine Learning
    Si të tejkaloni frikën dhe të filloni të përdorni Azure Machine Learning

  3. Pas kĂ«saj, do tĂ« hapet njĂ« dritare me njĂ« skedar JSON, qĂ« pĂ«rshkruan eksperimentin. Aty mund tĂ« korigjoni disa parametra — pĂ«r shembull, emrin e eksperimentit. Pas kĂ«saj, klikoni nĂ« lidhjen DĂ«rgo Eksperimentin nĂ« brendĂ«si tĂ« kĂ«tij skedari:

Si të tejkaloni frikën dhe të filloni të përdorni Azure Machine Learning

  1. Pas dërgimit të suksesshëm të eksperimentit përmes VS Code, në të djathtë në zonën e njoftimeve do të shihni një lidhje për Azure ML Portal, ku do të mund të ndjekni statusin dhe rezultatet e eksperimenteve.

Si të tejkaloni frikën dhe të filloni të përdorni Azure Machine Learning
Në të ardhmen, gjithmonë do të mund ta gjeni atë në seksionin Eksperimentet Azure ML Portal, ose në seksionin Azure Machine Learning në listën e eksperimenteve:

Si të tejkaloni frikën dhe të filloni të përdorni Azure Machine Learning

  1. NĂ«se pas kĂ«saj bĂ«tĂ« ndonjĂ« korrigjim nĂ« kod, ose ndryshuat parametrat — rilansimi i eksperimentit do tĂ« jetĂ« shumĂ« mĂ« i shpejtĂ« dhe mĂ« i lehtĂ«. Duke klikuar me tĂ« djathtĂ«n mbi skedarin, do tĂ« shihni njĂ« opsion tĂ« ri nĂ« menu PĂ«rsĂ«ritni ekzekutimin e fundit — thjesht zgjidhni atĂ«, dhe eksperimenti do tĂ« nisĂ« menjĂ«herĂ«:

Si të tejkaloni frikën dhe të filloni të përdorni Azure Machine Learning
Rezultatet e metrikave nga të gjitha ekzekutimet do t'i gjeni gjithmonë në Azure ML Portal, nuk ka nevojë t'i shkruani ato.

Tani e dini se ekzekutimi i eksperimentëve me Azure ML është i thjeshtë dhe i përshtatshëm, dhe për më tepër, ju ofron disa përfitime të këndshme.

Por mund të keni vërejtur edhe disavantazhe. Për shembull, për të ekzekutuar skriptin ishte e nevojshme një kohë shumë më e gjatë. Sigurisht, paketimi i skriptit në një kontejner dhe shpërndarja e tij në server kërkon kohë. Nëse klasteri është reduktuar në madhësinë 0 nodesh, do të kërkohet më shumë kohë për të nisur makinën virtuale, dhe e gjithë kjo është shumë evidente kur eksperimentojmë me detyra të thjeshta si MNIST, të cilat zgjidhen brenda disa sekondave. Megjithatë, në jetën reale, kur trajnimet zgjasin disa orë, ditë ose madje javë, ky kohë shtesë bëhet indiferente, sidomos përballë performancës së lartë që mund të ofrojë një klaster kompjuterik.

ÇfarĂ« ndodh mĂ« tej?

Shpresoj se pas leximit të këtij artikulli, do të jeni në gjendje ta përdorni Azure ML në punën tuaj për të ekzekutuar skripta, menaxhuar burimet llogaritëse dhe ruajtur rezultatet në mënyrë të centralizuar. Megjithatë, Azure ML mund t'ju ofrojë edhe më shumë përfitime!

Brenda hapĂ«sirĂ«s sĂ« punĂ«s, mund tĂ« ruani tĂ« dhĂ«na, duke krijuar kĂ«shtu njĂ« arkiv tĂ« centralizuar pĂ«r tĂ« gjitha detyrat tuaja, tĂ« cilin Ă«shtĂ« e lehtĂ« ta aksesoni. PĂ«r mĂ« tepĂ«r, mund tĂ« ekzekutoni eksperimentet jo nga Visual Studio Code, por duke pĂ«rdorur API-nĂ« — kjo mund tĂ« jetĂ« veçanĂ«risht e dobishme nĂ«se keni nevojĂ« pĂ«r optimizimin e hiperparametrave dhe duhet tĂ« ekzekutoni njĂ« skript shumĂ« herĂ« me parametra tĂ« ndryshĂ«m. MĂ« shumĂ« se kaq, Azure ML pĂ«rmban teknologjinĂ« e veçantĂ« Hyperdrive, e cila lejon njĂ« kĂ«rkim mĂ« tĂ« sofistikuar dhe optimizim tĂ« hiperparametrave. Rreth kĂ«tyre mundĂ«sive, do tĂ« flas nĂ« shĂ«nimin tim tĂ« ardhshĂ«m.

Burime të dobishme

Për një studim më të detajuar të Azure ML, mund t'ju nevojiten këto kurse në Microsoft Learn:

Burimi: habr.com

Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« đŸ”„ Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« | ProHoster