Che cos'è Azure Machine Learning?

Azure Machine Learning è un servizio cloud per l'accelerazione e la gestione del ciclo di vita di progetti di Machine Learning (ML). I professionisti, gli scienziati dei dati e i tecnici specializzati in ML possono usarlo nei flussi di lavoro quotidiani per eseguire il training e distribuire modelli e gestire le operazioni per l'apprendimento automatico (MLOps).

È possibile creare un modello in Machine Learning o usarne uno creato da una piattaforma open source, ad esempio PyTorch, TensorFlow o scikit-learn. Gli strumenti MLOps consentono di monitorare, ripetere il training e ridistribuire i modelli.

Suggerimento

Versione di valutazione gratuita. Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare. Provare la versione gratuita o a pagamento di Azure Machine Learning. Si ricevono così crediti da spendere in servizi di Azure. Quando i crediti saranno esauriti, sarà possibile mantenere l'account e usare i servizi di Azure gratuiti. Verranno applicati addebiti alla carta di credito solo se l'utente modifica le impostazioni e richiede esplicitamente l'addebito.

A chi è destinato Azure Machine Learning?

Machine Learning è destinato a singoli utenti e team che implementano operazioni per l'apprendimento automatico all'interno dell'organizzazione per portare i modelli di ML in un ambiente di produzione sicuro e controllabile.

Gli scienziati dei dati e i tecnici specializzati in ML possono usare strumenti per accelerare e automatizzare le aree di lavoro quotidiane. Gli sviluppatori di applicazioni possono usare strumenti per l'integrazione di modelli in applicazioni o servizi. Gli sviluppatori di piattaforme possono usare un solido set di strumenti, supportato da potenti API di Azure Resource Manager, per la creazione di strumenti avanzati di ML.

Le aziende che operano nel cloud di Microsoft Azure possono usare la sicurezza già nota e il controllo degli accessi in base al ruolo per l'infrastruttura. È possibile configurare un progetto per negare l'accesso ai dati protetti e selezionare le operazioni.

Produttività per tutti i membri del team

I progetti di ML richiedono spesso un team con un'ampia competenza impostata per la creazione e la gestione. Machine Learning include strumenti che consentono di:

  • Collaborare con il team tramite notebook condivisi, risorse di calcolo, elaborazione serverless, dati e ambienti

  • Sviluppare modelli che garantiscono equità e spiegabilità, tracciabilità e verificabilità per soddisfare i requisiti di conformità di derivazione e controllo

  • Distribuire modelli di ML in modo rapido e semplice su larga scala e gestirli in modo efficiente con MLOps

  • Eseguire carichi di lavoro di Machine Learning ovunque con governance, sicurezza e conformità predefinite

Strumenti multipiattaforma che soddisfano le esigenze

Chiunque in un team di ML può usare gli strumenti preferiti per svolgere il lavoro. Durante l'esecuzione di esperimenti rapidi, l'ottimizzazione degli iperparametri, la creazione di pipeline o la gestione di interferenze è possibile usare interfacce già note, tra cui:

Man mano che si affina il modello e si collabora con altri utenti nelle altre fasi del ciclo di sviluppo di Machine Learning, è possibile condividere e trovare asset, risorse e metriche per i progetti nell'interfaccia utente di Machine Learning Studio.

Studio

Machine Learning Studio offre diverse esperienze di creazione in base al tipo di progetto e al livello della precedente esperienza di ML senza dover installare nulla.

  • Notebook: consentono di scrivere ed eseguire il codice personalizzato nei server gestiti da Jupyter Notebook direttamente integrati nello Studio.

  • Visualizzazione di metriche di esecuzione: per analizzare e ottimizzare gli esperimenti con la visualizzazione.

    Screenshot that shows metrics for a training run.

  • Finestra di progettazione di Azure Machine Learning: usare la finestra di progettazione per eseguire il training e distribuire i modelli di ML senza scrivere codice. Trascinare e rilasciare i set di dati e i componenti per creare pipeline di ML.

  • Interfaccia utente di Machine Learning automatizzato: informazioni su come creare esperimenti di Machine Learning automatizzato con un'interfaccia di facile uso.

  • Etichettatura dei dati: usare l'etichettatura dei dati di Machine Learning per coordinare in modo efficiente i progetti di etichettatura di immagini o di etichettatura di testo.

Idoneità e sicurezza aziendale

Machine Learning si integra con la piattaforma cloud di Azure per aggiungere sicurezza ai progetti di ML.

Le integrazioni per la sicurezza includono:

  • Reti virtuali di Azure con gruppi di sicurezza di rete.
  • Azure Key Vault, dove è possibile salvare i segreti di sicurezza, ad esempio le informazioni di accesso per gli account di archiviazione.
  • Registro Azure Container configurato dietro una rete virtuale.

Per altre informazioni, vedere Esercitazione: Configurare un'area di lavoro sicura.

Integrazioni di Azure per soluzioni complete

Altre integrazioni con i servizi di Azure supportano un progetto di ML dall'inizio alla fine. che includono:

Importante

Azure Machine Learning non archivia né elabora i dati dei clienti all'esterno dell'area di distribuzione.

Flusso di lavoro del progetto di Machine Learning

In genere, i modelli vengono sviluppati come parti di un progetto con uno o più obiettivi. I progetti spesso coinvolgono più di una persona. Quando si sperimentano dati, algoritmi e modelli, lo sviluppo è iterativo.

Ciclo di vita del progetto

Il ciclo di vita del progetto può variare in base al progetto, ma spesso è simile a quello raffigurato in questo diagramma.

Diagram that shows the machine learning project lifecycle

Un'area di lavoro organizza un progetto e consente la collaborazione di molti utenti che lavorano per un obiettivo comune. Gli utenti in un'area di lavoro possono condividere facilmente i risultati delle esecuzioni dalla sperimentazione nell'interfaccia utente dello studio. In alternativa, possono usare asset con controllo delle versioni per processi come ambienti e riferimenti alle risorse di archiviazione.

Per altre informazioni, vedere Gestire aree di lavoro di Azure Machine Learning.

Quando un progetto è pronto per l'operazionalizzazione, è possibile usare il lavoro degli utenti in una pipeline di ML e attivato in base a una pianificazione o a una richiesta HTTPS.

È possibile distribuire modelli nella soluzione di inferenza gestita, sia per le distribuzioni in tempo reale che per le distribuzioni batch, astraendo la gestione dell'infrastruttura in genere obbligatoria per la distribuzione dei modelli.

Eseguire il training dei modelli

In Azure Machine Learning è possibile eseguire lo script di training nel cloud o creare un modello da zero. I clienti spesso usano modelli creati e sottoposti a training in framework open source per permetterne l'operazionalizzazione nel cloud.

Aperto e con interoperabilità

Gli scienziati dei dati possono usare modelli in Azure Machine Learning creati in framework Python comuni, tra cui:

  • PyTorch
  • TensorFlow
  • scikit-learn
  • XGBoost
  • LightGBM

Vengono supportati altre lingue e altri framework:

  • R
  • .NET

Per altre informazioni, vedere Integrazione open source con Azure Machine Learning.

Selezione automatizzata delle definizioni delle funzionalità e degli algoritmi

In un processo ripetitivo e dispendioso in termini di tempo, nel ML classico, gli scienziati dei dati sfruttano esperienza e intuizioni precedenti per selezionare la definizione delle funzionalità e l'algoritmo dei dati corretti per il training. ML automatizzato (AutoML) velocizza questo processo. È possibile usarlo tramite l'interfaccia utente di Machine Learning Studio o Python SDK.

Per altre informazioni, vedere Che cos'è Machine Learning automatizzato?.

Ottimizzazione degli iperparametri

L'ottimizzazione degli iperparametri può essere un'attività noiosa. Machine Learning può automatizzare questa attività per comandi con parametri arbitrari con poche modifiche alla definizione del processo. I risultati vengono visualizzati nello studio.

Per altre informazioni, vedere Ottimizzare gli iperparametri.

Training distribuito tra più nodi

L'efficienza del training per il Deep Learning e talvolta i processi di training di Machine Learning classici possono essere notevolmente migliorati tramite il training distribuito tra più nodi. I cluster di elaborazione di Azure Machine Learning e l'elaborazione serverless offrono le opzioni GPU più recenti.

Supportato tramite Kubernetes di Azure Machine Learning, cluster di elaborazione di Azure Machine Learning ed elaborazione serverless:

  • PyTorch
  • TensorFlow
  • MPI

È possibile usare la distribuzione MPI per Horovod o la logica a più nodi personalizzata. Apache Spark è supportato tramite l'ambiente di elaborazione Spark serverless il pool di Spark per Synapse collegato che usano cluster Spark di Azure Synapse Analytics.

Per altre informazioni, vedere Training distribuito con Azure Machine Learning.

Training perfettamente paralleli

Il ridimensionamento di un progetto di ML potrebbe richiedere il ridimensionamento del training del modello perfettamente parallelo. Questo criterio è comune per scenari come la previsione della domanda, in cui è possibile eseguire il training di un modello per molti negozi.

Distribuire i modelli

Per portare un modello in produzione, si distribuisce il modello. Gli endpoint gestiti di Azure Machine Learning astraggono l'infrastruttura necessaria per l'assegnazione dei punteggi dei modelli (inferenza) batch o in tempo reale (online).

Assegnazione dei punteggi (inferenza) in tempo reale e batch

L'assegnazione dei punteggi batch o inferenza batch comporta la chiamata di un endpoint con un riferimento ai dati. Gli endpoint batch eseguono processi in modo asincrono per elaborare i dati in parallelo nei cluster di elaborazione e archiviano i dati per un'ulteriore analisi.

L'assegnazione dei punteggi in tempo reale o inferenza online comporta la chiamata di un endpoint con una o più distribuzioni di modelli e la ricezione di una risposta quasi in tempo reale tramite HTTPS. Il traffico può essere suddiviso tra più distribuzioni per consentire di testare nuove versioni del modello deviando inizialmente una certa quantità di traffico e aumentando dopo aver stabilito confidenza nel nuovo modello.

Per altre informazioni, vedi:

MLOps: DevOps per Machine Learning

DevOps per i modelli di ML, spesso noto come MLOps, è un processo per lo sviluppo di modelli per ambienti di produzione. Il ciclo di vita di un modello dal training alla distribuzione deve essere controllabile se non riproducibile.

Ciclo di vita di un modello di ML

Diagram that shows the machine learning model lifecycle * MLOps.

Altre informazioni su MLOps in Azure Machine Learning.

Integrazioni che abilitano MLOPs

Machine Learning si basa sul ciclo di vita del modello. È possibile controllare il ciclo di vita del modello fino a un ambiente e un commit specifico.

Ecco alcune delle principali funzionalità che include l'abilitazione di MLOps:

  • Integrazione di git.
  • Integrazione di MLflow.
  • Pianificazione della pipeline di Machine Learning.
  • Integrazione di Griglia di eventi di Azure per trigger personalizzati.
  • Facilità d'uso con strumenti CI/CD come GitHub Actions o Azure DevOps.

Machine Learning include anche funzionalità per il monitoraggio e il controllo:

  • Artefatti del processo, ad esempio snapshot di codice, log e altri output.
  • Derivazione tra processi e asset, ad esempio contenitori, dati e risorse di calcolo.

Se si usa Apache Airflow, il pacchetto airflow-provider-azure-machinelearning è un provider che consente di inviare flussi di lavoro ad Azure Machine Learning da Apache AirFlow.

Passaggi successivi

Iniziare a usare Azure Machine Learning: