UnĂ« njoh shumĂ« Data ScientistĂ« â dhe ndoshta vetĂ« gjithashtu i pĂ«rkas â qĂ« punojnĂ« nĂ« makina me GPU, lokal ose virtuale, tĂ« vendosura nĂ« re, qoftĂ« pĂ«rmes Jupyter Notebook, ose pĂ«rmes ndonjĂ« ambienti zhvillimi Python. Duke punuar pĂ«r dy 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 e kam nisur trajnimin nĂ« njĂ« makinĂ« virtuale me GPU nĂ« Azure.
Sigurisht, tĂ« gjithĂ« kemi dĂ«gjuar pĂ«r â njĂ« platformĂ« speciale cloud pĂ«r mĂ«simin e automatik. MegjithatĂ«, pas shikimit tĂ« parĂ« nĂ« , krijohet pĂ«rshtypja se Azure ML do t'ju shkaktojĂ« mĂ« shumĂ« probleme sesa do tĂ« zgjidhĂ«. PĂ«r shembull, nĂ« shembullin e mĂ«simit tĂ« pĂ«rmendur mĂ« sipĂ«r, trajnimi nĂ« Azure ML fillon nga Jupyter Notebook, ndĂ«rsa skripti i mĂ«simit ofrohet pĂ«r t'u krijuar dhe redaktuar si njĂ« skedar tekstual nĂ« njĂ« nga qelizat â duke mos pĂ«rdorur autocompletion, ndriçimin e sintaksĂ«s dhe pĂ«rfitime tĂ« tjera tĂ« njĂ« ambienti normal zhvillimi. PĂ«r kĂ«tĂ« arsye, ne nuk e kemi pĂ«rdorur pĂ«r njĂ« kohĂ« tĂ« gjatĂ« Azure ML nĂ« punĂ«n tonĂ«.
Megjithatë, kohët e fundit kam zbuluar një mënyrë për të filluar ta përdor efektivisht Azure ML në punën time! Ju interesojnë detajet?

Sekreti kryesor Ă«shtĂ« . Ai ju lejon tĂ« zhvilloni skriptet e mĂ«simit direkt nĂ« VS Code, duke shfrytĂ«zuar tĂ« gjitha pĂ«rfitimet e ambientit â ndĂ«rsa ju mund tĂ« nisni skriptin lokal, dhe pastaj thjesht ta dĂ«rgoni pĂ«r trajnimin nĂ« klasterin Azure ML me disa klikime tĂ« miut. Praktike, apo jo?
Në të njëjtën kohë, 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ë rehatshëm, dhe të përdorni GPU vetëm për trajnimin e modelit. Ndërsa grupi i burimeve të trajnimit mund të përshtatet automatikisht sipas ngarkesës së kërkuar, dhe duke vendosur numrin minimal të nyjave në 0, do të jeni në gjendje të nisni automatikisht makinën virtuale "ndërsa kërkoni" kur ka detyra trajnimi.
- Ju mund tĂ« tĂ« ruani tĂ« gjitha rezultatet e trajnimit nĂ« njĂ« vend, duke pĂ«rfshirĂ« metrikat e arritura dhe modelet e marra â nuk ka nevojĂ« tĂ« keni njĂ« sistem ose rend pĂ«r ruajtjen e tĂ« gjitha rezultateve.
- Dhe pĂ«r njĂ« projekt mund tĂ« punojnĂ« disa persona â ata mund tĂ« pĂ«rdorin tĂ« njĂ«jtin klaster llogaritĂ«s, tĂ« gjitha eksperimentet do tĂ« renditen, dhe ata gjithashtu mund tĂ« shohin rezultatet e eksperimenteve tĂ« njĂ«ri-tjetrit. NjĂ« nga kĂ«to skenarĂ« Ă«shtĂ« pĂ«rdorimi i Azure ML nĂ« mĂ«simdhĂ«nien e Deep Learning, kur nĂ« vend tĂ« dhĂ«nies sĂ« çdo studenti njĂ« makinĂ« virtuale me GPU, ju mund tĂ« krijoni njĂ« klaster tĂ« vetĂ«m qĂ« do tĂ« pĂ«rdoret nga tĂ« gjithĂ« nĂ« mĂ«nyrĂ« tĂ« centralizuar. PĂ«r mĂ« tepĂ«r, njĂ« tabelĂ« e pĂ«rbashkĂ«t e rezultateve me saktĂ«sinĂ« e modelit mund tĂ« shĂ«rbejĂ« si njĂ« element i mirĂ« konkurrues.
- Me Azure ML, Ă«shtĂ« e lehtĂ« tĂ« kryeni seria eksperimenti, pĂ«r shembull, pĂ«r optimimin e hiperparametrave â kjo mund tĂ« bĂ«het me disa rreshta kodi, nuk ka nevojĂ« tĂ« kryeni seria eksperimenti manualisht.
Shpresoj se ju kam bindur të provoni Azure ML! Ja se si mund të filloni:
- Sigurohuni që keni instaluar , si dhe zgjerimet dhe
- Kloni depozita â ajo pĂ«rmban disa kode demonstrimi pĂ«r trajnim modeli pĂ«r njohjen e numrave tĂ« shkruar me dorĂ« nĂ« datasetin MNIST.
- Hapni repozitorin e klonuar në Visual Studio Code.
- Vazhdoni të lexoni!
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 dhe gjithashtu ruhet rezultatet e trajtimit â metrikat e marra dhe modelet. Mund tĂ« shihni se çfarĂ« ndodhet brenda hapĂ«sirĂ«s sĂ« punĂ«s pĂ«rmes â dhe nga aty mund tĂ« kryeni shumĂ« operacione, duke filluar nga ngarkimi i tĂ« dhĂ«nave deri te monitorimi i eksperimenteve dhe zbatimi i modeleve.
Krijimi i një hapësire pune mund të bëhet përmes ndërfaqes së internetit (shih ), ose duke përdorur komandën në linjën 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 myazmlDisa burime llogaritĂ«se (Llogaritje). Pas krijimit tĂ« skriptit pĂ«r trajtimin e modelit, mund tĂ« dĂ«rgoni eksperimentin pĂ«r ekzekutim nĂ« hapĂ«sirĂ«n e punĂ«s dhe tĂ« specifikoni targetin e llogaritjes â nĂ« kĂ«tĂ« mĂ«nyrĂ« scripti do tĂ« paketizohet, do tĂ« ekzekutohet nĂ« mjedisin e duhur llogaritar, dhe mĂ« pas tĂ« gjitha rezultatet e eksperimenti do tĂ« ruhen nĂ« hapĂ«sirĂ«n e punĂ«s pĂ«r analizĂ«n dhe pĂ«rdorimin e mĂ«tejmĂ«.
Skripti i trajtimit për MNIST
Le të shqyrtojmë një detyrë klasike duke përdorimin e setit të të dhënave MNIST. Po ashtu, më vonë do të jeni në gjendje të ekzekutoni çdo skenar tuaj mësimor.
NĂ« repositorin tonĂ« ka njĂ« skript train_local.py, i cili trajnon njĂ« model tĂ« thjeshtĂ« regresioni linear duke pĂ«rdorur bibliotekĂ«n SkLearn. Natyrisht, kuptoj se nuk Ă«shtĂ« mĂ«nyra mĂ« e mirĂ« pĂ«r tĂ« zgjidhur problemin â e pĂ«rdorim kĂ«tĂ« si njĂ« shembull, si mĂ«nyra mĂ« e thjeshtĂ«.
Skripti fillimisht 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 marrë:
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('Saktësia e përgjithshme:', acc)Mund ta ekzekutoni skriptin në kompjuterin tuaj dhe pas disa sekondash do të merrni rezultatin.
Ekzekutojmë skriptin në Azure ML
Nëse do ta ekzekutonim skriptin për trajnim përmes Azure ML, do të kishim dy përfitime kryesore:
- Ekzekutimi i trajtimit në një burim llogaritës të rastit, i cili zakonisht është më i fuqishëm se kompjuteri lokal. Në të njëjtën kohë, Azure ML do të kujdeset për paketimin e skriptit tonë me të gjitha skedaret nga direktoria aktuale në një kontejner docker, instalimin e varësive të nevojshme dhe dërgimin për ekzekutim.
- Shënimi 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, na nevojitet të shtojmë disa rreshta kodi në skriptin tonë për të regjistruar saktësinë e rezultatit:
from azureml.core.run import Run
...
try:
run = Run.get_submitted_run()
run.log('saktësia', acc)
except:
passVersioni përkatës i skriptit quhet train_universal.py (ai është pak më i komplikuar se sa është shkruar më sipër, por jo shumë). Ky skript mund të ekzekutohet si lokalisht, ashtu edhe në një burim llogaritës të largët.
Për ta ekzekutuar atë në Azure ML nga VS Code, duhet të ndiqni këto hapa:
Sigurohuni që Zgjatja e Azure është e lidhur me abonimin tuaj. Zgjidhni ikonën e Azure në menunë e majtë. Nëse nuk jeni lidhur, do të shihni një njoftim në këndin e poshtëm të djathtë (), e cila, duke klikuar, do t'ju lejojë të hyni përmes shfletuesit. Mund të shtypni gjithashtu Ctrl-Shift-P për të thirrur komandën e linjës në VS Code, dhe të shkruani Azure Sign In.
Pastaj, në seksionin Azure (ikona në të majtë) gjeni seksionin MACHINE LEARNING:

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

- Pas kësaj do të ketë një seri dialogësh në zonën e komandave të VS Code: konfirmoni abonimin dhe hapësirën Azure ML që po përdorni, si dhe zgjidhni Krijoni eksperiment të ri:



Zgjidhni krijimin e një burimi të ri llogaritës Krijoni Burim të Ri Llogaritës:
- Llogaritje përcakton burimin llogaritës ku do të ndodhë stërvitja. Mund të zgjidhni kompjuterin lokal, ose një grumbull cloud AmlCompute. Unë rekomandoj të krijoni një grumbull makinash të shkallëzuar
STANDARD_DS3_v2, me numrin minimal të makinave 0 (dhe maksimumi mund të jetë 1 ose më shumë, në varësi të apetitive tuaja). Kjo mund të bëhet përmes interfesës së VS Code, ose paraprakisht përmes .

- Llogaritje përcakton burimin llogaritës ku do të ndodhë stërvitja. Mund të zgjidhni kompjuterin lokal, ose një grumbull cloud AmlCompute. Unë rekomandoj të krijoni një grumbull makinash të shkallëzuar
MĂ« pas duhet tĂ« zgjidhni konfigurimin Konfigurimi i Burimeve LlogaritĂ«se, i cili pĂ«rcakton parametrat e kontejnerit tĂ« krijuar pĂ«r stĂ«rvitje, sidomos tĂ« gjitha bibliotekat e nevojshme. NĂ« rastin tonĂ«, pasi ne po 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Ă« specifikohen kĂ«tu.


Pas kĂ«saj do tĂ« hapet njĂ« dritare me skedarin JSON qĂ« pĂ«rshkruan eksperimentin. NĂ« tĂ« mund tĂ« korrigjoni disa parametra â pĂ«r shembull, emri i eksperimenti. Pas kĂ«saj klikoni nĂ« lidhjen DĂ«rgo Eksperimentin direkt brenda kĂ«tij skedari:

- Pas dërgimit të suksesshëm të eksperimenti përmes VS Code, në anën e djathtë të zonës së njoftimeve do të shihni një lidhje në , ku do të mund të ndjekni statusin dhe rezultatet e eksperimenti.

Në të ardhmen gjithmonë do të jeni në gjendje ta gjeni atë në seksionin Eksperimentet , ose në seksionin Azure Machine Learning në listën e eksperimenteve:

- NĂ«se pas kĂ«saj bĂ«ni ndonjĂ« korrigjim nĂ« kod ose ndryshoni parametrat â rinisja e eksperimenti do tĂ« jetĂ« shumĂ« mĂ« e shpejtĂ« dhe mĂ« e lehtĂ«. Duke klikuar me tĂ« djathtĂ«n mbi skedarin, do tĂ« shihni njĂ« pikĂ« tĂ« re menu PĂ«rsĂ«ritni ekzekutimin e fundit â thjesht zgjidhni atĂ«, dhe eksperimenti do tĂ« fillojĂ« menjĂ«herĂ«:

Rezultatet e metrikeve nga të gjitha ekzekutimet mund t'i gjeni gjithmonë në Azure ML Portal, nuk është e nevojshme t'i regjistroni ato.
Tani e dini se tĂ« nisni eksperimente me Azure ML â Ă«shtĂ« e lehtĂ« dhe pa dhimbje, dhe pĂ«r mĂ« tepĂ«r pĂ«rfitoni nga disa avantazhe tĂ« kĂ«ndshme.
Por shpresoj se keni vënë re edhe të metat. Për shembull, për të ekzekutuar skriptin, kërkohet një kohë shumë më e gjatë. Sigurisht, për të paketuar skriptin në një kontejner dhe për ta vendosur atë në server, nevojitet kohë. Nëse klasteri ndodhet në 0 nod, atëherë do të duhen edhe më shumë kohë për të startuar makinën virtuale, dhe kjo është shumë e dukshme kur eksperimentojmë me detyra të thjeshta si MNIST, të cilat zgjidhen për disa sekonda. Megjithatë, në jetën reale, kur trajnimi zgjat disa orë, madje edhe ditë apo javë, ky kohë shtesë bëhet e papërfillshme, veçanërisht përballë performancës shumë më të lartë që mund të ofrojë një klaster llogaritës.
Ă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 skriptet, menaxhuar burimet llogaritëse dhe ruajtur rezultatet në mënyrë qendrore. Megjithatë, Azure ML mund t'ju ofrojë përfitime edhe më të mëdha!
Brenda hapĂ«sirĂ«s sĂ« punĂ«s mund tĂ« ruani tĂ« dhĂ«na, duke krijuar kĂ«shtu njĂ« depo qendrore pĂ«r tĂ« gjitha detyrat tuaja, e cila Ă«shtĂ« e lehtĂ« pĂ«r t'u aksesuar. PĂ«r mĂ« tepĂ«r, mund tĂ« ekzekutoni eksperimente jo nga Visual Studio Code, por duke pĂ«rdorur API-nĂ« â kjo mund tĂ« jetĂ« veçanĂ«risht e dobishme nĂ«se keni nevojĂ« tĂ« optimizoni hiperparametrat dhe duhet tĂ« ekzekutoni skriptin shumĂ« herĂ« me parametra tĂ« ndryshĂ«m. MĂ« shumĂ«, Azure ML pĂ«rmban njĂ« teknologji tĂ« veçantĂ« , qĂ« mundĂ«son njĂ« kĂ«rkim dhe optimizim mĂ« tĂ« sofistikuar tĂ« hiperparametrave. PĂ«r kĂ«to mundĂ«si do tĂ« flas nĂ« shkrimin 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



