Che cos'è SynapseML?
SynapseML (noto in precedenza come MMLSpark) è una libreria open source che semplifica la creazione di pipeline di Machine Learning (ML) estremamente scalabili. SynapseML offre API semplici, componibili e distribuite per un'ampia gamma di diverse attività di apprendimento automatico, ad esempio analisi del testo, visione, rilevamento anomalie e molte altre. SynapseML è basato sul framework di elaborazione distribuito Apache Spark e condivide la stessa API della libreria SparkML/MLLib, consentendo di incorporare facilmente i modelli SynapseML nei flussi di lavoro apache Spark esistenti.
Con SynapseML è possibile creare sistemi scalabili e intelligenti per risolvere i problemi nei domini, ad esempio rilevamento anomalie, visione artificiale, Deep Learning, analisi del testo e altri. SynapseML può eseguire il training e valutare i modelli in cluster a nodo singolo, multinodo e ridimensionabili in modo elastico di computer. In questo modo è possibile ridimensionare il lavoro senza sprecare risorse. SynapseML è utilizzabile in Python, R, Scala, Java e .NET. Inoltre, l'API astrae su un'ampia gamma di database, file system e archivi dati cloud per semplificare gli esperimenti indipendentemente dalla posizione in cui si trovano i dati.
SynapseML richiede Scala 2.12, Spark 3.0+e Python 3.6+.
Funzionalità principali di SynapseML
API unificata per la creazione, il training e i modelli di assegnazione dei punteggi
SynapseML offre un'API unificata che semplifica lo sviluppo di programmi distribuiti a tolleranza di errore. In particolare, SynapseML espone molti framework di apprendimento automatico diversi in una singola API scalabile, indipendente dai dati e dal linguaggio e funziona per applicazioni batch, streaming e gestione.
Un'API unificata standardizza molti strumenti, framework, algoritmi e semplifica l'esperienza di apprendimento automatico distribuita. Consente agli sviluppatori di comporre rapidamente framework di Machine Learning diversi, mantiene il codice pulito e abilita i flussi di lavoro che richiedono più di un framework. Ad esempio, i flussi di lavoro come l'apprendimento con supervisione Web o la creazione del motore di ricerca richiedono più servizi e framework. SynapseML protegge gli utenti da questa complessità aggiuntiva.
Usare modelli intelligenti predefiniti
Molti strumenti in SynapseML non richiedono un set di dati di training con etichetta di grandi dimensioni. SynapseML offre invece API semplici per i servizi intelligenti predefiniti, ad esempio Servizi di Azure AI, per risolvere rapidamente problemi di intelligenza artificiale su larga scala correlati sia all'azienda che alla ricerca. SynapseML consente agli sviluppatori di incorporare oltre 50 diversi servizi ML all'avanguardia direttamente nei sistemi e nei database. Questi algoritmi pronti all'uso possono analizzare un'ampia gamma di documenti, trascrivere conversazioni multi-speaker in tempo reale e tradurre il testo in più di 100 lingue diverse. Per altri esempi di come usare l'intelligenza artificiale predefinita per risolvere rapidamente le attività, vedere gli esempi "cognitivi" di SynapseML.
Per rendere rapida ed efficiente l'integrazione di SynapseML con i servizi di Azure AI introduce molte ottimizzazioni per i flussi di lavoro orientati ai servizi. In particolare, SynapseML analizza automaticamente le risposte comuni di limitazione larghezza di banda per garantire che i processi non sovraccarichino i servizi back-end. Inoltre, usa back-off esponenziali per gestire connessioni di rete inaffidabili e risposte non riuscite. Infine, i computer di lavoro di Spark rimangono occupati con nuove primitive di parallelismo asincrono per Spark. Il parallelismo asincrono consente ai computer di lavoro di inviare richieste durante l'attesa di una risposta dal server e può sospendere un aumento decuplo della velocità effettiva.
Ampia compatibilità dell'ecosistema con ONNX
SynapseML consente agli sviluppatori di usare modelli di molti ecosistemi di Machine Learning diversi tramite il framework Open Neural Network Exchange (ONNX). Con questa integrazione, è possibile eseguire un'ampia gamma di modelli classici e di Deep Learning su larga scala con solo poche righe di codice. SynapseML gestisce automaticamente la distribuzione di modelli ONNX ai nodi di lavoro, l'invio in batch e il buffering dei dati di input per una velocità effettiva elevata e la pianificazione del lavoro sugli acceleratori hardware.
L'uso di ONNX in Spark non solo consente agli sviluppatori di ridimensionare i modelli di Deep Learning, ma consente anche l'inferenza distribuita in un'ampia gamma di ecosistemi di Machine Learning. In particolare, ONNXMLTools converte i modelli da TensorFlow, scikit-learn, Core ML, LightGBM, XGBoost, H2O e PyTorch in ONNX per l'inferenza accelerata e distribuita usando SynapseML.
Creare sistemi di intelligenza artificiale responsabili
Dopo aver creato un modello, è fondamentale che i ricercatori e gli ingegneri comprendano le limitazioni e il comportamento prima della distribuzione. SynapseML aiuta gli sviluppatori e i ricercatori a creare sistemi di IA responsabili introducendo nuovi strumenti che rivelano perché i modelli effettuano determinate stime e come migliorare il set di dati di training per eliminare le distorsioni. SynapseML accelera notevolmente il processo di comprensione del modello sottoposto a training di un utente consentendo agli sviluppatori di distribuire il calcolo tra centinaia di computer. In particolare, SynapseML include implementazioni distribuite di shapley Additive Explanations (SHAP) e Local Interpretable Model-Agnostic Explanations (LIME) per spiegare le stime dei modelli di visione, testo e tabulare. Include anche strumenti quali l'attesa condizionale individuale (ICE) e l'analisi parziale della dipendenza ai set di dati con distorsione riconosciuti.
Supporto enterprise in Azure Synapse Analytics
SynapseML è disponibile a livello generale in Azure Synapse Analytics con supporto enterprise. È possibile creare pipeline di Machine Learning su larga scala usando i servizi di Azure AI, LightGBM, ONNX e altre funzionalità di SynapseML selezionate. Include anche modelli per creare rapidamente prototipi di sistemi di Machine Learning distribuiti, ad esempio motori di ricerca visiva, pipeline di manutenzione predittiva, traduzione di documenti e altro ancora.
Passaggi successivi
Per altre informazioni su SynapseML, vedere SynapseML: una libreria di Machine Learning semplice, multilingue e parallela di grandi dimensioni.