Database principali che supportano l'apprendimento automatico all'interno del database

Aggiornamento: 20 maggio 2021
Database principali che supportano l'apprendimento automatico all'interno del database

Nel mio articolo dell'agosto 2020, "Come scegliere una piattaforma cloud di machine learning", la mia prima linea guida per la scelta di una piattaforma era: "Sii vicino ai tuoi dati". Mantenere il codice vicino ai dati è necessario per mantenere bassa la latenza, poiché la velocità della luce limita la velocità di trasmissione. Dopotutto, il machine learning, in particolare il deep learning, tende a passare attraverso tutti i tuoi dati più volte (ogni volta viene chiamato un file epoca).

All'epoca ho detto che il caso ideale per set di dati molto grandi è costruire il modello in cui i dati risiedono già, in modo che non sia necessaria alcuna trasmissione di dati di massa. Diversi database lo supportano in misura limitata. La domanda successiva naturale è: quali database supportano l'apprendimento automatico interno e come lo fanno? Discuterò quei database in ordine alfabetico.

Amazon RedShift

Amazon Redshift è un servizio di data warehouse gestito su scala petabyte progettato per rendere semplice e conveniente analizzare tutti i tuoi dati utilizzando gli strumenti di business intelligence esistenti. È ottimizzato per set di dati che vanno da poche centinaia di gigabyte a un petabyte o più e costa meno di $ 1,000 per terabyte all'anno.

Amazon Redshift ML è progettato per facilitare agli utenti SQL la creazione, l'addestramento e la distribuzione di modelli di machine learning utilizzando i comandi SQL. Il comando CREATE MODEL in Redshift SQL definisce i dati da utilizzare per l'addestramento e la colonna di destinazione, quindi passa i dati ad Amazon SageMaker Autopilot per l'addestramento tramite un bucket Amazon S3 crittografato nella stessa zona.

Dopo la formazione AutoML, Redshift ML compila il modello migliore e lo registra come funzione SQL di previsione nel cluster Redshift. È quindi possibile richiamare il modello per l'inferenza chiamando la funzione di previsione all'interno di un'istruzione SELECT.

Sommario: Redshift ML utilizza SageMaker Autopilot per creare automaticamente modelli di previsione dai dati specificati tramite un'istruzione SQL, che viene estratta in un bucket S3. La migliore funzione di previsione trovata è registrata nel cluster Redshift.

BlazingSQL

BlazingSQL è un motore SQL accelerato dalla GPU costruito sull'ecosistema RAPIDS; esiste come progetto open-source e servizio a pagamento. RAPIDS è una suite di librerie software open source e API, incubata da Nvidia, che utilizza CUDA e si basa sul formato di memoria colonnare Apache Arrow. CuDF, parte di RAPIDS, è una libreria DataFrame GPU simile a Pandas per il caricamento, l'unione, l'aggregazione, il filtraggio e la manipolazione dei dati in altro modo.

Dask è uno strumento open source in grado di scalare i pacchetti Python su più macchine. Dask può distribuire dati e calcoli su più GPU, nello stesso sistema o in un cluster multi-nodo. Dask si integra con RAPIDS cuDF, XGBoost e RAPIDS cuML per l'analisi dei dati con accelerazione GPU e l'apprendimento automatico.

Sommario: BlazingSQL può eseguire query con accelerazione GPU su data lake in Amazon S3, trasmettere i DataFrame risultanti a cuDF per la manipolazione dei dati e infine eseguire l'apprendimento automatico con RAPIDS XGBoost e cuML e il deep learning con PyTorch e TensorFlow.

BigQuery di Google Cloud

BigQuery è il data warehouse gestito di Google Cloud su scala petabyte che ti consente di eseguire analisi su grandi quantità di dati quasi in tempo reale. BigQuery ML ti consente di creare ed eseguire modelli di machine learning in BigQuery utilizzando query SQL.

BigQuery ML supporta la regressione lineare per la previsione; regressione logistica binaria e multi-classe per la classificazione; K-significa clustering per la segmentazione dei dati; fattorizzazione a matrice per la creazione di sistemi di raccomandazione del prodotto; serie temporali per l'esecuzione di previsioni di serie temporali, comprese anomalie, stagionalità e festività; Modelli di classificazione e regressione XGBoost; Reti neurali profonde basate su TensorFlow per modelli di classificazione e regressione; Tabelle AutoML; e importazione del modello TensorFlow. Puoi utilizzare un modello con i dati di più set di dati BigQuery per l'addestramento e la previsione. BigQuery ML non estrae i dati dal data warehouse. Puoi eseguire la progettazione delle funzionalità con BigQuery ML utilizzando la clausola TRANSFORM nell'istruzione CREATE MODEL.

Sommario: BigQuery ML porta gran parte della potenza di Google Cloud Machine Learning nel data warehouse di BigQuery con la sintassi SQL, senza estrarre i dati dal data warehouse.

IBM DB2 Warehouse

IBM Db2 Warehouse on Cloud è un servizio cloud pubblico gestito. Puoi anche configurare IBM Db2 Warehouse on-premise con il tuo hardware o in un cloud privato. In quanto data warehouse, include funzionalità come l'elaborazione dei dati in memoria e tabelle a colonne per l'elaborazione analitica online. È Netezza la tecnologia fornisce un solido set di analisi progettate per portare in modo efficiente la query sui dati. Una gamma di librerie e funzioni ti aiutano a ottenere le informazioni precise di cui hai bisogno.

Db2 Warehouse supporta il machine learning nel database in Python, R e SQL. L'IDAX modulo contiene procedure memorizzate analitiche, tra cui analisi della varianza, regole di associazione, trasformazione dei dati, alberi decisionali, misure diagnostiche, discretizzazione e momenti, clustering K-medie, k-vicini più vicini, regressione lineare, gestione dei metadati, classificazione naïve di Bayes, analisi delle componenti principali, distribuzioni di probabilità, campionamento casuale, alberi di regressione, modelli e regole sequenziali e statistiche parametriche e non parametriche.

Sommario: IBM Db2 Warehouse include un'ampia serie di analisi SQL in-database che includono alcune funzionalità di base di machine learning, oltre al supporto in-database per R e Python.

Database Oracle

Kinetica Streaming Data Warehouse combina l'analisi dei dati storici e in streaming con la location intelligence e l'intelligenza artificiale in un'unica piattaforma, il tutto accessibile tramite API e SQL. Kinetica è un database molto veloce, distribuito, a colonne, memory-first, accelerato dalla GPU con funzionalità di filtraggio, visualizzazione e aggregazione.

Kinetica integra modelli e algoritmi di machine learning con i tuoi dati per analisi predittive in tempo reale su larga scala. Ti consente di ottimizzare le tue pipeline di dati e il ciclo di vita delle tue analisi, modelli di apprendimento automatico e ingegneria dei dati e calcolare le funzionalità con lo streaming. Kinetica fornisce una soluzione per il ciclo di vita completo per l'apprendimento automatico accelerato dalle GPU: notebook Jupyter gestiti, addestramento del modello tramite RAPIDS e distribuzione e inferenza automatizzata del modello nella piattaforma Kinetica.

Sommario: Kinetica fornisce una soluzione completa per il ciclo di vita del database per l'apprendimento automatico accelerato dalle GPU e può calcolare le funzionalità dai dati in streaming.

Microsoft SQL Server

Microsoft SQL Server Machine Learning Services supporta R, Python, Java, il comando PREDICT T-SQL e la stored procedure rx_Predict in SQL Server RDBMS e SparkML in SQL Server Big Data Clusters. Nei linguaggi R e Python, Microsoft include diversi pacchetti e librerie per l'apprendimento automatico. È possibile memorizzare i modelli addestrati nel database o esternamente. Istanza gestita SQL di Azure supporta i servizi di Machine Learning per Python e R come anteprima.

Microsoft R ha estensioni che gli consentono di elaborare i dati dal disco e dalla memoria. SQL Server fornisce un framework di estensione in modo che il codice R, Python e Java possa utilizzare i dati e le funzioni di SQL Server. I cluster di Big Data di SQL Server eseguono SQL Server, Spark e HDFS in Kubernetes. Quando SQL Server chiama codice Python, a sua volta può richiamare Azure Machine Learning e salvare il modello risultante nel database per l'uso nelle previsioni.

Sommario: Le versioni correnti di SQL Server possono addestrare e dedurre modelli di machine learning in più linguaggi di programmazione.

Database Oracle

Oracle Cloud Infrastructure (OCI) Data Science è una piattaforma gestita e serverless per i team di data science per creare, addestrare e gestire modelli di machine learning utilizzando Oracle Cloud Infrastructure, inclusi Oracle Autonomous Database e Oracle Autonomous Data Warehouse. Include strumenti, librerie e pacchetti incentrati su Python sviluppati dalla comunità open source e dalla libreria Oracle Accelerated Data Science (ADS), che supporta il ciclo di vita end-to-end dei modelli predittivi:

  • Acquisizione, profilazione, preparazione e visualizzazione dei dati
  • Ingegneria delle funzionalità
  • Formazione del modello (incluso Oracle AutoML)
  • Valutazione, spiegazione e interpretazione del modello (incluso Oracle MLX)
  • Distribuzione del modello in Oracle Functions

OCI Data Science si integra con il resto dello stack dell'infrastruttura Oracle Cloud, tra cui funzioni, flusso di dati, data warehouse autonomo e storage di oggetti.

I modelli attualmente supportati includono:

  • OracleAutoML
  • Keras
  • Scikit-learn
  • XGBoost
  • ADSTuner (ottimizzazione iperparametro)

ADS supporta anche la spiegabilità dell'apprendimento automatico (MLX).

Sommario: Oracle Cloud Infrastructure può ospitare risorse di data science integrate con il suo data warehouse, object store e funzioni, consentendo un ciclo di vita di sviluppo del modello completo.

Vertica

Vertica Analytics Platform è un data warehouse di archiviazione a colonne scalabile. Funziona in due modalità: Enterprise, che memorizza i dati localmente nel file system dei nodi che compongono il database, ed EON, che archivia i dati in comune per tutti i nodi di calcolo.

Vertica utilizza un'elaborazione massicciamente parallela per gestire petabyte di dati e fa il suo machine learning interno con il parallelismo dei dati. Dispone di otto algoritmi integrati per la preparazione dei dati, tre algoritmi di regressione, quattro algoritmi di classificazione, due algoritmi di clustering, diverse funzioni di gestione dei modelli e la possibilità di importare modelli TensorFlow e PMML addestrati altrove. Dopo aver adattato o importato un modello, è possibile utilizzarlo per la previsione. Vertica consente anche estensioni definite dall'utente programmate in C ++, Java, Python o R. La sintassi SQL viene utilizzata sia per l'addestramento che per l'inferenza.

Sommario: Vertica ha un bel set di algoritmi di apprendimento automatico integrati e può importare modelli TensorFlow e PMML. Può eseguire previsioni da modelli importati e dai propri modelli.

Menti DB

Se il tuo database non supporta già l'apprendimento automatico interno, è probabile che tu possa aggiungere quella capacità utilizzando MindsDB, che si integra con una mezza dozzina di database e cinque strumenti di BI. I database supportati includono MariaDB, MySQL, PostgreSQL, ClickHouse, Microsoft SQL Server e Snowflake, con un'integrazione MongoDB nelle opere e integrazioni con i database di streaming promesse più avanti nel 2021. Gli strumenti BI supportati attualmente includono SAS, Qlik Sense, Microsoft Power BI, Looker e Domo.

MindsDB include AutoML, tabelle AI e intelligenza artificiale spiegabile (XAI). Puoi richiamare l'addestramento AutoML da MindsDB Studio, da un'istruzione SQL INSERT o da una chiamata API Python. La formazione può facoltativamente utilizzare GPU e può facoltativamente creare un modello di serie temporale.

È possibile salvare il modello come tabella di database e chiamarlo da un'istruzione SQL SELECT sul modello salvato, da MindsDB Studio o da una chiamata API Python. Puoi valutare, spiegare e visualizzare la qualità del modello da MindsDB Studio.

Puoi anche connettere MindsDB Studio e l'API Python a origini dati locali e remote. MindsDB fornisce inoltre un framework di deep learning semplificato, Lightwood, che gira su PyTorch.

Sommario: MindsDB offre utili funzionalità di machine learning a una serie di database privi di supporto integrato per il machine learning.