Cumu superà a paura è cumincià à aduprà Azure Machine Learning

Cunnoscu parechji Data Scientists - è prubabilmente sò unu di elli stessu - chì travaglianu nantu à e macchine GPU, lucali o virtuali, situate in u nuvulu, sia per mezu di un Jupyter Notebook, sia per mezu di un ambiente di sviluppu Python. Travagliendu per 2 anni cum'è sviluppatore espertu AI / ML, aghju fattu esattamente questu, mentre preparava dati nantu à un servitore regulare o stazione di travagliu, è eseguisce a furmazione nantu à una macchina virtuale cù una GPU in Azure.

Di sicuru, avemu tutti intesu parlà Azure Machine Learning - una piattaforma nuvola speciale per l'apprendimentu machine. Tuttavia, dopu un primu sguardu à articuli introduttori, Sembra chì Azure ML hà da creà più prublemi per voi di ciò chì risolve. Per esempiu, in u tutorialu citatu sopra, a furmazione nantu à Azure ML hè lanciata da un Jupyter Notebook, mentre chì u script di furmazione stessu hè prupostu per esse creatu è editatu cum'è un schedariu di testu in una di e cellule - mentre ùn usa micca l'autocumplementu, a sintassi. evidenziazione, è altri vantaghji di un ambiente di sviluppu nurmale. Per quessa, ùn avemu micca utilizatu seriamente Azure ML in u nostru travagliu per un bellu pezzu.

Tuttavia, aghju scupertu recentemente un modu per cumincià à aduprà Azure ML in modu efficace in u mo travagliu! Interessatu in i dettagli?

Cumu superà a paura è cumincià à aduprà Azure Machine Learning

U sicretu principale hè Estensione Visual Studio Code per Azure ML. Permette di sviluppà scripts di furmazione ghjustu in VS Code, apprufittannu sanu di l'ambiente - è pudete ancu eseguisce u script in u locu è poi simpricimenti mandà à a furmazione in un cluster Azure ML cù pochi clicchi. Conveniente, ùn hè micca?

Facendu cusì, uttene i seguenti benefici da l'usu di Azure ML:

  • Pudete travaglià a maiò parte di u tempu in u locu in a vostra macchina in un IDE convenientu, è aduprà GPU solu per a furmazione di mudelli. À u listessu tempu, a piscina di risorse di furmazione pò aghjustà automaticamente à a carica necessaria, è mettendu u numeru minimu di nodi à 0, pudete inizià automaticamente a macchina virtuale "à dumanda" in presenza di attività di furmazione.
  • vi pò almacenà tutti i risultati di l'apprendimentu in un locu, cumpresi i metrichi ottenuti è i mudelli resultanti - ùn ci hè bisognu di vene cun qualchì sistema o ordine per almacenà tutti i risultati.
  • Cusì hà Parechje persone ponu travaglià nant'à u listessu prughjettu - ponu aduprà u listessu cluster di computing, tutti l'esperimenti saranu in fila, è ponu ancu vede i risultati di l'esperimenti di l'altri. Un tali scenariu hè utilizendu Azure ML in l'insignamentu di Deep Learningquandu invece di dà à ogni studiente una macchina virtuale cù una GPU, pudete creà un cluster chì serà utilizatu da tutti cintrali. Inoltre, un tavulu generale di risultati cù a precisione di u mudellu pò serve cum'è un bonu elementu cumpetitivu.
  • Cù Azure ML, pudete fà facilmente una seria di esperimenti, per esempiu, per ottimisazione di iperparametri - questu pò esse fattu cù uni pochi di linee di codice, ùn ci hè bisognu di fà una seria di esperimenti manualmente.

Spergu chì vi cunvince à pruvà Azure ML! Eccu cumu per cumincià:

Azure ML Workspace è Azure ML Portal

Azure ML hè urganizatu intornu à u cuncettu zona di travagliu - spaziu di travagliu. I dati ponu esse guardati in u spaziu di travagliu, l'esperimenti sò mandati per a furmazione, i risultati di furmazione sò ancu guardati quì - i metrichi è mudelli resultanti. Pudete vede ciò chì hè in u spaziu di travagliu attraversu Portale Azure ML - è da quì pudete fà parechje operazioni, chì varieghja da a carica di dati à l'esperimenti di monitorizazione è a implementazione di mudelli.

Pudete creà un spaziu di travagliu attraversu l'interfaccia web Portale Azure (vede para. struzzioni passu à passu), o utilizendu a linea di cummanda Azure CLI (instructions):

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

Ci sò ancu assuciati cù u spaziu di travagliu risorse informatica (Calcola). Una volta avete creatu un script per furmà u mudellu, pudete mandate l'esperimentu per eseguisce à u spaziu di travagliu, è specificà u scopu di calculà - in questu casu, u script serà imballatu, eseguitu in l'ambiente di l'informatica desideratu, è dopu tutti i risultati di l'esperimentu seranu salvati in u spaziu di travagliu per più analisi è usu.

Scrittura di apprendimentu per MNIST

Cunsiderate u prublema classicu ricunniscenza di numeri scritti a manu usendu u dataset MNIST. In listessu modu, in u futuru, pudete eseguisce qualsiasi di i vostri script di furmazione.

Ci hè un script in u nostru repository train_local.py, chì entremu u mudellu di regressione lineale più simplice utilizendu a biblioteca SkLearn. Di sicuru, aghju capitu chì questu ùn hè micca u megliu modu per risolve u prublema - l'utilizamu per esempiu, cum'è u più simplice.

U script prima scarica i dati MNIST da OpenML è poi usa a classa LogisticRegression per furmà u mudellu, è poi stampà a precisione risultatu:

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)

Pudete eseguisce u script in u vostru urdinatore è uttene u risultatu in un paru di seconde.

Eseguite u script in Azure ML

Se eseguimu u script di furmazione attraversu Azure ML, avemu dui vantaghji principali:

  • Esecuzione di furmazione nantu à una risorsa informatica arbitraria, chì, in regula, hè più produtiva chì l'urdinatore lucale. À u listessu tempu, l'Azure ML stessu hà da piglià a cura di imballà u nostru script cù tutti i fugliali da u repertoriu attuale in un containeru docker, installendu e dipendenze necessarie, è mandendu per eseguisce.
  • Scrivite i risultati in un unicu registru in un spaziu di travagliu Azure ML. Per prufittà di sta funzione, avemu bisognu di aghjunghje un paru di linee di codice à u nostru script per registrà a precisione resultanti:

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

A versione currispundenti di u script hè chjamatu train_universal.py (hè un pocu più astutu di ciò chì hè scrittu sopra, ma micca assai). Stu script pò esse eseguitu in u locu è nantu à una risorsa informatica remota.

Per eseguisce in Azure ML da VS Code, avete bisognu di fà i seguenti:

  1. Assicuratevi chì l'Extension Azure hè cunnessa à u vostru abbonamentu. Selezziunate l'icona Azure da u menù à manca. Se ùn site micca cunnessu, una notificazione apparirà in l'angulu in basso à destra (cum'è què), clicchendu nantu à quale pudete entre in u navigatore. Pudete ancu cliccà Ctrl-Maiusc-P per chjamà a linea di cumanda VS Code, è tippu Azure Sign In.

  2. Dopu quì, in a sezione Azure (icona à manca), truvate a sezione IMPARÀ À MACHINE:

Cumu superà a paura è cumincià à aduprà Azure Machine Learning
Quì duvete vede diversi gruppi d'uggetti in u spaziu di travagliu: risorse informatiche, esperimenti, etc.

  1. Andà à a lista di i schedari, cliccate dritta nant'à u script train_universal.py è selezziunate Azure ML: Eseguite cum'è esperimentu in Azure.

Cumu superà a paura è cumincià à aduprà Azure Machine Learning

  1. Questu serà seguitu da una seria di dialoghi in l'area di a linea di cummanda di VS Code: cunfirmate l'abbonamentu è l'area di travagliu Azure ML chì site aduprate, è selezziunate Crea un novu esperimentu:

Cumu superà a paura è cumincià à aduprà Azure Machine Learning
Cumu superà a paura è cumincià à aduprà Azure Machine Learning
Cumu superà a paura è cumincià à aduprà Azure Machine Learning

  1. Sceglite di creà una nova risorsa di calculu Crea un novu calculu:

    • Calcola determina a risorsa informatica nantu à quale a furmazione serà fatta. Pudete sceglie un urdinatore lucale, o un cluster nuvola AmlCompute. I ricumandemu di creà un cluster scalable di macchine STANDARD_DS3_v2, cù un numeru minimu di machini di 0 (è un massimu di 1 o più, secondu i vostri appetiti). Stu pò esse fattu attraversu l 'interfaccia VS Code, o nanzu à traversu Portal ML.

    Cumu superà a paura è cumincià à aduprà Azure Machine Learning

  2. Dopu, avete bisognu di selezziunà una cunfigurazione Cunfigurazione di u calculu, chì definisce i paràmetri di u cuntinuu creatu per a furmazione, in particulare, tutte e biblioteche necessarie. In u nostru casu, postu chì avemu aduprà Scikit Learn, selezziunate SkLearn, è dopu basta cunfirmà a lista pruposta di biblioteche pressu Enter. Se aduprate biblioteche supplementari, deve esse specificate quì.

    Cumu superà a paura è cumincià à aduprà Azure Machine Learning
    Cumu superà a paura è cumincià à aduprà Azure Machine Learning

  3. Questu apre una finestra cù un schedariu JSON chì descrive l'esperimentu. In questu, pudete curregge parechji paràmetri - per esempiu, u nome di l'esperimentu. Dopu chì cliccate nant'à u ligame Mandate l'esperimentu ghjustu in stu schedariu:

Cumu superà a paura è cumincià à aduprà Azure Machine Learning

  1. Dopu avè sottumessu successu un esperimentu attraversu VS Code, à u latu drittu di l'area di notificazione, vi vede un ligame per Portale Azure ML, induve pudete seguità u statutu è i risultati di l'esperimentu.

Cumu superà a paura è cumincià à aduprà Azure Machine Learning
In seguitu, pudete sempre truvà in a rùbbrica Esperimenti Portale Azure ML, o in a rùbbrica Azure Machine Learning in a lista di esperimenti:

Cumu superà a paura è cumincià à aduprà Azure Machine Learning

  1. Se dopu avete fattu alcune currezzione à u codice o cambiatu i paràmetri, riavvia l'esperimentu serà assai più veloce è più faciule. Facendu clic destro nantu à un schedariu, vi vede un novu articulu di menu Repetite l'ultima corsa - basta à selezziunate, è l'esperimentu inizierà immediatamente:

Cumu superà a paura è cumincià à aduprà Azure Machine Learning
Pudete sempre truvà i risultati di e metriche da tutti i lanciari nantu à u Portal Azure ML, ùn ci hè bisognu di scrive.

Avà sapete chì eseguisce esperimenti cù Azure ML hè simplice è indolore, è avete una quantità di boni benefici in questu.

Ma pudete ancu vede i disadvantages. Per esempiu, hà pigliatu significativamente più longu per eseguisce u script. Di sicuru, imballà u script in un containeru è implementà nantu à u servitore piglia tempu. Se à u stessu tempu u cluster hè statu tagliatu à una dimensione di nodi 0, ci hà da piglià ancu più tempu per inizià a macchina virtuale, è tuttu questu hè assai notevuli quandu sperimentamu in tarei simplici cum'è MNIST, chì sò risolti in pochi seconde. . Tuttavia, in a vita reale, quandu a furmazione dura parechje ore, o ancu ghjorni o settimane, stu tempu supplementu diventa insignificante, soprattuttu in u sfondate di u rendiment assai più altu chì un cluster di computing pò furnisce.

Chi c'è vicinu?

Spergu chì dopu avè lettu stu articulu, pudete è aduprà Azure ML in u vostru travagliu per eseguisce scripts, gestione risorse di l'informatica, è almacenà i risultati cintrali. Tuttavia, Azure ML pò dà ancu più benefici!

Dentru u spaziu di travagliu, pudete almacenà e dati, creendu cusì un repositoriu centralizatu per tutte e vostre attività, chì hè faciule d'accessu. Inoltre, pudete eseguisce esperimenti micca da Visual Studio Code, ma utilizendu l'API - questu pò esse soprattuttu utile si avete bisognu di eseguisce l'ottimisazione di iperparametri è avete bisognu di eseguisce u script parechje volte cù diversi parametri. Inoltre, a tecnulugia speciale hè integrata in Azure ML iper drive, chì vi permette di fà una ricerca più complicata è ottimisazione di iperparametri. Parlaraghju di sti pussibulità in u mo prossimu post.

Risorse utili

Per sapè di più nantu à Azure ML, pudete truvà i seguenti corsi Microsoft Learn utili:

Source: www.habr.com

Add a comment