当前位置: 首页 > 科技观察

MLDB是每个数据科学家梦寐以求的数据库

时间:2023-03-12 02:27:04 科技观察

现实世界的机器学习解决方案很少只是构建和测试模型的问题。管理和自动化机器学习模型的生命周期,从训练到优化,是迄今为止机器学习解决方案中最难解决的问题。为了控制模型的生命周期,数据科学家需要能够持久且大规模地查询其状态。这个问题看起来微不足道,除非你考虑到任何普通的深度学习模型都可以包含数百个隐藏层和数百万个互连节点。存储和访问大型计算图绝非易事。在大多数情况下,数据科学团队花费大量时间尝试使商品NOSQL数据库适应机器学习模型,然后才得出机器学习解决方案需要新型数据库的不太明显的结论。MLDB是专为机器学习时代设计的数据库。该平台经过优化,可以存储、转换和导航表示深度神经网络等机器学习结构的计算图。我知道您在想什么AWS云机器学习平台(例如AWSSageMaker或AzureML)已经包含了机器学习图的持久模型,那么为什么我们需要另一个解决方案呢?从现实世界的机器学习解决方案中获益的需求有很多:进入MLDBMLDB提供了一个开源本地数据库,用于存储和查询机器学习模型。该平台最初由Datacratic孵化,最近被AI巨头Elementai收购,以验证数据库引擎在现代机器学习项目中的相关性。MLDB有多种形式,例如可以部署在任何容器平台上的云服务、VirtualBoxVM或Docker实例。MLDB的架构结合了不同的工件,这些工件抽象了机器学习解决方案生命周期的不同元素。从技术上讲,MLDB模型可以概括为六个简单的组件:文件、数据集、过程、函数、查询和API。归档代表MLDB架构中的一个通用抽象单元。在MLDB模型中,文件可用于加载模型数据、函数参数或保存特定数据集。MLDB支持与HDFS和S3等流行文件系统的原生集成。数据集MLDB数据集代表流程和机器学习模型使用的主要数据单元。在结构上,数据集是无模式的,仅附加包含在行和列交叉点的单元格中的命名数据点集。一个数据点由一个值和一个时间戳组成。因此,每个数据点都可以表示为(行、列、时间戳、值)元组,并且数据集可以被视为稀疏的3维矩阵。可以创建数据集,并可以通过MLDB的RESTAPI向其中添加数据,也可以通过过程从文件中加载或保存数据。过程在MLDB中,过程用于实现机器学习模型的不同方面,例如训练或数据转换。从技术的角度来看,过程被命名为可重用的程序,这些程序实现了长时间运行的没有返回值的批处理操作。过程通常对数据集进行操作,并且可以通过SQL表达式进行配置。流程的输出可以包括数据集和文件。功能性MLDB函数抽象了过程中使用的数据计算例程。函数被命名为可重用程序,用于实现可以接受输入值并返回输出值的流式计算。通常,MLDB函数封装了表示特定计算的SQL表达式。查询MLDB的主要优点之一是它使用SQL作为查询存储在数据库中的数据的机制。该平台支持相当完整的基于SQL的语法,其中包括熟悉的结构,例如SELECT、WHERE、FROM、GROUPBY、ORDERBY等。例如,在MLDB中,我们可以使用SQL查询为图像分类模型准备训练数据集:mldb.query("SELECT*FROMimagesLIMIT3000")API并且PymldbMLDB的所有功能都通过一个简单的RESTAPI公开。该平台还包括pymldb,这是一个以非常友好的语法抽象API功能的Python库。以下代码显示了如何使用pymldb创建和查询数据集。frompymldbimportConnectionmldb=Connection("http://localhost")mldb.put("/v1/datasets/demo",{"type":"sparse.mutable"})mldb.post("/v1/datasets/demo/rows",{"rowName":"first","columns":[["a",1,0],["b",2,0]]})mldb.post("/v1/datasets/demo/rows",{"rowName":"second","columns":[["a",3,0],["b",4,0]]})mldb.post("/v1/datasets/demo/commit")df=mldb.query("select*fromdemo")printtype(df)支持机器学习算法MLDB支持大量的算法,例如可以从“过程和函数”中使用的算法。该平台还原生支持TensorFlow等不同深度学习引擎的计算图。将它们结合在一起让我们以机器学习解决方案中的常见工作流为例,例如模型的训练和评分。下图说明了这是如何在MLDB中实现的:>来源:https://mldb.ai/该过程从一个充满训练数据的文件开始,该文件被加载到训练数据集中。运行训练程序生成模型文件模型文件用于对评分函数进行参数化该评分函数可以通过REST端点立即访问进行实时评分评分函数也可以通过SQL查询立即访问批量评分过程使用SQL应用评分函数MLDB是第一个为机器学习解决方案重新设计的数据库实例。该平台仍然可以改进很多以支持现代机器和深度学习技术,但它的灵活性和可扩展性使其成为这个新领域的主要迭代。