Ki jan yo simonte laperèz epi kòmanse itilize Azure Machine Learning

Mwen konnen anpil Done Syantis - e mwen pwobableman youn nan yo mwen menm - ki travay sou machin GPU, lokal oswa vityèl, ki sitiye nan nwaj la, swa atravè yon kaye Jupyter oswa atravè yon kalite anviwònman devlopman Python. Travay pou 2 ane kòm yon ekspè AI/ML devlopè, mwen te fè egzakteman sa a, pandan y ap prepare done sou yon sèvè regilye oswa estasyon travay, ak kouri fòmasyon sou yon machin vityèl ak yon GPU nan Azure.

Natirèlman, nou tout te tande pale de Ble aprantisaj machin — yon platfòm nwaj espesyal pou aprantisaj machin. Sepandan, apre yon premye gade nan atik entwodiksyon, sanble ke Azure ML pral kreye plis pwoblèm pou ou pase sa li rezoud. Pou egzanp, nan leson patikilye ki mansyone pi wo a, fòmasyon sou Azure ML lanse soti nan yon kaye Jupyter, pandan y ap script fòmasyon an li menm yo pwopoze yo dwe kreye ak modifye kòm yon dosye tèks nan youn nan selil yo - pandan y ap pa itilize oto-konplesyon, sentaks. en, ak lòt avantaj ki genyen nan yon anviwònman devlopman nòmal. Pou rezon sa a, nou pa te itilize seryezman Azure ML nan travay nou an pou yon tan long.

Sepandan, dènyèman mwen te dekouvri yon fason yo kòmanse itilize Azure ML efektivman nan travay mwen! Enterese nan detay yo?

Ki jan yo simonte laperèz epi kòmanse itilize Azure Machine Learning

Sekrè prensipal la se Ekstansyon Kòd Visual Studio pou Azure ML. Li pèmèt ou devlope script fòmasyon dwat nan VS Code, pran anpil avantaj de anviwònman an - epi ou ka menm kouri script la lokalman epi tou senpleman voye li nan fòmasyon nan yon gwoup Azure ML ak kèk klik. Pratik, pa vre?

Lè w fè sa, ou jwenn benefis sa yo lè w sèvi ak Azure ML:

  • Ou ka travay pi fò nan tan lokalman sou machin ou nan yon IDE pratik, ak sèvi ak GPU sèlman pou fòmasyon modèl. An menm tan an, pisin lan nan resous fòmasyon ka otomatikman ajiste nan chaj ki nesesè yo, ak pa mete kantite minimòm nœuds a 0, ou ka otomatikman kòmanse machin nan vityèl "sou demann" nan prezans travay fòmasyon.
  • Ou kapab estoke tout rezilta aprantisaj yo nan yon sèl kote, ki gen ladan mezi yo reyalize ak modèl yo ki kapab lakòz - pa gen okenn bezwen vini ak kèk kalite sistèm oswa lòd pou estoke tout rezilta yo.
  • Nan ka sa a, Plizyè moun ka travay sou menm pwojè a - yo ka sèvi ak menm gwoup enfòmatik la, tout eksperyans yo pral mete nan keu, epi yo ka wè tou rezilta eksperyans youn ak lòt. Youn nan senaryo sa yo se lè l sèvi avèk Azure ML nan ansèyman Deep Learninglè olye pou yo bay chak elèv yon machin vityèl ak yon GPU, ou ka kreye yon gwoup ki pral itilize pa tout santralman. Anplis de sa, yon tablo jeneral rezilta ak presizyon modèl ka sèvi kòm yon bon eleman konpetitif.
  • Avèk Azure ML, ou ka fasilman fè yon seri eksperyans, pou egzanp, pou optimize ipèparamèt - sa a ka fè ak kèk liy nan kòd, pa gen okenn bezwen fè yon seri de eksperyans manyèlman.

Mwen espere ke mwen te konvenk ou eseye Azure ML! Men ki jan yo kòmanse:

Azure ML Workspace ak Azure ML Portal

Azure ML òganize alantou konsèp la zòn travay - espas travay. Done yo ka estoke nan espas travay la, eksperyans yo voye ba li pou fòmasyon, rezilta fòmasyon yo tou estoke la - mezi yo ki kapab lakòz ak modèl. Ou ka wè sa ki andedan espas travay la atravè Azure ML Portal - ak soti nan la ou ka fè anpil operasyon, sòti nan loading done nan siveyans eksperyans ak deplwaye modèl.

Ou ka kreye yon espas travay atravè koòdone entènèt la Azure Portal (cm. etap pa etap enstriksyon yo), oswa lè l sèvi avèk liy lòd Azure CLI (enstriksyon):

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

Gen kèk ki asosye ak espas travay la tou resous enfòmatik (Kalkile). Yon fwa ou te kreye yon script pou antrene modèl la, ou kapab voye eksperyans pou ekzekisyon nan espas travay la, epi presize kalkile sib - nan ka sa a, script la pral pake, kouri nan anviwònman an enfòmatik vle, ak Lè sa a, tout rezilta yo nan eksperyans la pral sove nan espas travay la pou plis analiz ak itilizasyon.

Aprann script pou MNIST

Konsidere pwoblèm klasik la rekonesans chif ekri alamen lè l sèvi avèk done MNIST la. Menm jan an tou, nan lavni an, ou ka kouri nenpòt nan script fòmasyon ou yo.

Gen yon script nan depo nou an train_local.py, ke nou antrene modèl regression lineyè ki pi senp la lè l sèvi avèk bibliyotèk SkLearn la. Natirèlman, mwen konprann ke sa a se pa pi bon fason yo rezoud pwoblèm nan - nou itilize li pou yon egzanp, kòm pi senp la.

Script la premye telechaje done MNIST yo nan OpenML epi answit itilize klas la LogisticRegression pou antrene modèl la, ak Lè sa a enprime presizyon an ki kapab lakòz:

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)

Ou ka kouri script la sou òdinatè w lan epi jwenn rezilta a nan yon koup de segonn.

Kouri script la nan Azure ML

Si nou kouri script fòmasyon an atravè Azure ML, nou pral gen de avantaj prensipal:

  • Kouri fòmasyon sou yon resous informatique abitrè, ki, kòm yon règ, se pi pwodiktif pase òdinatè lokal la. An menm tan an, Azure ML tèt li pral pran swen nan anbalaj script nou an ak tout dosye ki soti nan anyè aktyèl la nan yon veso Docker, enstale depandans ki nesesè yo, epi voye li pou ekzekisyon.
  • Ekri rezilta yo nan yon sèl rejis andedan yon espas travay Azure ML. Pou pran avantaj de karakteristik sa a, nou bezwen ajoute yon koup nan liy kòd nan script nou an pou anrejistre presizyon an ki kapab lakòz:

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

Yo rele vèsyon ki koresponn lan nan script la train_universal.py (li se yon ti kras pi malen pase sa ki ekri pi wo a, men pa anpil). Script sa a ka kouri tou de lokalman ak sou yon resous enfòmatik aleka.

Pou kouri li nan Azure ML soti nan VS Code, ou bezwen fè bagay sa yo:

  1. Asire w ke ekstansyon Azure a konekte ak abònman ou. Chwazi icon Azure nan meni ki sou bò gòch la. Si ou pa konekte, yon notifikasyon ap parèt nan kwen ki pi ba dwat (tankou sa a), lè w klike sou ki ou ka antre nan navigatè a. Ou ka klike tou Ctrl-Maj-P pou rele liy lòd VS Code, epi tape Azure konekte.

  2. Apre sa, nan seksyon Azure (ikòn sou bò gòch la), jwenn seksyon an MACHIN APRANN:

Ki jan yo simonte laperèz epi kòmanse itilize Azure Machine Learning
Isit la ou ta dwe wè diferan gwoup objè andedan espas travay la: resous enfòmatik, eksperyans, elatriye.

  1. Ale nan lis la nan dosye, dwa klike sou script la train_universal.py epi chwazi Azure ML: Kouri kòm eksperyans nan Azure.

Ki jan yo simonte laperèz epi kòmanse itilize Azure Machine Learning

  1. Sa a pral swiv pa yon seri dyalòg nan zòn nan liy lòd nan Kòd VS: konfime abònman an ak espas travay Azure ML w ap itilize, epi chwazi Kreye nouvo eksperyans:

Ki jan yo simonte laperèz epi kòmanse itilize Azure Machine Learning
Ki jan yo simonte laperèz epi kòmanse itilize Azure Machine Learning
Ki jan yo simonte laperèz epi kòmanse itilize Azure Machine Learning

  1. Chwazi pou kreye yon nouvo resous kalkil Kreye yon nouvo kalkil:

    • Kalkile detèmine resous enfòmatik sou ki fòmasyon pral fèt. Ou ka chwazi yon òdinatè lokal, oswa yon gwoup nwaj AmlCompute. Mwen rekòmande pou kreye yon grap évolutive de machin STANDARD_DS3_v2, ak yon kantite minimòm machin nan 0 (ak yon maksimòm de 1 oswa plis, tou depann de apeti ou). Sa a ka fè atravè koòdone nan VS Kòd, oswa deja nan ML Portal.

    Ki jan yo simonte laperèz epi kòmanse itilize Azure Machine Learning

  2. Apre sa, ou bezwen chwazi yon konfigirasyon Konfigirasyon Konfigirasyon, ki defini paramèt veso ki te kreye pou fòmasyon, an patikilye, tout bibliyotèk ki nesesè yo. Nan ka nou an, depi nou ap itilize Scikit Learn, nou chwazi SkLearn, ak Lè sa a jis konfime lis pwopoze a nan bibliyotèk pa peze Antre. Si w itilize nenpòt bibliyotèk adisyonèl, yo dwe espesifye yo isit la.

    Ki jan yo simonte laperèz epi kòmanse itilize Azure Machine Learning
    Ki jan yo simonte laperèz epi kòmanse itilize Azure Machine Learning

  3. Sa a pral louvri yon fenèt ak yon dosye JSON ki dekri eksperyans la. Nan li, ou ka korije kèk paramèt - pou egzanp, non an nan eksperyans la. Apre sa klike sou lyen an Soumèt Eksperyans dwa anndan dosye sa a:

Ki jan yo simonte laperèz epi kòmanse itilize Azure Machine Learning

  1. Apre w fin soumèt yon eksperyans avèk siksè atravè VS Code, sou bò dwat zòn notifikasyon an, w ap wè yon lyen pou Azure ML Portal, kote ou ka swiv estati a ak rezilta eksperyans lan.

Ki jan yo simonte laperèz epi kòmanse itilize Azure Machine Learning
Imedyatman, ou ka toujou jwenn li nan seksyon an Eksperyans Azure ML Portal, oswa nan seksyon an Ble aprantisaj machin nan lis eksperyans yo:

Ki jan yo simonte laperèz epi kòmanse itilize Azure Machine Learning

  1. Si apre sa ou fè kèk koreksyon nan kòd la oswa chanje paramèt yo, rekòmanse eksperyans la pral pi vit ak pi fasil. Lè w klike sou yon dosye, w ap wè yon nouvo atik nan meni an Repete dènye kouri - jis chwazi li, epi eksperyans la pral imedyatman kòmanse:

Ki jan yo simonte laperèz epi kòmanse itilize Azure Machine Learning
Ou ka toujou jwenn rezilta mezi yo nan tout lanse sou Azure ML Portal, pa gen okenn bezwen ekri yo.

Koulye a, ou konnen ke fè eksperyans ak Azure ML se senp epi san doulè, epi ou jwenn yon kantite bèl benefis nan fè sa.

Men, ou ka wè tou dezavantaj yo. Pou egzanp, li te pran anpil tan pou kouri script la. Natirèlman, anbalaj script la nan yon veso epi deplwaye li sou sèvè a pran tan. Si an menm tan an te koupe gwoup la nan yon gwosè 0 nœuds, li pral pran plis tan pou kòmanse machin vityèl la, ak tout bagay sa yo trè aparan lè nou fè eksperyans sou travay senp tankou MNIST, ki rezoud nan kèk segonn. . Sepandan, nan lavi reyèl, lè fòmasyon dire plizyè èdtan, oswa menm jou oswa semèn, tan adisyonèl sa a vin ensiyifyan, espesyalman kont background nan nan pèfòmans ki pi wo ke yon gwoup enfòmatik ka bay.

Ki sa ki nan pwochen?

Mwen espere ke apre ou fin li atik sa a, ou ka epi ou pral itilize Azure ML nan travay ou pou kouri scripts, jere resous enfòmatik, epi estoke rezilta santralman. Sepandan, Azure ML ka ba ou menm plis benefis!

Anndan espas travay la, ou ka estoke done, kidonk kreye yon depo santralize pou tout travay ou, ki fasil pou jwenn aksè. Anplis de sa, ou ka fè eksperyans pa soti nan Visual Studio Code, men lè l sèvi avèk API a - sa a ka itil espesyalman si ou bezwen fè optimize hyperparameter epi ou bezwen kouri script la anpil fwa ak paramèt diferan. Anplis, teknoloji espesyal bati nan Azure ML ipè kondwi, ki pèmèt ou fè rechèch plis difisil ak optimize nan hyperparameters. Mwen pral pale sou posiblite sa yo nan pwochen pòs mwen an.

Resous itil

Pou aprann plis sou Azure ML, ou ka jwenn kou Microsoft Learn sa yo itil:

Sous: www.habr.com

Add nouvo kòmantè