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. In alternativa, aprire i notebook in VS Code, sul Web o sul desktop.
Visualizzazione di metriche di esecuzione: per analizzare e ottimizzare gli esperimenti con la visualizzazione.
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.
Azure Machine Learning include strumenti che consentono di creare applicazioni di IA generativa basate su modelli linguistici di grandi dimensioni. La soluzione include un catalogo modelli, un prompt flow e una suite di strumenti per semplificare il ciclo di sviluppo delle applicazioni di intelligenza artificiale.
Sia lo studio di Azure Machine Learning sia Studio AI della piattaforma Azure consentono di usare modelli linguistici di grandi dimensioni. Usare questa guida per decidere quale versione dello studio usare.
Catalogo modelli
Il catalogo modelli nello studio di Azure Machine Learning è l'hub che consente di individuare e usare un'ampia gamma di modelli per la creazione di applicazioni di intelligenza artificiale generativa. Il catalogo modelli include centinaia di modelli di diversi provider, tra cui il servizio Azure OpenAI, Mistral, Meta, Cohere, Nvidia, Hugging Face, nonché alcuni modelli sottoposti a training da Microsoft. I modelli dei provider diversi da Microsoft sono prodotti non Microsoft, come definito nelle Condizioni per i prodotti Microsoft e sono soggetti alle condizioni fornite con il modello.
Prompt flow
Prompt flow di Azure Machine Learning è uno strumento di sviluppo progettato per semplificare l'intero ciclo di sviluppo delle applicazioni di IA basate su Large Language Model (LLM). Prompt flow offre una soluzione completa che semplifica il processo di creazione di prototipi, la sperimentazione, l'iterazione e la distribuzione delle applicazioni di intelligenza artificiale.
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.
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.
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.
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:
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.
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.
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:
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.
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.
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.
Gestire l'inserimento e la preparazione dei dati, il training e la distribuzione di modelli e il monitoraggio delle soluzioni di apprendimento automatico con Python, Azure Machine Learning e MLflow.