Apprendimento automatico con Apache Spark

Apache Spark in Azure Synapse Analytics consente l'apprendimento automatico con Big Data, offrendo la possibilità di ottenere informazioni dettagliate preziose da grandi quantità di dati strutturati, non strutturati e in rapida evoluzione.

Questa sezione include una panoramica e esercitazioni per i flussi di lavoro di Machine Learning, tra cui l'analisi esplorativa dei dati, la progettazione delle funzionalità, il training del modello, il punteggio del modello e la distribuzione.

Runtime di Synapse

Synapse Runtime è un ambiente curato ottimizzato per l'analisi scientifica dei dati e l'apprendimento automatico. Il runtime di Synapse offre una gamma di librerie open source e build più diffuse in Azure Machine Learning SDK per impostazione predefinita. Il runtime di Synapse include anche molte librerie esterne, tra cui PyTorch, Scikit-Learn, XGBoost e altro ancora.

Per altre informazioni sulle librerie disponibili e sulle versioni correlate, vedere il runtime di Azure Synapse Analytics pubblicato.

Analisi dei dati esplorativa

Quando si usa Apache Spark in Azure Synapse Analytics, sono disponibili diverse opzioni predefinite per visualizzare i dati, incluse le opzioni del grafico dei notebook di Synapse, l'accesso alle librerie open source più diffuse, ad esempio Seaborn e Matplotlib, nonché l'integrazione con Synapse SQL e Power BI.

Per altre informazioni sulle opzioni di visualizzazione dei dati e analisi dei dati, vedere l'articolo su come visualizzare i dati usando Azure Synapse Notebooks.

Progettazione delle caratteristiche

Per impostazione predefinita, il runtime di Synapse include un set di librerie comunemente usate per la progettazione delle funzionalità. Per set di dati di grandi dimensioni, è possibile usare Spark SQL, MLlib e Koalas per la progettazione delle funzionalità. Per set di dati più piccoli, librerie di terze parti come Numpy, Pandas e Scikit-learn forniscono anche metodi utili per questi scenari.

Eseguire il training dei modelli

Sono disponibili diverse opzioni per il training di modelli di Machine Learning con Azure Spark in Azure Synapse Analytics: Apache Spark MLlib, Azure Machine Learning e varie altre librerie open source.

Per altre informazioni sulle funzionalità di Machine Learning, vedere l'articolo su come eseguire il training dei modelli in Azure Synapse Analytics.

Spark e MLlib

Le funzionalità di calcolo distribuite in memoria rendono Spark uno strumento valido per l'esecuzione di algoritmi iterativi utilizzati in calcoli grafici e di Machine Learning. spark.mlfornisce un set uniforme di API di alto livello che consentono agli utenti di creare e ottimizzare le pipeline di Machine Learning. Per altre informazioni su spark.ml, è possibile visitare la guida alla programmazione di Apache Spark ML.

Ml automatizzato di Azure Machine Learning

Machine Learning automatizzato di Machine Learning (Machine Learning automatizzato ) consente di automatizzare il processo di sviluppo di modelli di Machine Learning. Consente a data scientist, analisti e sviluppatori di creare modelli di Machine Learning con scalabilità, efficienza e produttività elevate, garantendo al tempo stesso la qualità del modello. I componenti per l'esecuzione di Azure Machine Learning automated ML SDK sono integrati direttamente nel runtime di 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 Archiviazione Gen2 (ADLSg2). Da qui è possibile accedere facilmente all'esperienza AutoML tramite Azure Machine Learning (AzureML). Altre informazioni su questa soluzione alternativa sono disponibili qui.

Librerie open source

Ogni pool di Apache Spark in Azure Synapse Analytics include un set di librerie di Machine Learning precaricate e diffuse. Alcune delle librerie di Machine Learning pertinenti incluse per impostazione predefinita includono:

  • Scikit-learn è una delle librerie di Machine Learning a nodo singolo più diffuse per algoritmi di Machine Learning classici. Scikit-learn supporta la maggior parte degli algoritmi di apprendimento supervisionati e non supervisionati e può essere usato anche per il data mining e l'analisi dei dati.

  • XGBoost è una popolare libreria di Machine Learning che contiene algoritmi ottimizzati per il training di alberi delle decisioni e foreste casuali.

  • PyTorch & TensorFlow sono potenti librerie di Deep Learning python. All'interno di un pool di Apache Spark in Azure Synapse Analytics, è possibile usare queste librerie per creare modelli a computer singolo impostando il numero di executor nel pool su zero. Anche se Apache Spark non funziona in questa configurazione, è un modo semplice ed economico per creare modelli a computer singolo.

Tenere traccia dello sviluppo di modelli

MLFlow è una libreria open source per la gestione del ciclo di vita degli esperimenti di Machine Learning. MLFlow Tracking è un componente di MLflow che registra e tiene traccia delle metriche di esecuzione del training e degli artefatti del modello. Per altre informazioni su come usare MLFlow Tracking tramite Azure Synapse Analytics e Azure Machine Learning, vedere questa esercitazione su come usare MLFlow.

Assegnazione dei punteggi del modello

L'assegnazione dei punteggi del modello o l'inferenza è la fase in cui viene usato un modello per eseguire stime. Per l'assegnazione dei punteggi dei modelli con SparkML o MLLib, è possibile sfruttare i metodi Spark nativi per eseguire l'inferenza direttamente in un dataframe Spark. Per altre librerie e tipi di modello open source, è anche possibile creare una funzione definita dall'utente Spark per aumentare il numero di istanze di inferenza in set di dati di grandi dimensioni. Per i set di dati più piccoli, è anche possibile usare i metodi di inferenza del modello nativo forniti dalla libreria.

Registrare e gestire i modelli

La registrazione di un modello consente di archiviare, versione e tenere traccia dei metadati relativi ai modelli nell'area di lavoro. Dopo aver completato il training del modello, è possibile registrare il modello nel Registro modelli di Azure Machine Learning. Dopo la registrazione, i modelli ONNX possono essere usati anche per arricchire i dati archiviati in pool SQL dedicati.

Passaggi successivi

Per iniziare a usare Machine Learning in Azure Synapse Analytics, vedere le esercitazioni seguenti: