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?
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à:
Clona u repository https://github.com/CloudAdvocacy/AzureMLStarter - cuntene un codice demo per a furmazione di un mudellu di ricunniscenza di numeri scritti a manu nantu à u dataset MNIST.
Apertura u repositoriu clonatu in Visual Studio Code.
Leghjite puru!
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.
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:
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.
Dopu quì, in a sezione Azure (icona à manca), truvate a sezione IMPARÀ À MACHINE:
Quì duvete vede diversi gruppi d'uggetti in u spaziu di travagliu: risorse informatiche, esperimenti, etc.
Andà à a lista di i schedari, cliccate dritta nant'à u script train_universal.py è selezziunate Azure ML: Eseguite cum'è esperimentu in Azure.
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:
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.
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ì.
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:
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.
In seguitu, pudete sempre truvà in a rùbbrica EsperimentiPortale Azure ML, o in a rùbbrica Azure Machine Learning in a lista di esperimenti:
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:
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: