Principales bases de données prenant en charge l'apprentissage automatique dans la base de données

Mise à jour : 20 mai 2021
Principales bases de données prenant en charge l'apprentissage automatique dans la base de données

Dans mon article d'août 2020, «Comment choisir une plate-forme Cloud Machine Learning», ma première ligne directrice pour choisir une plate-forme était «Soyez proche de vos données». Garder le code à proximité des données est nécessaire pour maintenir la latence faible, car la vitesse de la lumière limite les vitesses de transmission. Après tout, l'apprentissage automatique, en particulier l'apprentissage en profondeur, a tendance à parcourir toutes vos données plusieurs fois (chaque fois époque).

J'ai dit à l'époque que le cas idéal pour de très grands ensembles de données était de construire le modèle où les données résident déjà, de sorte qu'aucune transmission de données de masse ne soit nécessaire. Plusieurs bases de données prennent en charge cela dans une mesure limitée. La prochaine question naturelle est de savoir quelles bases de données prennent en charge l'apprentissage automatique interne et comment le font-elles? Je vais discuter de ces bases de données par ordre alphabétique.

Redshift d'Amazon

Amazon Redshift est un service d'entrepôt de données géré à l'échelle du pétaoctet conçu pour rendre simple et rentable l'analyse de toutes vos données à l'aide de vos outils de veille stratégique existants. Il est optimisé pour les ensembles de données allant de quelques centaines de gigaoctets à un pétaoctet ou plus et coûte moins de 1,000 XNUMX $ par téraoctet par an.

Amazon Redshift ML est conçu pour permettre aux utilisateurs SQL de créer, de former et de déployer facilement des modèles d'apprentissage automatique à l'aide de commandes SQL. La commande CREATE MODEL dans Redshift SQL définit les données à utiliser pour l'entraînement et la colonne cible, puis transmet les données à Amazon SageMaker Autopilot pour l'entraînement via un compartiment Amazon S3 chiffré dans la même zone.

Après l'entraînement AutoML, Redshift ML compile le meilleur modèle et l'enregistre en tant que fonction SQL de prédiction dans votre cluster Redshift. Vous pouvez ensuite appeler le modèle pour l'inférence en appelant la fonction de prédiction dans une instruction SELECT.

Résumé: Redshift ML utilise SageMaker Autopilot pour créer automatiquement des modèles de prédiction à partir des données que vous spécifiez via une instruction SQL, qui est extraite dans un compartiment S3. La meilleure fonction de prédiction trouvée est enregistrée dans le cluster Redshift.

BlazingSQL

BlazingSQL est un moteur SQL accéléré par GPU construit sur l'écosystème RAPIDS; il existe en tant que projet open-source et service payant. RAPIDS est une suite de bibliothèques de logiciels open source et d'API, incubée par Nvidia, qui utilise CUDA et est basée sur le format de mémoire en colonnes Apache Arrow. CuDF, qui fait partie de RAPIDS, est une bibliothèque GPU DataFrame de type Pandas pour le chargement, la jonction, l'agrégation, le filtrage et la manipulation des données.

Dask est un outil open-source qui peut mettre à l'échelle des packages Python sur plusieurs machines. Dask peut distribuer des données et des calculs sur plusieurs GPU, soit dans le même système, soit dans un cluster à plusieurs nœuds. Dask s'intègre à RAPIDS cuDF, XGBoost et RAPIDS cuML pour l'analyse de données accélérée par GPU et l'apprentissage automatique.

Résumé: BlazingSQL peut exécuter des requêtes accélérées par GPU sur les lacs de données dans Amazon S3, transmettre les DataFrames résultantes à cuDF pour la manipulation des données, et enfin effectuer un apprentissage automatique avec RAPIDS XGBoost et cuML, et un apprentissage en profondeur avec PyTorch et TensorFlow.

Google Cloud BigQuery

BigQuery est l'entrepôt de données géré à l'échelle du pétaoctet de Google Cloud qui vous permet d'exécuter des analyses sur de grandes quantités de données en temps quasi réel. BigQuery ML vous permet de créer et d'exécuter des modèles de machine learning dans BigQuery à l'aide de requêtes SQL.

BigQuery ML prend en charge la régression linéaire pour les prévisions; régression logistique binaire et multi-classes pour la classification; K-signifie regroupement pour la segmentation des données; factorisation matricielle pour la création de systèmes de recommandation de produits; séries chronologiques pour effectuer des prévisions chronologiques, y compris les anomalies, la saisonnalité et les jours fériés; Modèles de classification et de régression XGBoost; Réseaux de neurones profonds basés sur TensorFlow pour les modèles de classification et de régression; Tables AutoML; et l'importation de modèles TensorFlow. Vous pouvez utiliser un modèle avec des données de plusieurs ensembles de données BigQuery pour l'entraînement et la prédiction. BigQuery ML n'extrait pas les données de l'entrepôt de données. Vous pouvez effectuer l'ingénierie des fonctionnalités avec BigQuery ML en utilisant la clause TRANSFORM dans votre instruction CREATE MODEL.

Résumé :  BigQuery ML apporte une grande partie de la puissance de Google Cloud Machine Learning dans l'entrepôt de données BigQuery avec la syntaxe SQL, sans extraire les données de l'entrepôt de données.

Entrepôt IBM DB2

IBM Db2 Warehouse on Cloud est un service de cloud public géré. Vous pouvez également configurer IBM Db2 Warehouse sur site avec votre propre matériel ou dans un cloud privé. En tant qu'entrepôt de données, il comprend des fonctionnalités telles que le traitement des données en mémoire et des tableaux en colonnes pour le traitement analytique en ligne. C'est Netezza sans souci fournit un ensemble robuste d'analyses conçues pour amener efficacement la requête aux données. Une gamme de bibliothèques et de fonctions vous aident à obtenir les informations précises dont vous avez besoin.

Db2 Warehouse prend en charge l'apprentissage automatique dans la base de données en Python, R et SQL. L'IDAX module contient des procédures analytiques stockées, y compris l'analyse de la variance, les règles d'association, la transformation des données, les arbres de décision, les mesures de diagnostic, la discrétisation et les moments, le regroupement de K-moyennes, les k-voisins les plus proches, la régression linéaire, la gestion des métadonnées, la classification naïve de Bayes, l'analyse en composantes principales, distributions de probabilité, échantillonnage aléatoire, arbres de régression, modèles et règles séquentiels, ainsi que statistiques paramétriques et non paramétriques.

Résumé: IBM Db2 Warehouse comprend un large ensemble d'analyses SQL dans la base de données qui comprend des fonctionnalités d'apprentissage automatique de base, ainsi qu'une prise en charge dans la base de données pour R et Python.

Base de données Oracle

Kinetica Streaming Data Warehouse combine l'analyse des données historiques et en continu avec l'intelligence de localisation et l'IA dans une plate-forme unique, le tout accessible via API et SQL. Kinetica est une base de données très rapide, distribuée, en colonnes, avec mémoire d'abord, accélérée par GPU avec des fonctionnalités de filtrage, de visualisation et d'agrégation.

Kinetica intègre des modèles et des algorithmes d'apprentissage automatique à vos données pour une analyse prédictive en temps réel à grande échelle. Il vous permet de rationaliser vos pipelines de données et le cycle de vie de vos analyses, de vos modèles d'apprentissage automatique et de l'ingénierie des données, et de calculer les fonctionnalités avec le streaming. Kinetica fournit une solution de cycle de vie complet pour l'apprentissage automatique accéléré par les GPU: ordinateurs portables Jupyter gérés, formation de modèles via RAPIDS et déploiement et inférence automatisés de modèles dans la plate-forme Kinetica.

Résumé: Kinetica fournit une solution complète de cycle de vie dans la base de données pour l'apprentissage automatique accéléré par les GPU, et peut calculer les fonctionnalités à partir de données en continu.

Microsoft SQL Server

Microsoft SQL Server Machine Learning Services prend en charge R, Python, Java, la commande PREDICT T-SQL et la procédure stockée rx_Predict dans le SGBDR SQL Server et SparkML dans les clusters SQL Server Big Data. Dans les langages R et Python, Microsoft inclut plusieurs packages et bibliothèques pour l'apprentissage automatique. Vous pouvez stocker vos modèles entraînés dans la base de données ou en externe. Azure SQL Managed Instance prend en charge les services d'apprentissage machine pour Python et R en tant qu'aperçu.

Microsoft R a des extensions qui lui permettent de traiter les données du disque ainsi que de la mémoire. SQL Server fournit une infrastructure d'extension afin que le code R, Python et Java puisse utiliser les données et les fonctions SQL Server. Les clusters SQL Server Big Data exécutent SQL Server, Spark et HDFS dans Kubernetes. Lorsque SQL Server appelle du code Python, il peut à son tour appeler Azure Machine Learning et enregistrer le modèle résultant dans la base de données pour une utilisation dans les prédictions.

Résumé: Les versions actuelles de SQL Server peuvent entraîner et déduire des modèles d'apprentissage automatique dans plusieurs langages de programmation.

Base de données Oracle

Oracle Cloud Infrastructure (OCI) Data Science est une plate-forme gérée et sans serveur permettant aux équipes de science des données de créer, de former et de gérer des modèles d'apprentissage automatique à l'aide d'Oracle Cloud Infrastructure, notamment Oracle Autonomous Database et Oracle Autonomous Data Warehouse. Il comprend des outils, des bibliothèques et des packages centrés sur Python développés par la communauté open source et la bibliothèque Oracle Accelerated Data Science (ADS), qui prend en charge le cycle de vie de bout en bout des modèles prédictifs:

  • Acquisition de données, profilage, préparation et visualisation
  • Ingénierie des fonctionnalités
  • Formation sur modèle (y compris Oracle AutoML)
  • Évaluation, explication et interprétation du modèle (y compris Oracle MLX)
  • Déploiement de modèle vers Oracle Functions

OCI Data Science s'intègre au reste de la pile Oracle Cloud Infrastructure, y compris les fonctions, le flux de données, l'entrepôt de données autonome et le stockage d'objets.

Les modèles actuellement pris en charge comprennent:

  • Oracle AutoML
  • Keras
  • Scikit-apprendre
  • XGBoost
  • ADSTuner (réglage des hyperparamètres)

ADS prend également en charge l'explicabilité de l'apprentissage automatique (MLX).

Résumé: Oracle Cloud Infrastructure peut héberger des ressources de science des données intégrées à son entrepôt de données, à son magasin d'objets et à ses fonctions, ce qui permet un cycle de vie complet de développement de modèle.

Vertica

Vertica Analytics Platform est un entrepôt de données de stockage en colonnes évolutif. Il fonctionne selon deux modes: Enterprise, qui stocke les données localement dans le système de fichiers des nœuds qui composent la base de données, et EON, qui stocke les données en commun pour tous les nœuds de calcul.

Vertica utilise un traitement massivement parallèle pour gérer des pétaoctets de données et effectue son apprentissage automatique interne avec le parallélisme des données. Il dispose de huit algorithmes intégrés pour la préparation des données, de trois algorithmes de régression, de quatre algorithmes de classification, de deux algorithmes de clustering, de plusieurs fonctions de gestion de modèles et de la possibilité d'importer des modèles TensorFlow et PMML formés ailleurs. Une fois que vous avez ajusté ou importé un modèle, vous pouvez l'utiliser pour la prédiction. Vertica autorise également les extensions définies par l'utilisateur programmées en C ++, Java, Python ou R. Vous utilisez la syntaxe SQL pour l'apprentissage et l'inférence.

Résumé: Vertica dispose d'un bel ensemble d'algorithmes d'apprentissage automatique intégrés et peut importer des modèles TensorFlow et PMML. Il peut effectuer des prédictions à partir de modèles importés ainsi que de ses propres modèles.

EspritsDB

Si votre base de données ne prend pas déjà en charge l'apprentissage automatique interne, il est probable que vous puissiez ajouter cette fonctionnalité à l'aide de MindsDB, qui s'intègre à une demi-douzaine de bases de données et à cinq outils de BI. Les bases de données prises en charge incluent MariaDB, MySQL, PostgreSQL, ClickHouse, Microsoft SQL Server et Snowflake, avec une intégration MongoDB en préparation et des intégrations avec des bases de données en streaming promises plus tard en 2021. Les outils de BI pris en charge incluent actuellement SAS, Qlik Sense, Microsoft Power BI, Looker et Domo.

MindsDB comprend AutoML, des tableaux AI et une IA explicable (XAI). Vous pouvez appeler la formation AutoML à partir de MindsDB Studio, à partir d'une instruction SQL INSERT ou d'un appel d'API Python. La formation peut éventuellement utiliser des GPU et peut éventuellement créer un modèle de série chronologique.

Vous pouvez enregistrer le modèle en tant que table de base de données et l'appeler à partir d'une instruction SQL SELECT par rapport au modèle enregistré, à partir de MindsDB Studio ou d'un appel d'API Python. Vous pouvez évaluer, expliquer et visualiser la qualité du modèle à partir de MindsDB Studio.

Vous pouvez également connecter MindsDB Studio et l'API Python à des sources de données locales et distantes. MindsDB fournit également un cadre d'apprentissage en profondeur simplifié, Lightwood, qui s'exécute sur PyTorch.

Résumé: MindsDB apporte des fonctionnalités d'apprentissage automatique utiles à un certain nombre de bases de données dépourvues de prise en charge intégrée de l'apprentissage automatique.