虽然方法和能力不同,但所有这些数据库都允许你在数据所在的地方建立机器学习模型。
在我2020年8月的文章《如何选择云机器学习平台》中,我选择平台的第一条准则是:"要靠近你的数据。"让代码靠近数据是保持低延迟的必要条件,因为光速限制了传输速度。毕竟,机器学习--尤其是深度学习--往往会多次浏览你的所有数据(每次浏览被称为一个纪元)。
我当时说,对于非常大的数据集,最理想的情况是在数据已经存在的地方建立模型,这样就不需要大规模的数据传输。有几个数据库在有限的程度上支持这一点。下一个问题自然是,哪些数据库支持内部机器学习,以及它们是如何做到的?我将按字母顺序讨论这些数据库。
亚马逊Redshift
亚马逊Redshift是一个可管理的、PB级的数据仓库服务,旨在使使用现有的商业智能工具分析所有的数据变得简单而经济。它针对从几百GB到一PB或更多的数据集进行了优化,每年每TB的成本低于1,000美元。
亚马逊Redshift ML旨在让SQL用户使用SQL命令轻松创建、训练和部署机器学习模型。Redshift SQL中的CREATE MODEL命令定义了用于训练的数据和目标列,然后通过同一区域的加密Amazon S3桶将数据传递给Amazon SageMaker Autopilot进行训练。
在AutoML训练之后,Redshift ML编译出最佳模型,并将其注册为Redshift集群中的预测SQL函数。然后,你可以通过在SELECT语句中调用预测函数来调用该模型进行推理。
总结。Redshift ML使用SageMaker Autopilot,从你通过SQL语句指定的数据中自动创建预测模型,这些数据被提取到S3桶。找到的最佳预测函数被注册在Redshift集群中。
BlazingSQL
BlazingSQL是一个建立在RAPIDS生态系统之上的GPU加速的SQL引擎;它作为一个开源项目和付费服务存在。RAPIDS是一套开源软件库和API,由Nvidia孵化,使用CUDA并基于Apache Arrow列式内存格式。CuDF是RAPIDS的一部分,是一个类似于Pandas的GPU DataFrame库,用于加载、连接、聚合、过滤和其他操作数据。
Dask是一个开源的工具,可以将Python包扩展到多台机器。Dask可以将数据和计算分布在多个GPU上,无论是在同一系统中还是在多节点集群中。Dask与RAPIDS cuDF、XGBoost和RAPIDS cuML集成,用于GPU加速的数据分析和机器学习。
摘要:BlazingSQL可以在Amazon S3的数据湖上运行GPU加速查询,将产生的DataFrames传递给cuDF进行数据操作,最后用RAPIDS XGBoost和cuML进行机器学习,用PyTorch和TensorFlow进行深度学习。
谷歌云BigQuery
BigQuery是谷歌云管理的、PB级的数据仓库,让你可以近乎实时地在大量数据上运行分析。BigQuery ML让你在BigQuery中使用SQL查询创建和执行机器学习模型。
BigQuery ML支持用于预测的线性回归;用于分类的二元和多类逻辑回归;用于数据分割的K-means聚类;用于创建产品推荐系统的矩阵分解;用于执行时间序列预测的时间序列,包括异常情况、季节性和假期;XGBoost分类和回归模型;用于分类和回归模型的基于TensorFlow的深度神经网络;AutoML表;以及TensorFlow模型导入。你可以用来自多个BigQuery数据集的数据来使用一个模型进行训练和预测。BigQuery ML不从数据仓库中提取数据。您可以通过在CREATE MODEL语句中使用TRANSFORM子句来执行BigQuery ML的特征工程。
*总结:*BigQuery ML将谷歌云机器学习的大部分功能带入BigQuery数据仓库的SQL语法,而不从数据仓库中提取数据。
IBM Db2仓库
IBM Db2 Warehouse on Cloud是一项管理的公共云服务。您也可以在您自己的硬件场所或在私有云中设置IBM Db2 Warehouse。作为一个数据仓库,它包括内存数据处理和在线分析处理的柱状表等功能。它的Netezza技术提供了一套强大的分析方法,旨在有效地将查询带到数据中。一系列的库和函数帮助你获得你所需要的精确洞察力。
Db2 Warehouse支持Python、R和SQL的数据库内机器学习。IDAX模块包含分析存储程序,包括方差分析、关联规则、数据转换、决策树、诊断措施、离散化和时刻、K-means聚类、K-近邻、线性回归、元数据管理、天真贝叶斯分类、主成分分析、概率分布、随机抽样、回归树、顺序模式和规则,以及参数和非参数统计。
摘要:IBM Db2 Warehouse包括一套广泛的数据库内SQL分析,包括一些基本的机器学习功能,以及对R和Python的数据库内支持。
基础设施
Kinetica流数据仓库将历史和流数据分析与位置智能和人工智能结合在一个平台上,所有这些都可以通过API和SQL访问。Kinetica是一个非常快速、分布式、列式、内存优先、GPU加速的数据库,具有过滤、可视化和聚合功能。
Kinetica将机器学习模型和算法与你的数据整合在一起,以实现大规模的实时预测性分析。它允许你简化你的数据管道和你的分析、机器学习模型和数据工程的生命周期,并通过流媒体计算功能。Kinetica为由GPU加速的机器学习提供了一个完整的生命周期解决方案:管理Jupyter笔记本,通过RAPIDS进行模型训练,以及在Kinetica平台上自动部署模型和推理。
摘要:Kinetica为通过GPU加速的机器学习提供了一个完整的数据库内解决方案,并能从流媒体数据中计算出特征。
微软SQL服务器
Microsoft SQL Server机器学习服务支持R、Python、Java、PREDICT T-SQL命令,以及SQL Server RDBMS中的rx_Predict存储过程,以及SQL Server大数据集群中的SparkML。在R和Python语言中,微软包括几个机器学习的包和库。你可以将训练好的模型存储在数据库中或外部。Azure SQL管理实例支持Python和R的机器学习服务作为预览。
微软R有一些扩展,允许它从磁盘以及内存中处理数据。SQL Server提供了一个扩展框架,使R、Python和Java代码可以使用SQL Server的数据和函数。SQL Server大数据集群在Kubernetes中运行SQL Server、Spark和HDFS。当SQL Server调用Python代码时,它可以反过来调用Azure机器学习,并将产生的模型保存在数据库中用于预测。
摘要:当前版本的SQL Server可以用多种编程语言训练和推断机器学习模型。
甲骨文数据库
甲骨文云基础设施(OCI)数据科学是一个受管理的无服务器平台,供数据科学团队使用甲骨文云基础设施(包括甲骨文自主数据库和甲骨文自主数据仓库)构建、训练和管理机器学习模型。它包括由开源社区开发的以Python为中心的工具、库和包,以及支持预测模型端到端生命周期的Oracle加速数据科学(ADS)库。
- 数据采集、分析、准备和可视化
- 特征工程
- 模型训练(包括Oracle AutoML)
- 模型评估、解释和说明(包括Oracle MLX)
- 模型部署到Oracle功能
OCI数据科学与Oracle云基础设施堆栈的其他部分相整合,包括功能、数据流、自主数据仓库和对象存储。
目前支持的模型包括
ADS还支持机器学习可解释性(MLX)。
摘要:甲骨文云基础设施可以承载与其数据仓库、对象存储和功能相集成的数据科学资源,允许完整的模型开发生命周期。
Vertica
Vertica分析平台是一个可扩展的柱状存储数据仓库。它以两种模式运行。企业模式,在构成数据库的节点的文件系统中本地存储数据,以及EON模式,为所有计算节点共同存储数据。
Vertica使用大规模并行处理来处理PB级的数据,并利用数据并行性进行内部机器学习。它有八个内置的数据准备算法,三个回归算法,四个分类算法,两个聚类算法,几个模型管理功能,以及导入在其他地方训练的TensorFlow和PMML模型的能力。一旦你拟合或导入了一个模型,你就可以使用它进行预测。Vertica还允许用C++、Java、Python或R编程的用户定义的扩展。
总结:Vertica内置了一套很好的机器学习算法,并且可以导入TensorFlow和PMML模型。它可以从导入的模型以及自己的模型进行预测。
MindsDB
如果你的数据库还不支持内部机器学习,你很可能可以使用MindsDB来增加这种能力,它与半打数据库和五个BI工具集成。支持的数据库包括MariaDB、MySQL、PostgreSQL、ClickHouse、Microsoft SQL Server和Snowflake,MongoDB的集成正在进行中,并承诺在2021年晚些时候与流数据库集成。目前支持的BI工具包括SAS、Qlik Sense、微软Power BI、Looker和Domo。
MindsDB具有AutoML、AI表和可解释AI(XAI)的功能。你可以从MindsDB Studio、SQL INSERT语句或Python API调用来调用AutoML训练。训练可以选择使用GPU,并可以选择创建一个时间序列模型。
你可以将模型保存为一个数据库表,并从MindsDB Studio或Python API调用SQL SELECT语句对保存的模型进行调用。你可以从MindsDB Studio评估、解释和可视化模型质量。
你还可以将MindsDB Studio和Python API连接到本地和远程数据源。MindsDB还提供了一个简化的深度学习框架Lightwood,它在PyTorch上运行。
摘要:MindsDB为一些缺乏内置机器学习支持的数据库带来了有用的机器学习能力。
越来越多的数据库支持在内部进行机器学习。具体的机制各不相同,有的比其他的更有能力。如果你有如此多的数据,以至于你可能不得不在抽样的子集上拟合模型,那么上面列出的八个数据库中的任何一个,以及在MindsDB的帮助下的其他数据库,都可能帮助你从完整的数据集中建立模型,而不会产生严重的数据导出费用。
相关的: