Topdatabases die machine learning in de database ondersteunen

Update: 20 mei 2021
Topdatabases die machine learning in de database ondersteunen

In mijn artikel van augustus 2020, 'Hoe kies je een cloudplatform voor machine learning', was mijn eerste richtlijn voor het kiezen van een platform: 'Wees dicht bij je gegevens'. De code in de buurt van de gegevens houden is nodig om de latentie laag te houden, aangezien de lichtsnelheid de transmissiesnelheden beperkt. Machine learning - met name deep learning - heeft immers de neiging om al uw gegevens meerdere keren te doorlopen (elke keer dat doorlopen wordt een tijdperk).

Ik zei destijds dat het ideale geval voor zeer grote gegevenssets is om het model te bouwen waar de gegevens zich al bevinden, zodat er geen massale datatransmissie nodig is. Meerdere databases ondersteunen dat in beperkte mate. De logische volgende vraag is: welke databases ondersteunen interne machine learning, en hoe doen ze dat? Ik zal die databases in alfabetische volgorde bespreken.

Amazon roodverschuiving

Amazon Redshift is een beheerde datawarehouse-service op petabyte-schaal die is ontworpen om het eenvoudig en kosteneffectief te maken om al uw gegevens te analyseren met behulp van uw bestaande business intelligence-tools. Het is geoptimaliseerd voor datasets variërend van een paar honderd gigabytes tot een petabyte of meer en kost minder dan $ 1,000 per terabyte per jaar.

Amazon Redshift ML is ontworpen om het voor SQL-gebruikers gemakkelijk te maken om machine learning-modellen te maken, te trainen en te implementeren met behulp van SQL-opdrachten. De opdracht CREATE MODEL in Redshift SQL definieert de gegevens die moeten worden gebruikt voor training en de doelkolom, en geeft de gegevens vervolgens door aan Amazon SageMaker Autopilot voor training via een gecodeerde Amazon S3-bucket in dezelfde zone.

Na AutoML-training stelt Redshift ML het beste model samen en registreert het als voorspellings-SQL-functie in uw Redshift-cluster. U kunt vervolgens het model voor inferentie aanroepen door de voorspellingsfunctie aan te roepen in een SELECT-instructie.

Samengevat: Redshift ML gebruikt SageMaker Autopilot om automatisch voorspellingsmodellen te maken op basis van de gegevens die u opgeeft via een SQL-instructie, die wordt geëxtraheerd naar een S3-bucket. De beste gevonden voorspellingsfunctie wordt geregistreerd in het Redshift-cluster.

BlazingSQL

BlazingSQL is een GPU-versnelde SQL-engine die bovenop het RAPIDS-ecosysteem is gebouwd; het bestaat als een open-sourceproject en een betaalde service. RAPIDS is een suite van open source softwarebibliotheken en API's, geïncubeerd door Nvidia, die CUDA gebruikt en is gebaseerd op het kolomvormige geheugenformaat Apache Arrow. CuDF, onderdeel van RAPIDS, is een Pandas-achtige GPU DataFrame-bibliotheek voor het laden, samenvoegen, samenvoegen, filteren en anderszins manipuleren van gegevens.

Dask is een open-source tool die Python-pakketten naar meerdere machines kan schalen. Dask kan gegevens en berekeningen over meerdere GPU's verdelen, in hetzelfde systeem of in een cluster met meerdere knooppunten. Dask kan worden geïntegreerd met RAPIDS cuDF, XGBoost en RAPIDS cuML voor GPU-versnelde data-analyse en machine learning.

Samengevat: BlazingSQL kan GPU-versnelde queries uitvoeren op datameren in Amazon S3, de resulterende DataFrames doorgeven aan cuDF voor datamanipulatie en uiteindelijk machine learning uitvoeren met RAPIDS XGBoost en cuML, en deep learning met PyTorch en TensorFlow.

Google CloudBigQuery

BigQuery is het beheerde datawarehouse op petabyte-schaal van Google Cloud waarmee u in bijna realtime analyses van grote hoeveelheden gegevens kunt uitvoeren. Met BigQuery ML kunt u machine learning-modellen maken en uitvoeren in BigQuery met behulp van SQL-query's.

BigQuery ML ondersteunt lineaire regressie voor prognoses; binaire en multi-class logistische regressie voor classificatie; K-betekent clustering voor gegevenssegmentatie; matrixfactorisatie voor het creëren van productaanbevelingssystemen; tijdreeksen voor het uitvoeren van tijdreeksprognoses, inclusief afwijkingen, seizoensinvloeden en vakanties; XGBoost-classificatie en regressiemodellen; Op TensorFlow gebaseerde diepe neurale netwerken voor classificatie- en regressiemodellen; AutoML-tabellen; en TensorFlow-model importeren. U kunt een model met gegevens uit meerdere BigQuery-datasets gebruiken voor training en voorspelling. BigQuery ML haalt de gegevens niet uit het datawarehouse. U kunt feature-engineering uitvoeren met BigQuery ML door de TRANSFORM-clausule in uw CREATE MODEL-instructie te gebruiken.

Overzicht: BigQuery ML brengt veel van de kracht van Google Cloud Machine Learning naar het BigQuery-datawarehouse met SQL-syntaxis, zonder de gegevens uit het datawarehouse te extraheren.

IBM Db2-magazijn

IBM Db2 Warehouse on Cloud is een beheerde openbare cloudservice. U kunt IBM Db2 Warehouse ook op locatie inrichten met uw eigen hardware of in een private cloud. Als datawarehouse bevat het functies zoals gegevensverwerking in het geheugen en kolomtabellen voor online analytische verwerking. Het is Netezza technologie biedt een robuuste set analyses die zijn ontworpen om de query efficiënt naar de gegevens te brengen. Een reeks bibliotheken en functies helpen u het precieze inzicht te krijgen dat u nodig heeft.

Db2 Warehouse ondersteunt machine learning in de database in Python, R en SQL. De IDAX module bevat analytische opgeslagen procedures, inclusief analyse van variantie, associatieregels, datatransformatie, beslissingsbomen, diagnostische metingen, discretisatie en momenten, K-betekent clustering, k-dichtstbijzijnde buren, lineaire regressie, metadatabeheer, naïeve Bayes-classificatie, analyse van hoofdcomponenten, waarschijnlijkheidsverdelingen, willekeurige steekproeven, regressiebomen, sequentiële patronen en regels, en zowel parametrische als niet-parametrische statistieken.

Samengevat: IBM Db2 Warehouse bevat een breed scala aan in-database SQL-analyses, waaronder enkele basisfunctionaliteit voor machine learning, plus in-database-ondersteuning voor R en Python.

Oracle Database

Kinetica Streaming Data Warehouse combineert historische en streaming data-analyse met locatie-intelligentie en AI in één platform, allemaal toegankelijk via API en SQL. Kinetica is een zeer snelle, gedistribueerde, kolomvormige, geheugen-eerste, GPU-versnelde database met filter-, visualisatie- en aggregatiefuncties.

Kinetica integreert machine learning-modellen en algoritmen met uw gegevens voor realtime voorspellende analyses op schaal. Hiermee kunt u uw datapijplijnen en de levenscyclus van uw analyses, machine learning-modellen en data-engineering stroomlijnen en functies met streaming berekenen. Kinetica biedt een volledige levenscyclusoplossing voor machine learning versneld door GPU's: beheerde Jupyter-notebooks, modeltraining via RAPIDS en geautomatiseerde modelimplementatie en inferentie in het Kinetica-platform.

Samengevat: Kinetica biedt een volledige levenscyclusoplossing in de database voor machine learning versneld door GPU's, en kan functies berekenen op basis van streaminggegevens.

Microsoft SQL Server

Microsoft SQL Server Machine Learning Services ondersteunt R, Python, Java, de PREDICT T-SQL-opdracht en de opgeslagen procedure rx_Predict in de SQL Server RDBMS en SparkML in SQL Server Big Data Clusters. In de R- en Python-talen bevat Microsoft verschillende pakketten en bibliotheken voor machine learning. U kunt uw getrainde modellen in de database of extern opslaan. Azure SQL Managed Instance ondersteunt Machine Learning Services voor Python en R als preview.

Microsoft R heeft extensies waarmee het zowel gegevens van schijf als geheugen kan verwerken. SQL Server biedt een uitbreidingsframework zodat R-, Python- en Java-code SQL Server-gegevens en -functies kunnen gebruiken. SQL Server Big Data-clusters voeren SQL Server, Spark en HDFS uit in Kubernetes. Wanneer SQL Server Python-code aanroept, kan het op zijn beurt Azure Machine Learning aanroepen en het resulterende model in de database opslaan voor gebruik in voorspellingen.

Samengevat: De huidige versies van SQL Server kunnen machine learning-modellen trainen en afleiden in meerdere programmeertalen.

Oracle Database

Oracle Cloud Infrastructure (OCI) Data Science is een beheerd en serverloos platform voor datawetenschapsteams om machine learning-modellen te bouwen, op te leiden en te beheren met behulp van Oracle Cloud Infrastructure, waaronder Oracle Autonomous Database en Oracle Autonomous Data Warehouse. Het omvat Python-centrische tools, bibliotheken en pakketten die zijn ontwikkeld door de open source-gemeenschap en de Oracle Accelerated Data Science (ADS) Library, die de end-to-end levenscyclus van voorspellende modellen ondersteunt:

  • Data-acquisitie, profilering, voorbereiding en visualisatie
  • Functie-engineering
  • Modeltraining (inclusief Oracle AutoML)
  • Modelevaluatie, uitleg en interpretatie (inclusief Oracle MLX)
  • Modelimplementatie naar Oracle Functions

OCI Data Science kan worden geïntegreerd met de rest van de Oracle Cloud Infrastructure-stack, inclusief Functions, Data Flow, Autonomous Data Warehouse en Object Storage.

Modellen die momenteel worden ondersteund, zijn onder meer:

  • Oracle AutoML
  • Keras
  • Scikit leren
  • XGBoost
  • ADSTuner (afstemming van hyperparameter)

ADS ondersteunt ook uitleg over machine learning (MLX).

Samengevat: Oracle Cloud Infrastructure kan gegevenswetenschappelijke bronnen hosten die zijn geïntegreerd met het datawarehouse, de objectopslag en de functies, waardoor een volledige levenscyclus van het model mogelijk is.

Verticaal

Vertica Analytics Platform is een schaalbaar datawarehouse in kolomvorm. Het werkt in twee modi: Enterprise, dat gegevens lokaal opslaat in het bestandssysteem van knooppunten waaruit de database bestaat, en EON, dat gegevens gemeenschappelijk opslaat voor alle rekenknooppunten.

Vertica gebruikt massaal parallelle verwerking om petabytes aan gegevens te verwerken en doet zijn interne machine learning met gegevensparallellisme. Het heeft acht ingebouwde algoritmen voor gegevensvoorbereiding, drie regressie-algoritmen, vier classificatie-algoritmen, twee clusteralgoritmen, verschillende modelbeheerfuncties en de mogelijkheid om TensorFlow- en PMML-modellen te importeren die elders zijn getraind. Nadat u een model heeft gepast of geïmporteerd, kunt u het gebruiken voor voorspellingen. Vertica staat ook door de gebruiker gedefinieerde extensies toe die zijn geprogrammeerd in C ++, Java, Python of R. U gebruikt SQL-syntaxis voor zowel training als inferentie.

Samengevat: Vertica heeft een mooie set algoritmen voor machine learning ingebouwd en kan TensorFlow- en PMML-modellen importeren. Het kan zowel voorspellingen doen van geïmporteerde modellen als van zijn eigen modellen.

MindsDB

Als uw database interne machine learning nog niet ondersteunt, kunt u die mogelijkheid waarschijnlijk toevoegen met MindsDB, dat kan worden geïntegreerd met een half dozijn databases en vijf BI-tools. Ondersteunde databases zijn onder andere MariaDB, MySQL, PostgreSQL, ClickHouse, Microsoft SQL Server en Snowflake, met een MongoDB-integratie in de maak en integraties met streaming-databases beloofd later in 2021. Ondersteunde BI-tools omvatten momenteel SAS, Qlik Sense, Microsoft Power BI, Looker , en Domo.

MindsDB biedt AutoML, AI-tabellen en verklaarbare AI (XAI). U kunt AutoML-training oproepen vanuit MindsDB Studio, vanuit een SQL INSERT-instructie of vanuit een Python API-aanroep. Training kan optioneel GPU's gebruiken en kan optioneel een tijdreeksmodel maken.

U kunt het model opslaan als een databasetabel en het aanroepen vanuit een SQL SELECT-instructie voor het opgeslagen model, vanuit MindsDB Studio of vanuit een Python API-aanroep. U kunt de modelkwaliteit vanuit MindsDB Studio evalueren, uitleggen en visualiseren.

U kunt ook MindsDB Studio en de Python-API verbinden met lokale en externe gegevensbronnen. MindsDB levert bovendien een vereenvoudigd deep learning-framework, Lightwood, dat op PyTorch draait.

Samengevat: MindsDB brengt nuttige machine learning-mogelijkheden naar een aantal databases die geen ingebouwde ondersteuning voor machine learning hebben.