【机器学习】10个数据库支持数据库机器学习
尽管方法和功能有所不同,但所有这些数据库都允许您在数据所在的地方构建机器学习模型。
在我2022年10月的文章《如何选择云机器学习平台》中,我选择平台的第一条准则是“靠近数据”。保持代码靠近数据是保持低延迟的必要条件,因为光速限制了传输速度。毕竟,机器学习——尤其是深度学习——往往会多次浏览所有数据(每次浏览都被称为一个时代)。
对于非常大的数据集,理想的情况是在数据已经存在的地方构建模型,这样就不需要大量数据传输。几个数据库在有限程度上支持这一点。下一个自然的问题是,哪些数据库支持内部机器学习,它们是如何做到的?我将按字母顺序讨论这些数据库。
Amazon Redshift
AmazonRedshift是一种受管理的PB级数据仓库服务,旨在使使用现有商业智能工具分析所有数据变得简单且经济高效。它针对从几百GB到1 PB或更多的数据集进行了优化,每年每TB的成本不到1000美元。
AmazonRedshiftML旨在让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是一个基于RAPID生态系统的GPU加速SQL引擎;它是一个开源项目和付费服务。RAPID是一套开源软件库和API,由Nvidia开发,使用CUDA,基于Apache Arrow柱状内存格式。CuDF是RAPID的一部分,是一个类似Pandas的GPU DataFrame库,用于加载、连接、聚合、过滤和以其他方式处理数据。
[参加11月8日的虚拟峰会-首席信息官云峰会的未来:掌握复杂性和数字创新–立即注册!]
Dask是一个开源工具,可以将Python包扩展到多台机器。Dask可以在同一系统或多节点集群中的多个GPU上分发数据和计算。Dask与RAPID cuDF、XGBoost和RAPID cuML集成,用于GPU加速数据分析和机器学习。
总结:BlazingSQL可以在AmazonS3中的数据湖上运行GPU加速查询,将生成的DataFrames传递给cuDF进行数据处理,最后使用RAPID XGBoost和cuML进行机器学习,并使用PyTorch和TensorFlow进行深度学习。
Brytlyt
Brytlyt是一个以浏览器为主导的平台,支持具有深度学习能力的数据库内AI。Brytlyt将PostgreSQL数据库、PyTorch、Jupyter笔记本、Scikit learn、NumPy、Pandas和MLflow组合成一个无服务器平台,作为三种GPU加速产品:数据库、数据可视化工具和使用笔记本的数据科学工具。
Brytlyt可以连接任何具有PostgreSQL连接器的产品,包括Tableau和Python等BI工具。它支持从外部数据文件(如CSV)和PostgreSQL外部数据包装器(FDW)支持的外部SQL数据源加载和接收数据。后者包括Snowflake、Microsoft SQL Server、Google Cloud BigQuery、Databricks、Amazon Redshift和Amazon Athena等。
作为一个具有并行连接处理的GPU数据库,Brytlyt可以在几秒内处理数十亿行数据。Brytlyt在电信、零售、石油和天然气、金融、物流、DNA和基因组学方面有应用。
小结:通过PyTorch和Scikit学习集成,Brytlyt可以支持深度学习和简单的机器学习模型,这些模型在内部根据其数据运行。GPU支持和并行处理意味着所有操作都相对较快,尽管针对数十亿行训练复杂的深度学习模型当然需要一些时间。
谷歌云BigQuery
BigQuery是谷歌云管理的PB级数据仓库,可让您对大量数据进行近乎实时的分析。BigQueryML允许您使用SQL查询在BigQuery中创建和执行机器学习模型。
BigQueryML支持预测的线性回归;用于分类的二元和多类逻辑回归;用于数据分割的K-means聚类;用于创建产品推荐系统的矩阵分解;执行时间序列预测的时间序列,包括异常、季节性和假日;XGBoost分类和回归模型;用于分类和回归模型的基于TensorFlow的深度神经网络;AutoML表格;和TensorFlow模型导入。您可以使用具有来自多个BigQuery数据集的数据的模型进行训练和预测。BigQueryML不会从数据仓库中提取数据。通过在CREATEMODEL语句中使用TRANSFORM子句,可以使用BigQueryML执行特性工程。
总结:BigQueryML将Google Cloud Machine Learning的大部分功能与SQL语法结合到BigQuery数据仓库中,而无需从数据仓库中提取数据。
IBM Db2仓库
IBM Db2 Warehouse on Cloud是一个托管的公共云服务。您还可以使用自己的硬件或在私有云中在本地设置IBM Db2 Warehouse。作为数据仓库,它包括内存数据处理和用于在线分析处理的列表等功能。其Netezza技术提供了一组强大的分析,旨在有效地将查询带到数据中。一系列库和函数帮助您获得所需的精确见解。
Db2Warehouse支持Python、R和SQL中的数据库内机器学习。IDAX模块包含分析存储过程,包括方差分析、关联规则、数据转换、决策树、诊断度量、离散化和矩、K均值聚类、K近邻、线性回归、元数据管理、朴素贝叶斯分类、主成分分析、概率分布、随机抽样、回归树、,顺序模式和规则以及参数和非参数统计。
概要:IBM Db2 Warehouse包括一组广泛的数据库内SQL分析,其中包括一些基本的机器学习功能,以及对R和Python的数据库内支持。
Kinetica
Kinetica流式数据仓库将历史和流式数据分析与位置智能和AI结合在一个平台上,所有这些都可以通过API和SQL访问。Kinetica是一个非常快速、分布式、列式、内存优先、GPU加速的数据库,具有过滤、可视化和聚合功能。
Kinetica将机器学习模型和算法与您的数据相集成,用于大规模实时预测分析。它允许您简化数据管道和分析、机器学习模型和数据工程的生命周期,并使用流计算功能。Kinetica为GPU加速的机器学习提供了全生命周期解决方案:托管Jupyter笔记本电脑、通过RAPID进行模型训练,以及Kinetica平台中的自动模型部署和推理。
小结:Kinetica为GPU加速的机器学习提供了一个完整的数据库生命周期解决方案,可以从流数据中计算特征。
Microsoft SQL Server
Microsoft SQL Server Machine Learning Services支持SQL Server RDBMS中的R、Python、Java、PREDICT T-SQL命令和rxPredict存储过程,以及SQL Server大数据集群中的SparkML。在R语言和Python语言中,Microsoft包括几个用于机器学习的包和库。您可以将经过训练的模型存储在数据库中或外部。Azure SQL托管实例支持Python和R的机器学习服务作为预览。
Microsoft R具有扩展功能,允许它处理磁盘和内存中的数据。SQL Server提供了一个扩展框架,以便R、Python和Java代码可以使用SQL Server数据和函数。SQL Server大数据集群在Kubernetes中运行SQL Server、Spark和HDFS。当SQL Server调用Python代码时,它可以反过来调用Azure Machine Learning,并将生成的模型保存在数据库中以用于预测。
摘要:当前版本的SQL Server可以用多种编程语言训练和推断机器学习模型。
Oracle数据库
Oracle云基础设施(OCI)数据科学是一个可管理的无服务器平台,供数据科学团队使用Oracle云基础架构(包括Oracle自治数据库和Oracle自治数据仓库)构建、培训和管理机器学习模型。它包括开放源码社区开发的以Python为中心的工具、库和包,以及支持预测模型端到端生命周期的Oracle加速数据科学(ADS)库:
- 数据采集、分析、准备和可视化
- 功能工程
- 模型培训(包括Oracle AutoML)
- 模型评估、解释和解释(包括Oracle MLX)
- Oracle功能的模型部署
OCI数据科学与Oracle云基础架构堆栈的其他部分集成,包括功能、数据流、自主数据仓库和对象存储。
当前支持的型号包括:
- Oracle AutoML
- Keras
- Scikit-learn
- XGBoost
- ADSTuner (hyperparameter tuning)
总结:Oracle云基础架构可以托管与其数据仓库、对象存储和功能集成的数据科学资源,从而实现完整的模型开发生命周期。
Vertica公司
Vertica Analytics Platform是一个可扩展的柱状存储数据仓库。它以两种模式运行:Enterprise和EON,前者将数据本地存储在组成数据库的节点的文件系统中,后者为所有计算节点共同存储数据。
Vertica使用大规模并行处理来处理数PB的数据,并使用数据并行性进行内部机器学习。它有八个内置的数据准备算法,三个回归算法,四个分类算法,两个聚类算法,几个模型管理功能,以及导入TensorFlow和PMML模型的能力。拟合或导入模型后,可以将其用于预测。Vertica还允许使用C++、Java、Python或R编程的用户定义扩展。您可以使用SQL语法进行训练和推理。
总结:Vertica内置了一套不错的机器学习算法,可以导入TensorFlow和PMML模型。它可以从导入的模型以及自己的模型进行预测。
MindsDB
如果您的数据库还不支持内部机器学习,那么很可能可以使用MindsDB添加该功能,MindsDB集成了六个数据库和五个BI工具。支持的数据库包括MariaDB、MySQL、PostgreSQL、ClickHouse、Microsoft SQL Server和Snowflake,目前正在进行MongoDB集成,并将于2021晚些时候与流媒体数据库集成。目前支持的BI工具包括SAS、Qlik Sense、Microsoft Power BI、Looker和Domo。
MindsDB具有AutoML、AI表和可解释AI(XAI)。您可以从MindsDB Studio、SQL INSERT语句或Python API调用调用AutoML培训。培训可以选择使用GPU,也可以选择创建时间序列模型。
您可以将模型保存为数据库表,并通过针对保存的模型的SQL SELECT语句、MindsDB Studio或Python API调用来调用它。您可以从MindsDB Studio评估、解释和可视化模型质量。
您还可以将MindsDB Studio和Python API连接到本地和远程数据源。MindsDB还提供了一个简化的深度学习框架Lightwood,该框架在PyTorch上运行。
小结:MindsDB为一些缺乏机器学习内置支持的数据库带来了有用的机器学习功能。
越来越多的数据库支持在内部进行机器学习。确切的机制各不相同,有些人比其他人更有能力。然而,如果您有太多的数据,否则可能需要在采样子集上拟合模型,那么上面列出的八个数据库中的任何一个以及MindsDB帮助下的其他数据库都可以帮助您从完整的数据集构建模型,而不会导致数据导出的严重开销。
- 196 次浏览