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

Unë njoh shumë shkencëtarë të të dhënave - dhe ndoshta jam një prej tyre vetë - të cilët punojnë në makineritë GPU, lokale ose virtuale, të vendosura në cloud, qoftë përmes një Notebook Jupyter ose përmes një lloj mjedisi zhvillimi Python. Duke punuar për 2 vjet si një zhvillues ekspert i AI/ML, bëra pikërisht këtë, ndërsa përgatita të dhëna në një server ose stacion pune të rregullt dhe drejtoja trajnime në një makinë virtuale me një GPU në Azure.

Sigurisht, të gjithë kemi dëgjuar për Mësimi i Makinës Azure — një platformë e veçantë cloud për mësimin e makinerive. Megjithatë, pas një shikimi të parë në artikuj hyrës, duket se Azure ML do t'ju krijojë më shumë probleme sesa zgjidh. Për shembull, në tutorialin e përmendur më lart, trajnimi në Azure ML niset nga një fletore Jupyter, ndërsa vetë skripti i trajnimit propozohet të krijohet dhe redaktohet si skedar teksti në një nga qelizat - duke mos përdorur plotësimin automatik, sintaksë. theksimi dhe avantazhet e tjera të një mjedisi normal zhvillimi. Për këtë arsye, ne nuk e kemi përdorur seriozisht Azure ML në punën tonë për një kohë të gjatë.

Sidoqoftë, 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 për detajet?

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

Sekreti kryesor është Zgjatja e kodit të Visual Studio për Azure ML. Kjo ju lejon të zhvilloni skriptet e trajnimit direkt në VS Code, duke përfituar plotësisht nga mjedisi - dhe madje mund ta ekzekutoni skriptin në nivel lokal dhe më pas thjesht ta dërgoni në trajnim në një grup Azure ML me disa klikime. I përshtatshëm, apo jo?

Duke vepruar kështu, ju merrni përfitimet e mëposhtme nga përdorimi i Azure ML:

  • Ju mund të punoni shumicën e kohës në nivel lokal në kompjuterin tuaj në një IDE të përshtatshme dhe përdorni GPU vetëm për trajnimin e modeleve. Në të njëjtën kohë, grupi i burimeve të trajnimit mund të përshtatet automatikisht me ngarkesën e kërkuar, dhe duke vendosur numrin minimal të nyjeve në 0, mund të filloni automatikisht makinën virtuale "sipas kërkesës" në prani të detyrave të trajnimit.
  • 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ë krijohet një lloj sistemi ose urdhri për të ruajtur të gjitha rezultatet.
  • Në këtë rast, Shumë njerëz mund të punojnë në të njëjtin projekt - ata mund të përdorin të njëjtin grup kompjuterik, të gjitha eksperimentet do të vendosen në radhë dhe ata gjithashtu mund të shohin rezultatet e eksperimenteve të njëri-tjetrit. Një skenar i tillë është duke përdorur Azure ML në mësimdhënien e të mësuarit të thellëkur në vend që t'i jepni çdo studenti një makinë virtuale me një GPU, ju mund të krijoni një grup që do të përdoret nga të gjithë në qendër. Për më tepër, një tabelë e përgjithshme e rezultateve me saktësinë e modelit mund të shërbejë si një element i mirë konkurrues.
  • Me Azure ML, lehtë mund të kryeni një seri eksperimentesh, për shembull, për optimizimi i hiperparametrit - kjo mund të bëhet me disa rreshta kodi, nuk ka nevojë të kryeni një seri eksperimentesh me dorë.

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

Azure ML Workspace dhe Azure ML Portal

Azure ML është organizuar rreth konceptit zona e punës - hapësira e punës. Të dhënat mund të ruhen në hapësirën e punës, eksperimentet i dërgohen asaj për trajnim, rezultatet e trajnimit ruhen gjithashtu atje - metrikat dhe modelet që rezultojnë. Ju mund të shihni se çfarë është brenda hapësirës së punës përmes Portali Azure ML - dhe prej andej mund të kryeni shumë operacione, duke filluar 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 së internetit Portali Azure (Cm. udhëzime hap pas hapi), ose duke përdorur linjën e komandës Azure CLI (udhëzime):

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

Gjithashtu të lidhura me hapësirën e punës janë disa burimet kompjuterike (bëj llogaritje). Pasi të keni krijuar një skenar për të trajnuar modelin, mundeni dërgoni eksperimentin për ekzekutim në hapësirën e punës dhe specifikoni llogarit objektivin - në këtë rast, skripti do të paketohet, do të ekzekutohet në mjedisin e dëshiruar kompjuterik 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 mësimor për MNIST

Konsideroni problemin klasik njohja e shifrave të shkruara me dorë duke përdorur të dhënat e MNIST. Në mënyrë të ngjashme, në të ardhmen, ju mund të ekzekutoni cilindo nga skriptet tuaja të trajnimit.

Ekziston një skenar në depon tonë train_local.py, të cilin ne trajnojmë modelin më të thjeshtë të regresionit linear duke përdorur bibliotekën SkLearn. Sigurisht, e kuptoj që kjo nuk është mënyra më e mirë për të zgjidhur problemin - ne e përdorim atë si shembull, si më të thjeshtën.

Skripti fillimisht shkarkon të dhënat MNIST nga OpenML dhe më pas përdor klasën LogisticRegression për të trajnuar modelin dhe më pas printoni 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 në disa sekonda.

Ekzekutoni skriptin në Azure ML

Nëse e ekzekutojmë skriptin e trajnimit përmes Azure ML, do të kemi dy avantazhe kryesore:

  • Drejtimi i trajnimit në një burim kompjuterik arbitrar, i cili, si rregull, është më produktiv se kompjuteri lokal. Në të njëjtën kohë, vetë Azure ML do të kujdeset për paketimin e skriptit tonë me të gjithë skedarët nga drejtoria aktuale në një kontejner docker, instalimin e varësive të kërkuara dhe dërgimin e tij për ekzekutim.
  • Shkruani rezultatet në një regjistër të vetëm brenda një hapësire pune 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:
    pass

Versioni përkatës i skenarit quhet train_universal.py (është pak më dinake se sa është shkruar 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 më poshtë:

  1. Sigurohuni që Zgjerimi Azure të jetë i lidhur me pajtimin tuaj. Zgjidhni ikonën Azure nga menyja në të majtë. Nëse nuk jeni të lidhur, një njoftim do të shfaqet në këndin e poshtëm djathtas (si kjo), duke klikuar mbi të cilin mund të hyni përmes shfletuesit. Ju gjithashtu mund të klikoni Ctrl-Shift-P për të thirrur linjën e komandës VS Code dhe shkruani Identifikohu Azure.

  2. Pas kësaj, në seksionin Azure (ikona në të majtë), gjeni seksionin MARSIMI I MAKINS:

Si të kapërceni 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 llogaritëse, eksperimente, etj.

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

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

  1. Kjo do të pasohet nga një seri dialogësh në zonën e linjës së komandës të Kodit VS: konfirmoni abonimin dhe hapësirën e punës Azure ML që po përdorni dhe zgjidhni Krijo eksperiment të ri:

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

  1. Zgjidhni për të krijuar një burim të ri llogaritës Krijo llogari të re:

    • bëj llogaritje përcakton burimin informatik mbi të cilin do të zhvillohet trajnimi. Ju mund të zgjidhni një kompjuter lokal ose një grup cloud AmlCompute. Unë rekomandoj krijimin e një grupi të shkallëzuar të makinave STANDARD_DS3_v2, me një numër minimal makinerish 0 (dhe maksimumi 1 ose më shumë, në varësi të oreksit tuaj). Kjo mund të bëhet përmes ndërfaqes VS Code, ose më parë përmes Portali ML.

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

  2. Tjetra, ju duhet të zgjidhni një konfigurim Llogaritja e konfigurimit, i cili përcakton parametrat e kontejnerit të krijuar për trajnim, në veçanti, të gjitha bibliotekat e nevojshme. Në rastin tonë, duke qenë se po përdorim Scikit Learn, ne zgjedhim SkLearn, dhe më pas thjesht konfirmoni listën e propozuar të bibliotekave duke shtypur Enter. Nëse përdorni ndonjë bibliotekë shtesë, ato duhet të specifikohen këtu.

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

  3. Kjo do të hapë një dritare me një skedar JSON që përshkruan eksperimentin. Në të, ju mund të korrigjoni disa parametra - për shembull, emrin e eksperimentit. Pas kësaj klikoni në lidhjen Paraqisni Eksperimentin pikërisht brenda këtij skedari:

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

  1. Pas paraqitjes me sukses të një eksperimenti përmes Kodit VS, në anën e djathtë të zonës së njoftimit, do të shihni një lidhje me Portali Azure ML, ku mund të gjurmoni statusin dhe rezultatet e eksperimentit.

Si të kapërceni frikën dhe të filloni të përdorni Azure Machine Learning
Më pas, gjithmonë mund ta gjeni në seksion eksperimentet Portali Azure ML, ose në seksionin Mësimi i Makinës Azure në listën e eksperimenteve:

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

  1. Nëse pas kësaj keni bërë disa korrigjime në kod ose keni ndryshuar parametrat, rinisja e eksperimentit do të jetë shumë më e shpejtë dhe më e lehtë. Duke klikuar me të djathtën mbi një skedar, do të shihni një artikull të ri të menysë Përsëritni vrapimin e fundit - thjesht zgjidhni atë dhe eksperimenti do të fillojë menjëherë:

Si të kapërceni frikën dhe të filloni të përdorni Azure Machine Learning
Gjithmonë mund t'i gjeni rezultatet e matjeve nga të gjitha lëshimet në Portalin Azure ML, nuk ka nevojë t'i shkruani ato.

Tani e dini se ekzekutimi i eksperimenteve me Azure ML është i thjeshtë dhe pa dhimbje, dhe ju merrni një sërë përfitimesh të këndshme duke e bërë këtë.

Por ju gjithashtu mund të shihni disavantazhet. Për shembull, u desh shumë më shumë kohë për të ekzekutuar skenarin. Sigurisht, paketimi i skriptit në një kontejner dhe vendosja e tij në server kërkon kohë. Nëse në të njëjtën kohë grupi është prerë në një madhësi prej 0 nyjesh, do të duhet edhe më shumë kohë për të nisur makinën virtuale, dhe e gjithë kjo është shumë e dukshme kur eksperimentojmë në detyra të thjeshta si MNIST, të cilat zgjidhen në pak sekonda. . Megjithatë, në jetën reale, kur trajnimi zgjat disa orë, apo edhe ditë apo javë, kjo kohë shtesë bëhet e parëndësishme, veçanërisht në sfondin e performancës shumë më të lartë që mund të ofrojë një grup kompjuterik.

Çka më tej?

Shpresoj që pasi të keni lexuar këtë artikull, ju mund dhe do të përdorni Azure ML në punën tuaj për të ekzekutuar skriptet, për të menaxhuar burimet kompjuterike dhe për të ruajtur rezultatet në qendër. Sidoqoftë, Azure ML mund t'ju japë edhe më shumë përfitime!

Brenda hapësirës së punës, ju mund të ruani të dhëna, duke krijuar kështu një depo të centralizuar për të gjitha detyrat tuaja, e cila është e lehtë për t'u aksesuar. Për më tepër, ju mund të ekzekutoni eksperimente jo nga Visual Studio Code, por duke përdorur API - kjo mund të jetë veçanërisht e dobishme nëse keni nevojë të kryeni optimizimin e hiperparametrave dhe duhet të ekzekutoni skriptin shumë herë me parametra të ndryshëm. Për më tepër, teknologjia speciale është ndërtuar në Azure ML hiper drive, i cili ju lejon të bëni kërkime dhe optimizim më të ndërlikuar të hiperparametrave. Unë do të flas për këto mundësi në postimin tim të ardhshëm.

Burime të dobishme

Për të mësuar më shumë rreth Azure ML, mund t'ju ndihmojnë kurset e mëposhtme të Microsoft Learn:

Burimi: www.habr.com

Shto një koment