Cosa è Azure Machine Learning Service
Azure machine learning service è un servizio cloud che ci permette di sviluppare e distribuire modelli di Machine Learning.
Questa definizione, per quanto banale possa sembrare, non è da dare per scontata. Infatti lo sforzo che sta facendo Microsoft sul mondo della AI è assolutamente importante
Questo per gli appassionati come me è fonte di motivazione e di entusiasmo.
Inizio l’articolo con una definizione cercando cosi di dare spazio anche ai meno “esperti”.
Cosa è l’apprendimento automatico
E’ una tecnica scientifica dei dati che permette ai computer di utilizzare dei dati esistenti per prevedere dei comportamenti o delle tendenze o anche degli eventi futuri. Questo vuole dire che i computer senza essere continuamente programmati dall’uomo, possono, utilizzando dei particolari algoritmi, apprendere delle cose. Ne consegue che i computer possono avere intelligenza propria.
L’ambiente di Azure Machine Learning Service
Parola d’ordine Cloud quindi azure. Questo ci permette una vastità di strumenti impressionante e ci da la possibilità inoltre di ragionare su vasta scala.
Come vediamo dall’immagine sopra le operazione di gestione del nostro modello percorrono tre fasi solitamente:
La preparazione: è il momento in cui prepariamo i nostri dataset. Per fare questo Microsoft ci mette a disposzione una marea di tecnologie open source, permettendoci di utilizzare migliaia di pacchetit python con i componenti di apprendimento di Tensorflow ad esempio oppure di scikit-learn.
L’esperimento: è la parte in cui strumenti avanzati come i notebook di jupyter o ppure Visual Studio Code AI semplificano tutto il processo di costruzione del modello aiutandoci nell’interattività dei dati, nella loro trasformazione ed infine nello sviluppo e il test del modello elaborato.
Col mondo Azure non possiamo che essere poi agevolati in quello che è l’automatizzazione dei processi. In questo caso il processo riguarda la generazione e lìottimizzazione dei modelli, per rendere efficente e accurata la produzione di modelli accurati.
Il punto di forza rimane la scalabilità. Chiaramente ci viene permesso di eseguire il training del modello anche in locale per poi scalare orizzontalmente su azure. Questo ci viene permesso grazie ai batch per AI e grazie agli strumenti di ottimizzazione dei parametri hyper avanzati
Il Deploy: Non poteva mancare Docker! Ebbane potremo distribuire il nostro modello in un container per Azure o nel servizio Kubernetes di Azure. Possiamo anche non utilizzare un cloud container e distribuircelo in locale, se volessimo.
I Componenti di apprendimento automatico
Per avere un modello in ordine, potremmo ad esempio utilizzare Azure Machine Learning che ci può generare un modello ottimizzato e pronto per essere usato. Oppure potremmo utilizzare l’SDK di Azure Machine Learning per python, assieme ai pacchetti appunto di python. Attraverso i pacchetti open source possiamo infatti creare modelli di apprendimento molto precisi e avanzati.
Alcuni dei pacchetti sono elencati qui sotto:
Azure Container e Kubernetes di Azure
Successivamente il nostro modello necessita di essere distribuito e qui entra in gioco Docker. Questo ci permette di poter gestire comodamente i vari ambienti di sviluppo.
Diventa quindi il momento della gestione dei modelli distribuiti. Qui entra in gioco il portale di Azure o l’estensione per riga di comando di Azure Machine Learning. Così facendo controliamo metriche del modello e giochiamo tenendo traccia di tutti gli esperimenti fatti col modello.
Ma la domanda che sorge spontanea è:
Quali sono le differenze tra il servizio Azure Machine Learning e Azure Machine Learning Studio?
What’s the difference?
Azure Machine Learning Studio è un area di lavoro grafica, con degli elementi visivi che, selezionandoli e trascinandoli, ci aiutano a creare e distribuire soluzioni dei apprendimento automatico.
Azure Machine Learning Studio è adatto a sperimentare in maniera fast e easy, quelli che vengono definiti algoritmi predefiniti per le soluzioni dell’utente.
Azure Machine Learning Service è adatto agli ambienti dove è necessario il maggior controllo possibile sugli algoritmi di apprendimento, oppure si voglio usare libreire open source. E’ adatto al mondo Python.
Attenzione però
I modelli creati in Azure Machine Learning Studio non possono essere distribuiti né gestiti dal servizio Azure Machine Learning.