本文中介绍的这些数据库尽管在方法和功能上存在差异,但是都允许用户在数据所在的位置上构建机器学习模型。
机器学习,特别是深度学习往往会多次遍历所有数据(遍历一次被称为一个epoch)。对于非常大的数据集来说,理想的情况是在存储数据的地方建立模型,这样就不需要大量的数据传输。目前已经有部分数据库在一定程度上支持这种功能。我们会很自然地问到一个问题,即哪些数据库支持内部机器学习,它们又是如何做到的?下面我将对这些数据库进行探讨。
Amazon Redshift为托管的PB级数据仓库服务,旨在让使用现有商业智能工具对数据进行分析的工作变得更加简单且经济高效。其专门针对数据集进行了优化,成本合算下来每年每TB不到1000美元。
在AutoML训练之后,Redshift ML将编译最佳模型并将其注册为Redshift集群中的预测函数。随后,用户可以通过在SELECT语句中调用预测函数的方式调用模型进行推测。
|BlazingSQL|
开源工具Dask可将Python套件扩展到多台机器上。此外,Dask还可在同一系统或多节点集群中通过多个GPU分发数据和计算。整合了RAPIDS cuDF、XGBoost和RAPIDS cuML的Dask可用于GPU加速的数据分析和机器学习当中。
|谷歌Cloud BigQuery|
BigQueryML支持用于预测的线性回归、用于分类的二元多类逻辑回归、用于数据分割的K-均值聚类、用于创建产品推荐系统的矩阵分解、用于执行时间序列预测的时间序列、XGBoost分类和回归模型、分类和回归模型专用的基于TensorFlow的深度神经网络、AutoML Tables、TensorFlow模型导入。用户可以使用来自多个BigQuery数据集的数据模型进行训练和预测。虽然BigQuery ML不会从数据仓库中提取数据,但是用户可以使用CREATE MODEL语句中的TRANSFORM子句,通过BigQuery ML执行特征工程。
|IBM Db2 Warehouse|
Db2 Warehouse支持Python、R和SQL中的数据库机器学习。IDAX模块中有分析存储程序,包括方差分析、关联规则、数据转换、决策树、诊断、K均值聚类、K近邻、线性回归、元数据管理、naive贝叶斯分类、主要素分析、概率分布、随机抽样、回归树、序列模式与规则,以及参数和非参数统计等等。
|Kinetica|
为了实现大规模的实时预测分析,Kinetica将机器学习模型和算法与用户的数据集成在一起,并且允许用户对分析数据管道、机器学习模型、数据工程的生命周期以及流计算功能进行优化。Kinetica为GPU加速的机器学习提供了一个全生命周期解决方案,包括管理Jupyter笔记本,通过RAPIDS进行模型训练,以及Kinetica平台中的自动模型部署和推理。
|微软SQL Server|
R语言可以处理来自磁盘和内存中的数据。SQL Server提供了一个扩展框架,以便R、Python和Java代码可以使用SQL Server数据和函数。SQL Server Big Data Clusters可在Kubernetes中运行SQL Server、Spark和HDFS。当SQL Server调用Python代码时,Azure机器学习也可以被调用,生成的模型将被保存在数据库中以用于预测。
|甲骨文数据库|
数据采集、分析、准备和可视化
模型训练(包括Oracle AutoML)
Oracle Functions中的模型部署
目前支持的模型包括:
Keras
XGBoost
此外,ADS还支持MLX(机器学习可解释性)。
|Vertica|
Vertica使用大规模并行运算处理PB级数据,并通过数据并行进行内部机器学习。该产品有8个用于数据准备的内置算法、3个回归算法、4个分类算法、2个聚类算法以及多个模型管理函数,并具备将已训练的TensorFlow和PMML模型导入至其他地方的功能。在导入了模型之后,用户就可以使用它们进行预测。Vertica 还允许用户使用由C++、Java、Python或R等语言编译的自定义扩展程序。此外,用户还可以使用SQL语法进行训练和推理。
|其它选择:MindsDB|
MindsDB的功能还包括AutoML、AI表和可解释的人工智能(XAI)。用户可以从MindsDB Studio、SQL INSERT语句或Python API调用中调用AutoML训练。用户可以选择使用GPU进行训练,也可以选择创建时间序列模型。
与此同时,用户还可以将MindsDB Studio和 Python API 与本地和远程数据源联接在一起。MindsDB还额外提供了一个可在PyTorch上运行的简化版深度学习框架Lightwood。
越来越多的数据库开始在内部支持机器学习。虽然机制各不相同,但是有些机制确实性能更加出众。如果拥有大量数据,且需要为采样子集选择适当的模型,那么上面所列的8个数据库,以及支持MindsDB的其他数据库都可以帮助用户为完整的数据集构建模型,并且不需要担心因数据导出导致费用严重超支。
ID:jrtt
