Kif tegħleb il-biża' u tibda tuża Azure Machine Learning

Naf ħafna Xjentisti tad-Data - u probabbilment jien wieħed minnhom stess - li jaħdmu fuq magni GPU, lokali jew virtwali, li jinsabu fil-cloud, jew permezz ta 'Notebook Jupyter jew permezz ta' xi tip ta 'ambjent ta' żvilupp Python. Ħidma għal 2 snin bħala żviluppatur espert AI/ML, għamilt eżattament dan, waqt li pprepara dejta fuq server jew workstation regolari, u mexxi taħriġ fuq magna virtwali b'GPU f'Azure.

Naturalment, ilkoll smajna dwarhom Tagħlim Azure Machine — pjattaforma sħaba speċjali għat-tagħlim tal-magni. Madankollu, wara l-ewwel daqqa t'għajn lejn artikoli introduttorji, Jidher li Azure ML se joħloq aktar problemi għalik milli jsolvi. Pereżempju, fit-tutorja msemmi hawn fuq, it-taħriġ fuq Azure ML jiġi mniedi minn Jupyter Notebook, filwaqt li l-iskrittura tat-taħriġ innifsu huwa propost li jinħoloq u jiġi editjat bħala fajl ta’ test f’waħda miċ-ċelloli - filwaqt li ma jużax awto-kompletazzjoni, sintassi. jenfasizzaw, u vantaġġi oħra ta 'ambjent ta' żvilupp normali. Għal din ir-raġuni, ilna ma użajna bis-serjetà Azure ML fix-xogħol tagħna għal żmien twil.

Madankollu, dan l-aħħar skoprejt mod kif nibda nuża Azure ML b'mod effettiv fix-xogħol tiegħi! Interessat fid-dettalji?

Kif tegħleb il-biża' u tibda tuża Azure Machine Learning

Is-sigriet ewlieni huwa Estensjoni tal-Kodiċi Visual Studio għal Azure ML. Jippermettilek tiżviluppa skripts ta' taħriġ dritt f'VS Code, billi tieħu vantaġġ sħiħ mill-ambjent - u tista' anki tmexxi l-iskrittura lokalment u mbagħad sempliċement tibgħatha għat-taħriġ f'grupp Azure ML bi ftit klikks. Konvenjenti, hux?

Meta tagħmel dan, ikollok il-benefiċċji li ġejjin mill-użu ta' Azure ML:

  • Tista 'taħdem ħafna mill-ħin lokalment fuq il-magna tiegħek f'IDE konvenjenti, u uża l-GPU biss għat-taħriġ tal-mudell. Fl-istess ħin, il-ġabra ta 'riżorsi ta' taħriġ tista 'taġġusta awtomatikament għat-tagħbija meħtieġa, u billi tistabbilixxi n-numru minimu ta' nodi għal 0, tista 'tibda awtomatikament il-magna virtwali "fuq talba" fil-preżenza ta' kompiti ta 'taħriġ.
  • Tista aħżen ir-riżultati tat-tagħlim kollha f'post wieħed, inklużi l-metriċi miksuba u l-mudelli li jirriżultaw - m'hemmx bżonn li toħroġ b'xi tip ta 'sistema jew tordna li taħżen ir-riżultati kollha.
  • F'dan il-każ, Diversi nies jistgħu jaħdmu fuq l-istess proġett - jistgħu jużaw l-istess cluster tal-kompjuters, l-esperimenti kollha se jkunu fil-kju, u jistgħu wkoll jaraw ir-riżultati tal-esperimenti ta 'xulxin. Xenarju wieħed bħal dan huwa bl-użu ta’ Azure ML fit-tagħlim ta’ Deep Learningmeta minflok tagħti lil kull student magna virtwali b'GPU, tista' toħloq cluster wieħed li se jintuża minn kulħadd ċentralment. Barra minn hekk, tabella ġenerali tar-riżultati bl-eżattezza tal-mudell tista 'sservi bħala element kompetittiv tajjeb.
  • B'Azure ML, tista 'faċilment twettaq serje ta' esperimenti, pereżempju, għal ottimizzazzjoni tal-iperparametri - dan jista 'jsir bi ftit linji ta' kodiċi, m'hemmx bżonn li ssir serje ta 'esperimenti manwalment.

Nispera li kkonvinkejtek tipprova Azure ML! Hawn kif tibda:

Azure ML Workspace u Azure ML Portal

Azure ML huwa organizzat madwar il-kunċett żona tax-xogħol — spazju tax-xogħol. Id-dejta tista 'tinħażen fl-ispazju tax-xogħol, l-esperimenti jintbagħtu lilha għat-taħriġ, ir-riżultati tat-taħriġ huma wkoll maħżuna hemmhekk - il-metriċi u l-mudelli li jirriżultaw. Tista 'tara x'inhu ġewwa l-ispazju tax-xogħol permezz Portal Azure ML - u minn hemm tista 'twettaq ħafna operazzjonijiet, li jvarjaw minn tagħbija ta' data għal esperimenti ta 'monitoraġġ u skjerament ta' mudelli.

Tista 'toħloq spazju tax-xogħol permezz tal-interface tal-web Azure Portal (Ara istruzzjonijiet pass pass), jew billi tuża l-linja tal-kmand Azure CLI (istruzzjonijiet):

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

Assoċjati wkoll mal-ispazju tax-xogħol huma xi wħud riżorsi tal-kompjuters (Ikkalkula). Ladarba tkun ħloqt iskrittura biex tħarreġ il-mudell, tista ' ibgħat esperiment għall-eżekuzzjoni għall-ispazju tax-xogħol, u speċifika ikkalkula mira - f'dan il-każ, l-iskrittura se tiġi ppakkjata, titħaddem fl-ambjent tal-kompjuters mixtieq, u mbagħad ir-riżultati kollha tal-esperiment jiġu ssejvjati fl-ispazju tax-xogħol għal aktar analiżi u użu.

Kitba ta' tagħlim għall-MNIST

Ikkunsidra l-problema klassika rikonoxximent taċ-ċifri miktuba bl-idejn bl-użu tad-dataset MNIST. Bl-istess mod, fil-futur, tista 'tmexxi kwalunkwe mill-iskripts tat-taħriġ tiegħek.

Hemm skript fir-repożitorju tagħna train_local.py, li nħarrġu l-aktar mudell ta’ rigressjoni lineari sempliċi billi tuża l-librerija SkLearn. Naturalment, nifhem li dan mhux l-aħjar mod biex issolvi l-problema - nużawha bħala eżempju, bħala l-aktar sempliċi.

L-iskritt l-ewwel iniżżel id-dejta MNIST minn OpenML u mbagħad juża l-klassi LogisticRegression biex tħarreġ il-mudell, u mbagħad ipprintja l-eżattezza li tirriżulta:

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)

Tista' tmexxi l-iskrittura fuq il-kompjuter tiegħek u tikseb ir-riżultat fi ftit sekondi.

Mexxi l-iskritt f'Azure ML

Jekk inħaddmu l-iskrittura tat-taħriġ permezz ta’ Azure ML, ikollna żewġ vantaġġi ewlenin:

  • It-tmexxija tat-taħriġ fuq riżors tal-kompjuter arbitrarju, li, bħala regola, huwa aktar produttiv mill-kompjuter lokali. Fl-istess ħin, Azure ML innifsu se jieħu ħsieb li jippakkja l-iskrittura tagħna bil-fajls kollha mid-direttorju attwali f'kontenitur docker, jinstalla d-dipendenzi meħtieġa, u jibgħatha għall-eżekuzzjoni.
  • Ikteb ir-riżultati f'reġistru wieħed ġewwa spazju ta' xogħol ta' Azure ML. Biex nieħdu vantaġġ minn din il-karatteristika, irridu nżidu ftit linji ta' kodiċi mal-iskrittura tagħna biex nirreġistra l-eżattezza li tirriżulta:

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

Il-verżjoni korrispondenti tal-iskript tissejjaħ train_universal.py (huwa ftit aktar għaqlija milli miktub hawn fuq, iżda mhux ħafna). Dan l-iskript jista' jitħaddem kemm lokalment kif ukoll fuq riżorsa tal-kompjuters remoti.

Biex tħaddem f'Azure ML minn VS Code, trid tagħmel dan li ġej:

  1. Kun żgur li l-Azure Extension hija konnessa mal-abbonament tiegħek. Agħżel l-ikona Azure mill-menu fuq ix-xellug. Jekk m'intix konness, se tidher notifika fir-rokna t'isfel tal-lemin (bħal dan), billi tikklikkja fuqha tista' tidħol permezz tal-browser. Tista 'wkoll tikklikkja Ctrl-Shift-P biex issejjaħ il-linja tal-kmand VS Code, u ttajpja Azure Sign In.

  2. Wara dan, fit-taqsima Azure (ikona fuq ix-xellug), sib it-taqsima TAGĦLIM TAL-MAGNA:

Kif tegħleb il-biża' u tibda tuża Azure Machine Learning
Hawnhekk għandek tara gruppi differenti ta 'oġġetti ġewwa l-ispazju tax-xogħol: riżorsi tal-kompjuters, esperimenti, eċċ.

  1. Mur fil-lista ta 'fajls, ikklikkja dritt fuq l-iskrittura train_universal.py u agħżel Azure ML: Mexxi bħala esperiment f'Azure.

Kif tegħleb il-biża' u tibda tuża Azure Machine Learning

  1. Dan se jkun segwit minn serje ta 'djalogi fiż-żona tal-linja tal-kmand ta' VS Code: ikkonferma l-abbonament u l-ispazju tax-xogħol Azure ML li qed tuża, u agħżel Oħloq esperiment ġdid:

Kif tegħleb il-biża' u tibda tuża Azure Machine Learning
Kif tegħleb il-biża' u tibda tuża Azure Machine Learning
Kif tegħleb il-biża' u tibda tuża Azure Machine Learning

  1. Agħżel li toħloq riżors ta' komputazzjoni ġdida Oħloq Kompjuter Ġdid:

    • Ikkalkula jiddetermina r-riżors tal-kompjuter li fuqu se jsir it-taħriġ. Tista' tagħżel kompjuter lokali, jew cluster ta' sħab AmlCompute. Nirrakkomanda li toħloq grupp skalabbli ta 'magni STANDARD_DS3_v2, b'numru minimu ta' magni ta' 0 (u massimu ta' 1 jew aktar, skont l-aptit tiegħek). Dan jista 'jsir permezz tal-interface VS Code, jew qabel permezz Portal ML.

    Kif tegħleb il-biża' u tibda tuża Azure Machine Learning

  2. Sussegwentement, trid tagħżel konfigurazzjoni Ikkalkula Konfigurazzjoni, li jiddefinixxi l-parametri tal-kontenitur maħluq għat-taħriġ, b'mod partikolari, il-libreriji kollha meħtieġa. Fil-każ tagħna, peress li qed nużaw Scikit Learn, nagħżlu SkLearn, u mbagħad tikkonferma biss il-lista proposta ta 'libreriji billi tagħfas Enter. Jekk tuża xi libreriji addizzjonali, dawn għandhom jiġu speċifikati hawn.

    Kif tegħleb il-biża' u tibda tuża Azure Machine Learning
    Kif tegħleb il-biża' u tibda tuża Azure Machine Learning

  3. Dan se jiftaħ tieqa b'fajl JSON li jiddeskrivi l-esperiment. Fiha, tista 'tikkoreġi xi parametri - pereżempju, l-isem tal-esperiment. Wara dan ikklikkja fuq il-link Issottometti Esperiment dritt ġewwa dan il-fajl:

Kif tegħleb il-biża' u tibda tuża Azure Machine Learning

  1. Wara li tissottometti b'suċċess esperiment permezz tal-VS Code, fuq in-naħa tal-lemin taż-żona tan-notifika, se tara link għal Azure ML Portal, fejn tista 'ssegwi l-istatus u r-riżultati tal-esperiment.

Kif tegħleb il-biża' u tibda tuża Azure Machine Learning
Sussegwentement, dejjem tista 'ssibha fit-taqsima Esperimenti Azure ML Portal, jew fit-taqsima Tagħlim Azure Machine fil-lista ta' esperimenti:

Kif tegħleb il-biża' u tibda tuża Azure Machine Learning

  1. Jekk wara dan għamilt xi korrezzjonijiet għall-kodiċi jew biddlet il-parametri, il-bidu mill-ġdid tal-esperiment ikun ħafna aktar mgħaġġel u eħfef. Billi tikklikkja bil-lemin fuq fajl, tara oġġett ġdid tal-menu Irrepeti l-aħħar ġirja - agħżel biss, u l-esperiment jibda immedjatament:

Kif tegħleb il-biża' u tibda tuża Azure Machine Learning
Dejjem tista' ssib ir-riżultati tal-metriċi mit-tnedija kollha fuq il-Portal Azure ML, m'hemmx għalfejn tiktebhom.

Issa taf li t-tmexxija ta 'esperimenti b'Azure ML hija sempliċi u mingħajr tbatija, u ikollok numru ta' benefiċċji sbieħ meta tagħmel dan.

Imma tista 'tara wkoll l-iżvantaġġi. Pereżempju, ħadet ħafna aktar żmien biex tmexxi l-iskrittura. Naturalment, l-ippakkjar tal-iskript f'kontenitur u l-iskjerament fuq is-server jieħu ż-żmien. Jekk fl-istess ħin il-cluster kien maqtugħ għal daqs ta 'nodes 0, se jieħu aktar żmien biex tibda l-magna virtwali, u dan kollu huwa notevoli ħafna meta nesperimentaw fuq ħidmiet sempliċi bħal MNIST, li jiġu solvuti fi ftit sekondi . Madankollu, fil-ħajja reali, meta t-taħriġ idum diversi sigħat, jew saħansitra ġranet jew ġimgħat, dan il-ħin addizzjonali jsir insinifikanti, speċjalment fl-isfond tal-prestazzjoni ferm ogħla li cluster tal-kompjuters jista 'jipprovdi.

Xi jmiss?

Nittama li wara li taqra dan l-artikolu, tista 'u se tuża Azure ML fix-xogħol tiegħek biex tmexxi skripts, timmaniġġja r-riżorsi tal-kompjuters, u taħżen ir-riżultati ċentralment. Madankollu, Azure ML jista 'jtik saħansitra aktar benefiċċji!

Ġewwa l-ispazju tax-xogħol, tista 'taħżen id-dejta, u b'hekk toħloq repożitorju ċentralizzat għall-kompiti kollha tiegħek, li huwa faċli biex taċċessaha. Barra minn hekk, tista 'tmexxi esperimenti mhux minn Visual Studio Code, iżda tuża l-API - dan jista' jkun utli b'mod speċjali jekk ikollok bżonn twettaq ottimizzazzjoni tal-iperparametri u teħtieġ li tmexxi l-iskrittura ħafna drabi b'parametri differenti. Barra minn hekk, teknoloġija speċjali hija mibnija f'Azure ML iper drive, li jippermettilek li tagħmel tfittxija u ottimizzazzjoni aktar delikata ta 'iperparametri. Se nitkellem dwar dawn il-possibbiltajiet fil-post li jmiss tiegħi.

Riżorsi utli

Biex titgħallem aktar dwar Azure ML, tista’ ssib il-korsijiet li ġejjin ta’ Microsoft Learn ta’ għajnuna:

Sors: www.habr.com

Żid kumment