Principais bancos de dados que oferecem suporte ao aprendizado de máquina em banco de dados

Atualização: 20 de maio de 2021
Principais bancos de dados que oferecem suporte ao aprendizado de máquina em banco de dados

Em meu artigo de agosto de 2020, "Como escolher uma plataforma de aprendizado de máquina em nuvem", minha primeira diretriz para escolher uma plataforma foi: "Esteja perto de seus dados". Manter o código próximo aos dados é necessário para manter a latência baixa, pois a velocidade da luz limita as velocidades de transmissão. Afinal, o aprendizado de máquina - especialmente o aprendizado profundo - tende a passar por todos os seus dados várias vezes (cada vez que passar é chamado de época).

Eu disse na época que o caso ideal para conjuntos de dados muito grandes é construir o modelo onde os dados já residem, de forma que nenhuma transmissão de dados em massa seja necessária. Vários bancos de dados suportam isso de forma limitada. A próxima pergunta natural é: quais bancos de dados oferecem suporte ao aprendizado de máquina interno e como eles fazem isso? Discutirei esses bancos de dados em ordem alfabética.

Amazon RedShift

O Amazon Redshift é um serviço de armazenamento de dados gerenciado em escala de petabytes projetado para tornar simples e econômica a análise de todos os seus dados usando as ferramentas de inteligência de negócios existentes. Ele é otimizado para conjuntos de dados que variam de algumas centenas de gigabytes a um petabyte ou mais e custa menos de US $ 1,000 por terabyte por ano.

O Amazon Redshift ML foi projetado para tornar mais fácil para os usuários SQL criar, treinar e implantar modelos de aprendizado de máquina usando comandos SQL. O comando CREATE MODEL no Redshift SQL define os dados a serem usados ​​para treinamento e a coluna de destino e, em seguida, passa os dados para o Amazon SageMaker Autopilot para treinamento por meio de um bucket criptografado do Amazon S3 na mesma zona.

Após o treinamento do AutoML, o Redshift ML compila o melhor modelo e o registra como uma função SQL de previsão no cluster Redshift. Você pode então invocar o modelo para inferência chamando a função de previsão dentro de uma instrução SELECT.

Resumo: Redshift ML usa SageMaker Autopilot para criar modelos de previsão automaticamente a partir dos dados que você especifica por meio de uma instrução SQL, que é extraída para um balde S3. A melhor função de previsão encontrada está registrada no cluster Redshift.

SQL em chamas

BlazingSQL é um mecanismo de SQL acelerado por GPU construído sobre o ecossistema RAPIDS; ele existe como um projeto de código aberto e um serviço pago. RAPIDS é um conjunto de bibliotecas de software de código aberto e APIs, incubado pela Nvidia, que usa CUDA e é baseado no formato de memória colunar Apache Arrow. CuDF, parte do RAPIDS, é uma biblioteca GPU DataFrame semelhante ao Pandas para carregar, juntar, agregar, filtrar e manipular dados de outra forma.

Dask é uma ferramenta de código aberto que pode escalar pacotes Python para várias máquinas. Dask pode distribuir dados e computação em várias GPUs, no mesmo sistema ou em um cluster de vários nós. Dask se integra com RAPIDS cuDF, XGBoost e RAPIDS cuML para análise de dados acelerada por GPU e aprendizado de máquina.

Resumo: BlazingSQL pode executar consultas aceleradas por GPU em data lakes no Amazon S3, passar os DataFrames resultantes para cuDF para manipulação de dados e, finalmente, realizar aprendizado de máquina com RAPIDS XGBoost e cuML e aprendizado profundo com PyTorch e TensorFlow.

Google CloudBigQuery

O BigQuery é o armazenamento de dados gerenciado do Google Cloud em escala de petabytes que permite executar análises em grandes quantidades de dados quase em tempo real. O BigQuery ML permite criar e executar modelos de aprendizado de máquina no BigQuery usando consultas SQL.

O BigQuery ML oferece suporte para regressão linear para previsão; regressão logística binária e multiclasse para classificação; Clustering K-means para segmentação de dados; fatoração de matrizes para criação de sistemas de recomendação de produtos; séries temporais para realizar previsões de séries temporais, incluindo anomalias, sazonalidade e feriados; Modelos de classificação e regressão XGBoost; Redes neurais profundas baseadas em TensorFlow para modelos de classificação e regressão; AutoML Tables; e importação de modelo do TensorFlow. Você pode usar um modelo com dados de vários conjuntos de dados do BigQuery para treinamento e previsão. O BigQuery ML não extrai os dados do data warehouse. Você pode realizar a engenharia de recursos com o BigQuery ML usando a cláusula TRANSFORM em sua instrução CREATE MODEL.

Resumo: O BigQuery ML traz muito do poder do Google Cloud Machine Learning para o data warehouse do BigQuery com sintaxe SQL, sem extrair os dados do data warehouse.

Armazém IBM Db2

O IBM Db2 Warehouse on Cloud é um serviço de nuvem pública gerenciado. Também é possível configurar o IBM Db2 Warehouse no local com seu próprio hardware ou em uma nuvem privada. Como data warehouse, inclui recursos como processamento de dados na memória e tabelas colunares para processamento analítico online. É Neteza tecnologia fornece um conjunto robusto de análises projetadas para levar a consulta aos dados de maneira eficiente. Uma variedade de bibliotecas e funções ajudam você a obter os insights precisos de que precisa.

O Db2 Warehouse oferece suporte ao aprendizado de máquina no banco de dados em Python, R e SQL. O IDAX módulo contém procedimentos analíticos armazenados, incluindo análise de variância, regras de associação, transformação de dados, árvores de decisão, medidas de diagnóstico, discretização e momentos, agrupamento K-means, k-vizinhos mais próximos, regressão linear, gerenciamento de metadados, classificação Bayes ingênua, análise de componentes principais, distribuições de probabilidade, amostragem aleatória, árvores de regressão, padrões e regras sequenciais e estatísticas paramétricas e não paramétricas.

Resumo: IBM Db2 Warehouse inclui um amplo conjunto de análises SQL no banco de dados que inclui algumas funcionalidades básicas de aprendizado de máquina, além de suporte no banco de dados para R e Python.

Oracle Database

O Kinetica Streaming Data Warehouse combina a análise de dados históricos e de streaming com inteligência de localização e IA em uma única plataforma, acessível via API e SQL. Kinetica é um banco de dados muito rápido, distribuído, colunar, com memória em primeiro lugar e acelerado por GPU, com funcionalidade de filtragem, visualização e agregação.

Kinetica integra modelos de aprendizado de máquina e algoritmos com seus dados para análises preditivas em tempo real em escala. Ele permite que você simplifique seus pipelines de dados e o ciclo de vida de suas análises, modelos de aprendizado de máquina e engenharia de dados, e calcule recursos com streaming. Kinetica fornece uma solução de ciclo de vida completo para aprendizado de máquina acelerado por GPUs: notebooks Jupyter gerenciados, treinamento de modelo via RAPIDS e implantação e inferência de modelo automatizado na plataforma Kinetica.

Resumo: Kinetica fornece uma solução completa de ciclo de vida no banco de dados para aprendizado de máquina acelerado por GPUs e pode calcular recursos de dados de streaming.

Microsoft SQL Server

O Microsoft SQL Server Machine Learning Services oferece suporte a R, Python, Java, o comando PREDICT T-SQL e o procedimento armazenado rx_Predict no RDBMS do SQL Server e SparkML nos clusters de Big Data do SQL Server. Nas linguagens R e Python, a Microsoft inclui vários pacotes e bibliotecas para aprendizado de máquina. Você pode armazenar seus modelos treinados no banco de dados ou externamente. A instância gerenciada do Azure SQL oferece suporte a Machine Learning Services para Python e R como uma visualização.

O Microsoft R tem extensões que permitem processar dados do disco e também da memória. O SQL Server fornece uma estrutura de extensão para que o código R, Python e Java possa usar dados e funções do SQL Server. Os clusters de Big Data do SQL Server executam SQL Server, Spark e HDFS no Kubernetes. Quando o SQL Server chama o código Python, ele pode, por sua vez, invocar o Azure Machine Learning e salvar o modelo resultante no banco de dados para uso em previsões.

Resumo: As versões atuais do SQL Server podem treinar e inferir modelos de aprendizado de máquina em várias linguagens de programação.

Oracle Database

Oracle Cloud Infrastructure (OCI) Data Science é uma plataforma gerenciada e sem servidor para equipes de ciência de dados construir, treinar e gerenciar modelos de aprendizado de máquina usando Oracle Cloud Infrastructure, incluindo Oracle Autonomous Database e Oracle Autonomous Data Warehouse. Inclui ferramentas, bibliotecas e pacotes centrados em Python desenvolvidos pela comunidade de código aberto e a biblioteca Oracle Accelerated Data Science (ADS), que oferece suporte ao ciclo de vida de ponta a ponta de modelos preditivos:

  • Aquisição de dados, criação de perfil, preparação e visualização
  • Engenharia de recursos
  • Treinamento de modelo (incluindo Oracle AutoML)
  • Avaliação, explicação e interpretação do modelo (incluindo Oracle MLX)
  • Implantação de modelo para funções Oracle

OCI Data Science integra-se ao restante da pilha de infraestrutura em nuvem da Oracle, incluindo funções, fluxo de dados, armazenamento de dados autônomo e armazenamento de objetos.

Os modelos atualmente suportados incluem:

  • Oracle AutoML
  • Keras
  • Scikit-learn
  • XGBoostName
  • ADSTuner (ajuste de hiperparâmetro)

O ADS também oferece suporte à explicabilidade do aprendizado de máquina (MLX).

Resumo: O Oracle Cloud Infrastructure pode hospedar recursos de ciência de dados integrados com seu data warehouse, armazenamento de objetos e funções, permitindo um ciclo de vida completo de desenvolvimento de modelo.

vertical

Vertica Analytics Platform é um data warehouse de armazenamento colunar escalonável. Ele é executado em dois modos: Enterprise, que armazena dados localmente no sistema de arquivos dos nós que compõem o banco de dados, e EON, que armazena dados comunalmente para todos os nós de computação.

A Vertica usa processamento massivamente paralelo para lidar com petabytes de dados e faz seu aprendizado de máquina interno com paralelismo de dados. Possui oito algoritmos integrados para preparação de dados, três algoritmos de regressão, quatro algoritmos de classificação, dois algoritmos de agrupamento, várias funções de gerenciamento de modelo e a capacidade de importar modelos TensorFlow e PMML treinados em outro lugar. Depois de ajustar ou importar um modelo, você pode usá-lo para previsão. O Vertica também permite extensões definidas pelo usuário programadas em C ++, Java, Python ou R. Você usa a sintaxe SQL para treinamento e inferência.

Resumo: Vertica tem um bom conjunto de algoritmos de aprendizado de máquina integrados e pode importar modelos TensorFlow e PMML. Ele pode fazer previsões a partir de modelos importados, bem como de seus próprios modelos.

MindsDBName

Se o seu banco de dados ainda não oferece suporte ao aprendizado de máquina interno, é provável que você possa adicionar esse recurso usando MindsDB, que se integra com meia dúzia de bancos de dados e cinco ferramentas de BI. Os bancos de dados com suporte incluem MariaDB, MySQL, PostgreSQL, ClickHouse, Microsoft SQL Server e Snowflake, com integração MongoDB em andamento e integrações com bancos de dados de streaming prometidos mais tarde em 2021. Ferramentas de BI com suporte atualmente incluem SAS, Qlik Sense, Microsoft Power BI, Looker e Domo.

MindsDB apresenta AutoML, tabelas AI e AI explicável (XAI). Você pode invocar o treinamento AutoML do MindsDB Studio, de uma instrução SQL INSERT ou de uma chamada de API Python. O treinamento pode, opcionalmente, usar GPUs e, opcionalmente, criar um modelo de série temporal.

Você pode salvar o modelo como uma tabela de banco de dados e chamá-lo de uma instrução SQL SELECT contra o modelo salvo, do MindsDB Studio ou de uma chamada de API Python. Você pode avaliar, explicar e visualizar a qualidade do modelo no MindsDB Studio.

Você também pode conectar o MindsDB Studio e a API Python a fontes de dados locais e remotas. MindsDB também fornece uma estrutura simplificada de aprendizado profundo, Lightwood, que roda em PyTorch.

Resumo: MindsDB oferece recursos úteis de aprendizado de máquina para vários bancos de dados que não possuem suporte integrado para aprendizado de máquina.