Funzionalità di Machine Learning in Azure Synapse Analytics
Azure Synapse Analytics offre diverse funzionalità di Machine Learning. Questo articolo presenta una panoramica dell'applicazione di funzionalità di Machine Learning nel contesto di Azure Synapse.
In questa panoramica vengono illustrate le diverse funzionalità di Synapse correlate al Machine Learning, dalla prospettiva di un processo di data science.
Probabilmente si ha già familiarità con l'aspetto di un tipico processo di data science. Si tratta di un processo noto, che viene adottato nella maggior parte dei progetti di Machine Learning.
A un livello generale, il processo include i passaggi seguenti:
- Riconoscimenti aziendali (non descritte in questo articolo)
- Acquisizione e comprensione dei dati
- Modellazione
- Distribuzione di modelli e assegnazione di punteggi
Questo articolo descrive le funzionalità di Machine Learning di Azure Synapse in diversi motori di analisi, dal punto di vista di un processo di data science. Per ogni passaggio del processo di data science, è riportato un riepilogo delle funzionalità di Azure Synapse che possono essere utili.
Acquisizione e comprensione dei dati
La maggior parte dei progetti di Machine Learning presuppone l'esecuzione di passaggi prestabiliti, uno dei quali consiste nell'accesso e nella comprensione dei dati.
Origine dati e pipeline
Grazie ad Azure Data Factory, un componente integrato in modo nativo di Azure Synapse, è disponibile un potente set di strumenti per l'inserimento dati e le pipeline di orchestrazione dei dati. Questo set consente di creare facilmente pipeline di dati per accedere ai dati e trasformarli in un formato che può essere utilizzato per il Machine Learning. In questo articolo sono disponibili altre informazioni sulle pipeline di dati in Synapse.
Preparazione ed esplorazione/visualizzazione dei dati
Una parte importante del processo di Machine Learning consiste nel comprendere i dati tramite l'esplorazione e le visualizzazioni.
A seconda della posizione di archiviazione dei dati, Synapse offre un set di strumenti diversi per esplorarli e prepararli per l'analisi e il Machine Learning. Uno dei modi più rapidi per iniziare l'esplorazione dei dati consiste nell'uso di pool di Apache Spark o di pool SQL serverless direttamente sui dati presenti nel data lake.
Apache Spark per Azure Synapse offre funzionalità per la trasformazione, la preparazione e l'esplorazione dei dati su larga scala. Per i pool di Spark sono disponibili strumenti quali PySpark/Python, Scala e .NET per l'elaborazione dei dati su larga scala. Grazie alle potenti librerie di visualizzazione, è possibile migliorare l'esperienza di esplorazione per una più facile comprensione dei dati. Altre informazioni su come esplorare e visualizzare i dati in Synapse usando Spark.
I pool SQL serverless offrono la possibilità di esplorare i dati usando T-SQL direttamente sul data lake. Per questi pool SQL serverless sono inoltre disponibili alcune visualizzazioni predefinite in Synapse Studio. Vedere altre informazioni su come esplorare i dati con i pool SQL serverless.
Modellazione
In Azure Synapse è possibile eseguire il training di modelli di Machine Learning nei pool di Apache Spark con strumenti quali PySpark/Python, Scala o .NET.
Eseguire il training dei modelli nei pool di Spark con MLlib
È possibile eseguire il training dei modelli di Machine Learning con il supporto di diversi algoritmi e librerie. Spark MLlib offre algoritmi di Machine Learning scalabili che consentono di risolvere i problemi di Machine Learning più classici. Per un'esercitazione su come eseguire il training di un modello usando MLlib in Synapse, vedere Creare un'app di apprendimento automatico con Apache Spark MLlib e Azure Synapse Analytics.
Oltre a MLlib, per lo sviluppo di modelli è possibile usare le librerie più diffuse, ad esempio Scikit Learn. Per informazioni dettagliate su come installare le librerie nei pool di Spark in Synapse, vedere Gestire le librerie per Apache Spark in Azure Synapse Analytics.
Eseguire il training dei modelli con il Machine Learning automatizzato di Azure
Un altro modo per eseguire il training dei modelli di Machine Learning, che non richiede particolari conoscenze delle tecnologie di Machine Learning, è offerto dall'uso del Machine Learning automatizzato. Il Machine Learning automatizzato è una funzionalità che esegue automaticamente il training di un set di modelli di Machine Learning e consente all'utente di selezionare il modello migliore in base a metriche specifiche. Grazie a una perfetta integrazione con Azure Machine Learning da Azure Synapse Notebooks, gli utenti possono sfruttare facilmente il Machine Learning automatizzato in Synapse con l'autenticazione passthrough di Microsoft Entra. Con questo tipo di autenticazione è sufficiente puntare all'area di lavoro di Azure Machine Learning senza dover immettere credenziali. L’esercitazione Eseguire un modello in Python sul Machine Learning automatizzato viene descritto come eseguire il training di modelli usando il Machine Learning automatizzato di Azure nei pool di Spark in Synapse.
Avviso
- A partire dal 29 settembre 2023, Azure Synapse interromperà il supporto ufficiale per i runtime di Spark 2.4. Dopo il 29 settembre 2023, non verranno affrontati ticket di supporto correlati a Spark 2.4. Non sarà disponibile alcuna pipeline di versione per correzioni di bug o di sicurezza per Spark 2.4. L'uso di Spark 2.4 dopo la data di scadenza del supporto viene intrapresa a proprio rischio. Sconsigliamo vivamente il suo uso continuo a causa di potenziali problemi di sicurezza e funzionalità.
- Come parte del processo di deprecazione per Apache Spark 2.4, si vuole segnalare che AutoML in Azure Synapse Analytics sarà deprecato. Sono incluse sia l'interfaccia a basso codice che le API usate per creare versioni di valutazione autoML tramite codice.
- Si noti che la funzionalità AutoML era disponibile esclusivamente tramite il runtime di Spark 2.4.
- Per i clienti che vogliono continuare a sfruttare le funzionalità autoML, è consigliabile salvare i dati nell'account Azure Data Lake Storage Gen2 (ADLSg2). Da qui è possibile accedere facilmente all'esperienza AutoML tramite Azure Machine Learning (AzureML). Altre informazioni su questa soluzione alternativa sono disponibili qui.
Distribuzione di modelli e assegnazione di punteggi
I modelli che sono stati sottoposti a training con Azure Synapse o con altre tecnologie possono essere usati facilmente per l'assegnazione di punteggi. Attualmente in Synapse sono disponibili due modi per eseguire l'assegnazione di punteggi in batch.
È possibile usare la funzione TSQL PREDICT nei pool di Synapse SQL per eseguire stime direttamente nella posizione in cui si trovano i dati. Questa funzione potente e scalabile consente di arricchire i dati senza spostarli dal data warehouse. In Synapse Studio è stata introdotta una nuova esperienza guidata per i modelli di Machine Learning in cui è possibile distribuire un modello ONNX dal registro dei modelli di Azure Machine Learning nei pool di Synapse SQL per l'assegnazione di punteggi in batch tramite la funzione PREDICT.
Un'altra opzione per l'assegnazione di punteggi in batch ai modelli di Machine Learning in Azure Synapse consiste nell'uso di pool di Apache Spark per Azure Synapse. A seconda delle librerie usate per il training dei modelli, per l'assegnazione di punteggi in batch è possibile usare un'esperienza basata su codice.
SynapseML
SynapseML (noto in precedenza come MMLSpark) è una libreria open source che semplifica la creazione di pipeline di Machine Learning (ML) estremamente scalabili. Si tratta di un ecosistema di strumenti usati per espandere il framework Apache Spark in diverse nuove direzioni. SynapseML unifica diversi framework di apprendimento automatico esistenti e nuovi algoritmi Microsoft in un'unica API scalabile utilizzabile in Python, R, Scala, .NET e Java. Per altre informazioni, vedere le funzionalità principali di SynapseML.