Kā pārvarēt bailes un sākt izmantot Azure Machine Learning

Es pazÄ«stu daudzus datu zinātniekus ā€” un, iespējams, arÄ« pats esmu viens no viņiem ā€”, kuri strādā ar GPU iekārtām, lokālām vai virtuālajām, kas atrodas mākonÄ«, izmantojot Jupyter piezÄ«mjdatoru vai kādu Python izstrādes vidi. Strādājot 2 gadus kā eksperts AI/ML izstrādātājs, es darÄ«ju tieÅ”i to, sagatavojot datus parastajā serverÄ« vai darbstacijā un vadot apmācÄ«bu virtuālajā maŔīnā ar GPU Azure.

Protams, mēs visi esam dzirdējuÅ”i par Azure maŔīnmācÄ«Å”anās ā€” Ä«paÅ”a mākoņa platforma maŔīnmācÄ«bai. Tomēr pēc pirmā acu uzmetiena plkst ievadraksti, Ŕķiet, ka Azure ML radÄ«s jums vairāk problēmu, nekā atrisinās. Piemēram, iepriekÅ” minētajā apmācÄ«bā apmācÄ«ba par Azure ML tiek palaista no Jupyter piezÄ«mjdatora, savukārt paÅ”u apmācÄ«bas skriptu ir ierosināts izveidot un rediģēt kā teksta failu vienā no Ŕūnām, neizmantojot automātisko pabeigÅ”anu, sintaksi. izcelÅ”ana un citas normālas attÄ«stÄ«bas vides priekÅ”rocÄ«bas. Å Ä« iemesla dēļ mēs ilgu laiku neesam nopietni izmantojuÅ”i Azure ML savā darbā.

Tomēr nesen atklāju veidu, kā savā darbā sākt efektīvi izmantot Azure ML! Interesē detaļas?

Kā pārvarēt bailes un sākt izmantot Azure Machine Learning

Galvenais noslēpums ir Visual Studio koda paplaÅ”inājums Azure ML. Tas ļauj izstrādāt apmācÄ«bas skriptus tieÅ”i VS Code, pilnÄ«bā izmantojot vides priekÅ”rocÄ«bas, un jÅ«s pat varat palaist skriptu lokāli un pēc tam vienkārÅ”i nosÅ«tÄ«t to apmācÄ«bai Azure ML klasterÄ« ar dažiem klikŔķiem. Ērti, vai ne?

To darot, jÅ«s saņemat Ŕādas priekÅ”rocÄ«bas, izmantojot Azure ML:

  • Lielāko daļu laika varat strādāt lokāli savā datorā ērtā IDE un izmantojiet GPU tikai modeļu apmācÄ«bai. Tajā paŔā laikā apmācÄ«bu resursu kopums var automātiski pielāgoties vajadzÄ«gajai slodzei, un, iestatot minimālo mezglu skaitu uz 0, jÅ«s varat automātiski palaist virtuālo maŔīnu "pēc pieprasÄ«juma" apmācÄ«bas uzdevumu klātbÅ«tnē.
  • jÅ«s varat uzglabāt visus mācÄ«bu rezultātus vienuviet, ieskaitot sasniegtos rādÄ«tājus un iegÅ«tos modeļus - nav jāizdomā kaut kāda sistēma vai pasÅ«tÄ«jums visu rezultātu glabāŔanai.
  • Å ajā gadÄ«jumā, Pie viena projekta var strādāt vairāki cilvēki - viņi var izmantot vienu un to paÅ”u skaitļoÅ”anas klasteri, visi eksperimenti tiks sastādÄ«ti rindā, kā arÄ« viņi var redzēt viens otra eksperimentu rezultātus. Viens no Ŕādiem scenārijiem ir izmantojot Azure ML dziļās mācÄ«Å”anās mācÄ«Å”anaikad tā vietā, lai katram studentam pieŔķirtu virtuālo maŔīnu ar GPU, varat izveidot vienu klasteru, ko visi izmantos centralizēti. Turklāt vispārÄ«ga rezultātu tabula ar modeļa precizitāti var kalpot kā labs konkurences elements.
  • Izmantojot Azure ML, varat viegli veikt virkni eksperimentu, piemēram, lai hiperparametru optimizācija - to var izdarÄ«t ar dažām koda rindām, nav nepiecieÅ”ams manuāli veikt eksperimentu sēriju.

Ceru, ka pārliecināju jūs izmēģināt Azure ML! Lūk, kā sākt darbu:

Azure ML darbvieta un Azure ML portāls

Azure ML ir sakārtots atbilstoÅ”i koncepcijai darba zona - darba vieta. Datus var glabāt darbvietā, uz to tiek nosÅ«tÄ«ti eksperimenti apmācÄ«bai, tur tiek glabāti arÄ« treniņu rezultāti - iegÅ«tie rādÄ«tāji un modeļi. Caur to var redzēt, kas atrodas darbvietā Azure ML portāls - un no turienes jÅ«s varat veikt daudzas darbÄ«bas, sākot no datu ielādes lÄ«dz eksperimentu uzraudzÄ«bai un modeļu izvietoÅ”anai.

Varat izveidot darbvietu, izmantojot tīmekļa saskarni Azure portāls (Sk. soli pa solim instrukcijas), vai izmantojot Azure CLI komandrindu (instrukcijas):

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

Dažas ir saistÄ«tas arÄ« ar darbvietu skaitļoÅ”anas resursi (Rēķināt). Kad esat izveidojis skriptu modeļa apmācÄ«Å”anai, varat to izdarÄ«t nosÅ«tÄ«t eksperimentu izpildei uz darbvietu un norādiet aprēķināt mērÄ·i - Å”ajā gadÄ«jumā skripts tiks iepakots, palaists vēlamajā skaitļoÅ”anas vidē, un pēc tam visi eksperimenta rezultāti tiks saglabāti darbvietā turpmākai analÄ«zei un lietoÅ”anai.

MNIST skripta apguve

Apsveriet klasisko problēmu ar roku rakstÄ«tu ciparu atpazÄ«Å”ana izmantojot MNIST datu kopu. LÄ«dzÄ«gi nākotnē jÅ«s varat palaist jebkuru no saviem apmācÄ«bas skriptiem.

MÅ«su repozitorijā ir skripts train_local.py, kurā mēs apmācām vienkārŔāko lineārās regresijas modeli, izmantojot SkLearn bibliotēku. Protams, es saprotu, ka tas nav labākais veids, kā atrisināt problēmu - mēs to izmantojam kā piemēru, kā vieglāko.

Skripts vispirms lejupielādē MNIST datus no OpenML un pēc tam izmanto klasi LogisticRegression lai apmācītu modeli un pēc tam izdrukātu iegūto precizitāti:

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)

Varat palaist skriptu savā datorā un iegūt rezultātu dažu sekunžu laikā.

Palaidiet skriptu Azure ML

Ja mēs izpildÄ«sim apmācÄ«bas skriptu, izmantojot Azure ML, mums bÅ«s divas galvenās priekÅ”rocÄ«bas:

  • ApmācÄ«bas vadÄ«Å”ana uz patvaļīga skaitļoÅ”anas resursa, kas, kā likums, ir produktÄ«vāks par vietējo datoru. Tajā paŔā laikā Azure ML pati parÅ«pēsies par mÅ«su skripta iesaiņoÅ”anu ar visiem failiem no paÅ”reizējā direktorija docker konteinerā, instalēs nepiecieÅ”amās atkarÄ«bas un nosÅ«tÄ«s to izpildei.
  • Rakstiet rezultātus vienā reÄ£istrā Azure ML darbvietā. Lai izmantotu Ŕīs funkcijas priekÅ”rocÄ«bas, mÅ«su skriptam jāpievieno dažas koda rindiņas, lai reÄ£istrētu iegÅ«to precizitāti:

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

Tiek izsaukta atbilstoŔā skripta versija train_universal.py (tas ir nedaudz viltīgāks, nekā rakstīts augstāk, bet ne daudz). Šo skriptu var palaist gan lokāli, gan attālā skaitļoŔanas resursā.

Lai palaistu to Azure ML no VS Code, jums ir jāveic Ŕādas darbības:

  1. Pārliecinieties, vai Azure paplaÅ”inājums ir savienots ar jÅ«su abonementu. Kreisajā pusē esoÅ”ajā izvēlnē atlasiet Azure ikonu. Ja neesat izveidojis savienojumu, apakŔējā labajā stÅ«rÄ« tiks parādÄ«ts paziņojums (kā Å”is), noklikŔķinot uz kura var ievadÄ«t caur pārlÅ«kprogrammu. Varat arÄ« noklikŔķināt Ctrl-Shift-P lai izsauktu VS Code komandrindu, un ierakstiet Azure pierakstÄ«Å”anās.

  2. Pēc tam sadaļā Azure (ikona kreisajā pusē) atrodiet sadaļu MAÅ ÄŖNAS MĀCÄŖBA:

Kā pārvarēt bailes un sākt izmantot Azure Machine Learning
Å eit jums vajadzētu redzēt dažādas objektu grupas darbvietā: skaitļoÅ”anas resursi, eksperimenti utt.

  1. Dodieties uz failu sarakstu, ar peles labo pogu noklikŔķiniet uz skripta train_universal.py un izvēlieties Azure ML: palaist kā eksperimentu pakalpojumā Azure.

Kā pārvarēt bailes un sākt izmantot Azure Machine Learning

  1. Tam sekos vairāki dialoglodziņi VS Code komandrindas apgabalā: apstipriniet abonementu un Azure ML darbvietu, kuru izmantojat, un atlasiet Izveidojiet jaunu eksperimentu:

Kā pārvarēt bailes un sākt izmantot Azure Machine Learning
Kā pārvarēt bailes un sākt izmantot Azure Machine Learning
Kā pārvarēt bailes un sākt izmantot Azure Machine Learning

  1. Izvēlieties, lai izveidotu jaunu skaitļoÅ”anas resursu Izveidot jaunu aprēķinu:

    • Rēķināt nosaka skaitļoÅ”anas resursu, uz kura notiks apmācÄ«ba. Varat izvēlēties vietējo datoru vai AmlCompute mākoņkopu. Es iesaku izveidot mērogojamu maŔīnu kopu STANDARD_DS3_v2, ar minimālo iekārtu skaitu 0 (un ne vairāk kā 1 vai vairāk, atkarÄ«bā no jÅ«su apetÄ«tes). To var izdarÄ«t, izmantojot VS Code saskarni vai iepriekÅ”, izmantojot ML portāls.

    Kā pārvarēt bailes un sākt izmantot Azure Machine Learning

  2. Tālāk jums jāizvēlas konfigurācija Aprēķināt konfigurāciju, kas nosaka apmācÄ«bai izveidotā konteinera parametrus, jo Ä«paÅ”i visas nepiecieÅ”amās bibliotēkas. MÅ«su gadÄ«jumā, tā kā mēs izmantojam Scikit Learn, mēs atlasām SkLearnun pēc tam vienkārÅ”i apstipriniet piedāvāto bibliotēku sarakstu, nospiežot taustiņu Enter. Ja izmantojat papildu bibliotēkas, tās Å”eit ir jānorāda.

    Kā pārvarēt bailes un sākt izmantot Azure Machine Learning
    Kā pārvarēt bailes un sākt izmantot Azure Machine Learning

  3. Tiks atvērts logs ar JSON failu, kurā aprakstÄ«ts eksperiments. Tajā varat labot dažus parametrus - piemēram, eksperimenta nosaukumu. Pēc tam noklikŔķiniet uz saites Iesniegt eksperimentu tieÅ”i Å”ajā failā:

Kā pārvarēt bailes un sākt izmantot Azure Machine Learning

  1. Pēc veiksmÄ«gas eksperimenta iesniegÅ”anas, izmantojot VS Code, paziņojumu apgabala labajā pusē redzēsit saiti uz Azure ML portāls, kur varat izsekot eksperimenta statusam un rezultātiem.

Kā pārvarēt bailes un sākt izmantot Azure Machine Learning
Pēc tam to vienmēr varat atrast sadaļā Eksperimenti Azure ML portāls, vai sadaļā Azure maŔīnmācÄ«Å”anās eksperimentu sarakstā:

Kā pārvarēt bailes un sākt izmantot Azure Machine Learning

  1. Ja pēc tam veicāt dažus koda labojumus vai mainÄ«jāt parametrus, eksperimenta atsākÅ”ana bÅ«s daudz ātrāka un vienkārŔāka. Ar peles labo pogu noklikŔķinot uz faila, jÅ«s redzēsit jaunu izvēlnes vienumu Atkārtojiet pēdējo skrējienu - vienkārÅ”i atlasiet to, un eksperiments nekavējoties sāksies:

Kā pārvarēt bailes un sākt izmantot Azure Machine Learning
Visu palaiÅ”anas metrikas rezultātus vienmēr varat atrast Azure ML portālā, nav nepiecieÅ”ams tos pierakstÄ«t.

Tagad jūs zināt, ka eksperimentu veikŔana ar Azure ML ir vienkārŔa un nesāpīga, un, to darot, jūs gūstat vairākas jaukas priekŔrocības.

Bet jÅ«s varat redzēt arÄ« trÅ«kumus. Piemēram, skripta palaiÅ”ana prasÄ«ja ievērojami ilgāku laiku. Protams, skripta iesaiņoÅ”ana konteinerā un izvietoÅ”ana serverÄ« prasa laiku. Ja tajā paŔā laikā klasteris tika izgriezts lÄ«dz 0 mezglu izmēram, virtuālās maŔīnas palaiÅ”ana prasÄ«s vēl vairāk laika, un tas viss ir ļoti pamanāms, eksperimentējot ar vienkārÅ”iem uzdevumiem, piemēram, MNIST, kas tiek atrisināti dažu sekunžu laikā. . Tomēr reālajā dzÄ«vē, kad apmācÄ«ba ilgst vairākas stundas vai pat dienas vai nedēļas, Å”is papildu laiks kļūst nenozÄ«mÄ«gs, jo Ä«paÅ”i uz daudz augstākas veiktspējas fona, ko var nodroÅ”ināt skaitļoÅ”anas klasteris.

Ko tālāk?

Es ceru, ka pēc Ŕī raksta izlasÄ«Å”anas jÅ«s varat un izmantosit Azure ML savā darbā, lai palaistu skriptus, pārvaldÄ«tu skaitļoÅ”anas resursus un centralizēti uzglabātu rezultātus. Tomēr Azure ML var sniegt jums vēl vairāk priekÅ”rocÄ«bu!

Darbvietā varat glabāt datus, tādējādi izveidojot centralizētu repozitoriju visiem saviem uzdevumiem, kam ir viegli piekļūt. Turklāt eksperimentus var palaist nevis no Visual Studio Code, bet izmantojot API ā€“ tas var bÅ«t Ä«paÅ”i noderÄ«gi, ja nepiecieÅ”ams veikt hiperparametru optimizāciju un skripts jāpalaiž daudzas reizes ar dažādiem parametriem. Turklāt Azure ML ir iebÅ«vēta Ä«paÅ”a tehnoloÄ£ija Hiperpiedziņa, kas ļauj veikt sarežģītāku hiperparametru meklÄ“Å”anu un optimizāciju. Par Ŕīm iespējām es runāŔu savā nākamajā ierakstā.

Noderīgi resursi

Lai uzzinātu vairāk par Azure ML, jums var būt noderīgi Ŕādi Microsoft Learn kursi:

Avots: www.habr.com

Pievieno komentāru