Giunsa pagbuntog ang kahadlok ug pagsugod sa paggamit sa Azure Machine Learning

Nakaila ko og daghang mga Data Scientist - ug tingali usa ako kanila - nga nagtrabaho sa mga makina sa GPU, lokal o virtual, nga nahimutang sa panganod, bisan pinaagi sa Jupyter Notebook o pinaagi sa usa ka matang sa Python development environment. Nagtrabaho sulod sa 2 ka tuig isip usa ka eksperto nga developer sa AI / ML, gibuhat nako kini sa eksakto, samtang nag-andam sa datos sa usa ka regular nga server o workstation, ug nagpadagan sa pagbansay sa usa ka virtual machine nga adunay GPU sa Azure.

Siyempre, kitang tanan nakadungog mahitungod niini Pagkat-on sa Azure Machine - usa ka espesyal nga plataporma sa panganod alang sa pagkat-on sa makina. Apan, human sa unang pagtan-aw sa pasiunang mga artikulo, morag ang Azure ML maghimo ug mas daghang problema para nimo kay sa masulbad niini. Pananglitan, sa pananglitan sa pagbansay nga gihisgutan sa ibabaw, ang pagbansay sa Azure ML gilunsad gikan sa Jupyter Notebook, samtang ang script sa pagbansay mismo gisugyot nga himoon ug i-edit isip usa ka text file sa usa sa mga cell - nga walay paggamit sa autocompletion, syntax highlighting ug uban pa mga bentaha sa usa ka normal nga palibot sa pag-uswag. Tungod niini, wala kami seryoso nga naggamit sa Azure ML sa among trabaho sa dugay nga panahon.

Bisan pa, bag-o lang ako nakadiskobre og usa ka paagi sa pagsugod sa paggamit sa Azure ML nga epektibo sa akong trabaho! Interesado sa mga detalye?

Giunsa pagbuntog ang kahadlok ug pagsugod sa paggamit sa Azure Machine Learning

Ang panguna nga sekreto mao Visual Studio Code extension alang sa Azure ML. Gitugotan ka nga makahimo og mga script sa pagbansay nga direkta sa VS Code, nga nagpahimulos sa kalikopan - ug mahimo ka pa nga magpadagan sa usa ka script sa lokal, ug dayon ipadala kini aron magbansay sa usa ka kumpol sa Azure ML nga adunay pipila nga mga pag-klik. Kombenyente, dili ba?

Sa pagbuhat niini, imong makuha ang mosunod nga mga benepisyo gikan sa paggamit sa Azure ML:

  • Mahimo ka magtrabaho sa kadaghanan sa oras sa lokal sa imong makina sa usa ka kombenyente nga IDE, ug gamita lamang ang GPU alang sa pagbansay sa modelo. Sa samang higayon, ang pool sa mga kahinguhaan sa pagbansay mahimong awtomatik nga mag-adjust sa gikinahanglan nga load, ug pinaagi sa pagtakda sa minimum nga gidaghanon sa mga node ngadto sa 0, mahimo nimong awtomatiko nga ilunsad ang virtual machine "on demand" kung adunay mga buluhaton sa pagbansay.
  • Mahimo nimo tipigi ang tanang resulta sa pagkat-on sa usa ka dapit, apil ang nakab-ot nga sukdanan ug ang resulta nga mga modelo - dili na kinahanglan nga maghimo ug usa ka matang sa sistema o order alang sa pagtipig sa tanang resulta.
  • Mao kini ang Daghang mga tawo ang makatrabaho sa usa ka proyekto - mahimo silang mogamit sa parehas nga cluster sa kompyuter, ang tanan nga mga eksperimento mapila, ug makita usab nila ang mga resulta sa mga eksperimento sa usag usa. Usa sa maong senaryo mao gamit ang Azure ML sa pagtudlo sa Deep Learning, diin imbes nga hatagan ang matag estudyante og virtual machine nga adunay GPU, makahimo ka og usa ka cluster nga gamiton sa sentro sa tanan. Dugang pa, ang usa ka kinatibuk-ang talaan sa mga resulta nga adunay katukma sa modelo mahimong magsilbi nga usa ka maayong elemento sa kompetisyon.
  • Gamit ang Azure ML, dali ka makadagan sa usa ka serye sa mga eksperimento, pananglitan. pag-optimize sa hyperparameter - mahimo kini gamit ang pipila ka linya sa code; dili kinahanglan nga magpahigayon usa ka serye sa mga eksperimento nga mano-mano.

Nanghinaut ko nga nakombinsir ko nimo nga sulayan ang Azure ML! Ania kung unsaon pagsugod:

Azure ML Workspace ug Azure ML Portal

Ang Azure ML giorganisar sa palibot sa konsepto trabahoan - Lugar sa trabahoan. Ang mga datos mahimong tipigan sa workspace, ang mga eksperimento para sa pagbansay mahimong ipadala niini, ug ang mga resulta sa pagbansay-ang resulta nga mga sukatan ug mga modelo-gitipigan usab didto. Makita nimo kung unsa ang naa sa sulod sa workspace gamit Azure ML portal - ug gikan didto makahimo ka sa daghang mga operasyon, gikan sa pagkarga sa datos hangtod sa pag-monitor sa mga eksperimento ug pag-deploy sa mga modelo.

Makahimo ka og workspace pinaagi sa web interface Azure Portal (cm. lakang sa lakang nga mga panudlo), o gamit ang Azure CLI command line (mga instruksyon):

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

Adunay usab pipila nga nalangkit sa workspace mga kapanguhaan sa kompyuter (Pag-compute). Sa higayon nga nakahimo ka og script aron mabansay ang modelo, mahimo nimo magpadala usa ka eksperimento alang sa pagpatuman ngadto sa work area, ug espesipiko pagkalkula sa target - sa kini nga kaso, ang script i-package, ilunsad sa gitinguha nga palibot sa kompyuter, ug unya ang tanan nga mga resulta sa eksperimento i-save sa workspace alang sa dugang nga pagtuki ug paggamit.

Pagbansay sa script para sa MNIST

Atong tagdon ang klasikal nga problema sinulat sa kamot nga digit nga pag-ila gamit ang MNIST dataset. Sa susama, sa umaabot mahimo nimong ipatuman ang bisan unsang mga script sa imong pagbansay.

Adunay usa ka script sa among repository train_local.py, nga nagbansay sa pinakasimple nga linear regression model gamit ang SkLearn library. Siyempre, akong nasabtan nga dili kini ang pinakamaayong paagi sa pagsulbad sa problema - gigamit namo kini isip pananglitan, isip pinakasimple.

Una nga gi-download sa script ang datos sa MNIST gikan sa OpenML ug dayon gigamit ang klase LogisticRegression aron mabansay ang modelo, ug dayon i-print ang resulta nga katukma:

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)

Mahimo nimong ipadagan ang script sa imong kompyuter ug sa pila ka segundo makuha nimo ang resulta.

Pagpadagan sa script sa Azure ML

Kung gipadagan namon ang script sa pagbansay pinaagi sa Azure ML, kami adunay duha ka panguna nga bentaha:

  • Pagpadagan sa pagbansay sa usa ka arbitraryong kapanguhaan sa kompyuter, nga kasagaran mas produktibo kaysa usa ka lokal nga kompyuter. Sa kini nga kaso, ang Azure ML mismo ang mag-atiman sa pag-pack sa among script sa tanan nga mga file gikan sa kasamtangan nga direktoryo ngadto sa usa ka docker nga sudlanan, pag-instalar sa gikinahanglan nga mga dependency, ug ipadala kini alang sa pagpatay.
  • Isulat ang mga resulta sa usa ka rehistro sulod sa usa ka Azure ML nga workspace. Aron mapahimuslan ang kini nga bahin, kinahanglan namon nga magdugang usa ka pares nga linya sa code sa among script aron irekord ang sangputanan nga katukma:

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

Ang katugbang nga bersyon sa script gitawag train_universal.py (kini usa ka gamay nga mas tuso nga gidisenyo kay sa gihulagway sa ibabaw, apan dili daghan). Kini nga script mahimong ipadagan sa lokal ug sa usa ka hilit nga kapanguhaan sa kompyuter.

Aron mapadagan kini sa Azure ML gikan sa VS Code, kinahanglan nimo nga buhaton ang mosunod:

  1. Siguroha nga ang Azure Extension konektado sa imong suskrisyon. Pilia ang Azure icon gikan sa wala nga menu. Kung dili ka konektado, usa ka pahibalo ang makita sa ubos nga tuo nga suok (ingon niini), pinaagi sa pag-klik kung asa ka maka-log in pinaagi sa browser. Mahimo usab nimo i-klik Ctrl-Shift-P sa pag-abli sa VS Code command line, ug type Azure Sign In.

  2. Pagkahuman niana, sa seksyon sa Azure (icon sa wala), pangitaa ang seksyon PAGTUON SA MACHINE:

Giunsa pagbuntog ang kahadlok ug pagsugod sa paggamit sa Azure Machine Learning
Dinhi kinahanglan nimo nga makita ang lainlaing mga grupo sa mga butang sa sulod sa workspace: mga kapanguhaan sa pag-compute, mga eksperimento, ug uban pa.

  1. Lakaw ngadto sa listahan sa mga file, i-right click sa script train_universal.py ug pagpili Azure ML: Pagdagan ingon eksperimento sa Azure.

Giunsa pagbuntog ang kahadlok ug pagsugod sa paggamit sa Azure Machine Learning

  1. Kini sundan sa usa ka serye sa mga dialog sa VS Code command line area: kumpirmahi ang imong subscription ug Azure ML workspace, ug pilia Paghimo og bag-ong eksperimento:

Giunsa pagbuntog ang kahadlok ug pagsugod sa paggamit sa Azure Machine Learning
Giunsa pagbuntog ang kahadlok ug pagsugod sa paggamit sa Azure Machine Learning
Giunsa pagbuntog ang kahadlok ug pagsugod sa paggamit sa Azure Machine Learning

  1. Pilia ang paghimo og bag-ong kapanguhaan sa kompyuter Paghimo Bag-ong Compute:

    • Pag-compute nagtino sa computing resource diin ang pagbansay mahitabo. Makapili ka ug lokal nga kompyuter, o ang AmlCompute cloud cluster. Girekomendar nako ang paghimo og usa ka scalable cluster sa mga makina STANDARD_DS3_v2, nga adunay minimum nga gidaghanon sa mga makina 0 (ug ang maximum mahimong 1 o labaw pa, depende sa imong mga gana). Mahimo kini pinaagi sa interface sa VS Code, o kaniadto pinaagi sa ML Portal.

    Giunsa pagbuntog ang kahadlok ug pagsugod sa paggamit sa Azure Machine Learning

  2. Sunod kinahanglan nimo nga pilion ang usa ka configuration Compute Configuration, nga naghubit sa mga parameter sa sudlanan nga gihimo alang sa pagbansay, ilabi na, ang tanan nga gikinahanglan nga mga librarya. Sa among kaso, tungod kay gigamit namon ang Scikit Pagkat-on, gipili namon SkLearn, ug dayon kumpirmahi ang gisugyot nga listahan sa mga librarya pinaagi sa pagpindot sa Enter. Kung mogamit ka ug bisan unsang dugang nga mga librarya, kinahanglan nga itakda kini dinhi.

    Giunsa pagbuntog ang kahadlok ug pagsugod sa paggamit sa Azure Machine Learning
    Giunsa pagbuntog ang kahadlok ug pagsugod sa paggamit sa Azure Machine Learning

  3. Pagkahuman niini, magbukas ang usa ka bintana nga adunay JSON file nga naghulagway sa eksperimento. Mahimo nimong matul-id ang pipila ka mga parameter niini, pananglitan, ang ngalan sa eksperimento. Pagkahuman i-klik ang link Isumiter ang Eksperimento sulod mismo niini nga file:

Giunsa pagbuntog ang kahadlok ug pagsugod sa paggamit sa Azure Machine Learning

  1. Pagkahuman sa malampuson nga pagsumite sa usa ka eksperimento pinaagi sa VS Code, sa lugar sa pagpahibalo sa tuo makita nimo ang usa ka link sa Azure ML Portal, diin masubay nimo ang status ug resulta sa eksperimento.

Giunsa pagbuntog ang kahadlok ug pagsugod sa paggamit sa Azure Machine Learning
Pagkahuman, makit-an nimo kini kanunay sa seksyon Mga eksperimento Azure ML Portal, o sa seksyon Pagkat-on sa Azure Machine sa listahan sa mga eksperimento:

Giunsa pagbuntog ang kahadlok ug pagsugod sa paggamit sa Azure Machine Learning

  1. Kung pagkahuman naghimo ka ug pipila ka mga pagtul-id sa code o giusab ang mga parameter, ang pagpadagan pag-usab sa eksperimento mahimong labi ka paspas ug dali. Pinaagi sa pag-right-click sa file, makakita ka og bag-ong menu item Balika ang katapusang dagan - pilia lang kini ug ang eksperimento ilunsad dayon:

Giunsa pagbuntog ang kahadlok ug pagsugod sa paggamit sa Azure Machine Learning
Kanunay nimong makit-an ang mga resulta sa mga sukatan gikan sa tanan nga pagdagan sa Azure ML Portal; dili kinahanglan nga irekord kini.

Karon nahibal-an na nimo nga ang pagpadagan sa mga eksperimento gamit ang Azure ML dali, wala’y sakit, ug adunay pipila nga makapahinam nga mga benepisyo.

Apan tingali nakamatikod ka sa pipila ka mga disbentaha. Pananglitan, mas dugay ang pagpadagan sa script. Siyempre, ang pagputos sa script ngadto sa usa ka sudlanan ug ang pag-deploy niini ngadto sa server nagkinahanglan og panahon. Kung ang cluster gipakunhod ngadto sa gidak-on nga 0 nodes, magkinahanglan pa kini og dugang nga panahon sa pagsugod sa virtual machine, ug kining tanan mamatikdan kaayo kung mag-eksperimento kita sa mga yanong problema sama sa MNIST, nga masulbad sa pipila ka segundo. Bisan pa, sa tinuud nga kinabuhi, kung ang pagbansay molungtad daghang oras, o bisan mga adlaw o semana, kini nga dugang nga oras mahimong dili hinungdanon, labi na batok sa backdrop sa labi ka taas nga pasundayag nga mahatag sa usa ka cluster sa kompyuter.

Unsay sunod?

Nanghinaut ko nga human sa pagbasa niini nga artikulo, mahimo nimo ug gamiton ang Azure ML sa imong trabaho sa pagpadagan sa mga script, pagdumala sa mga kapanguhaan sa pag-compute, ug pagtago sa mga resulta sa sentro. Bisan pa, ang Azure ML makahatag kanimo labi pa nga mga benepisyo!

Mahimo nimong tipigan ang datos sa sulod sa usa ka workspace, sa ingon makahimo ka usa ka sentralisadong repositoryo alang sa tanan nimong mga buluhaton nga dali ma-access. Dugang pa, mahimo nimong ipadagan ang mga eksperimento gamit ang API imbes nga Visual Studio Code - labi na nga mapuslanon kini kung kinahanglan nimo nga himuon ang pag-optimize sa hyperparameter ug kinahanglan nimo nga ipadagan ang script sa daghang beses nga adunay lainlaing mga parameter. Dugang pa, ang espesyal nga teknolohiya gitukod sa Azure ML sobra nga drive, nga nagtugot alang sa mas sopistikado nga pagpangita ug pag-optimize sa mga hyperparameter. Akong hisgutan kini nga mga posibilidad sa akong sunod nga post.

Mapuslanon nga mga gigikanan

Aron makakat-on og dugang mahitungod sa Azure ML, mahimo nimong makita nga mapuslanon ang mosunod nga mga kurso sa Microsoft Learn:

Source: www.habr.com

Idugang sa usa ka comment