用MemSQL进行机器学习操作的初体验!
导读:了解如何使用MemSQL,这是一种分布式数据库平台,可以在机器学习模型中进行一般的计算。
机器学习(ML)是一种分析数据的方法,通常使用分析模型是自动构建的,或从训练数据中“学习”。这个想法是,当你给它提供更多的数据点时,模型会变得更好,从而使得你的算法随着时间的推移自动变得更好。
机器学习有两个截然不同的步骤:训练和操作。训练需要一个你非常了解的数据集(称为训练集),然后探索数据集来查找模式并开发你的模型。一旦你开发了模型,就可以开始运行。这是你将其部署到生产系统的地方,它可以运行以评估新数据,然后,系统将结果返回给用户。
如何开始机器学习
要完成这些步骤,你通常会使用几个工具。首先需要一个工具来引入数据,有一个清理数据的工具、开发计算库以及测试算法的平台。一旦准备好运行模型,就需要一个兼容的平台来运行你的模型和一个应用程序来处理并显示结果。
使用MemSQL进行机器学习操作
MemSQL是一个分布式数据库平台,擅长在机器学习模型中进行通常的计算。 MemSQL是存储训练数据的一个很好的环境,因为用户可以在一个小的配置中运行它,例如在笔记本电脑上的单个节点模型。由于MemSQL与MySQL兼容,数据科学家也可以使用MySQL实例进行算法开发。
MemSQL的真正亮点在于模型的可操作性。有效操作算法的关键要求如下:
·快速提取数据
·快速计算
·扩大规模以应对增长
·与现有的库兼容
·一种强大的编程语言来表达算法
·操作管理功能,以确保数据的持久性、可用性和可靠性
MemSQL非常适合这些需求,可以通过几种不同的方式在ML解决方案中使用。
用MemSQL操作ML的3种方法
在数据库之外的计算
MemSQL可以是一个快速的服务层,它既可以存储原始数据,又可以将结果提供给客户。当使用Spark集群等现有基础结构创建模型时,这非常有用。一个真实世界的例子是一个大型的能源公司,正在使用MemSQL进行上游生产处理。该公司在世界各地都有一套石油钻机。由于部件成本和劳动力成本(因为演习经常在偏远地区),所以演习昂贵。保持钻头不会中断,会大大节省成本。钻机配备了多个传感器(收集热量,振动,方向等),将数据连续发送回Kafka队列。数据从这个队列中被抽取到一个Spark集群中,PMML(预测模型标记语言)模型计算了演练的健康状况。所得数据然后放置到MemSQL中,并且被实时地提供给演练者。如果它有损坏的危险,操作员可以放慢或重新定位钻头。拥有一个能够以高吞吐量持续摄取得分数据的数据平台,同时仍然允许模型运行,这对于实现这种情况也至关重要。由于MemSQL是一个现代的横向扩展架构和复杂的查询处理器,因此它可以比业内其他数据库更好地处理数据处理。
摄取的计算
有些客户不想维护一个单独的计算集群,但仍想利用现有的统计或ML库。在这种情况下,他们可以使用MemSQL Pipelines功能轻松将数据提取到数据库中。客户随后可以在数据到达时使用管道的变换功能执行ML评分算法。转换是一种功能,允许客户在数据插入数据库之前执行任何代码。此代码可以轻松集成或调用现有的库,如TensorFlow。然后将计算结果插入到数据库中。由于MemSQL是分布式系统,MemSQL Pipelines并行运行,因此工作负载均匀分布在集群资源上。
数据库中的计算
有时,尽可能在接近数据的情况下进行评分计算更为有效,特别是在需要将新数据与较大的历史数据集进行比较时。在这种情况下,你需要一种语言来在数据库中对算法进行编码。重要的是,语言表达能力足以使算法和核心操作更快,从而可以高效地查询现有数据,并且可以与其他功能组合。
一个成功地使用这种方法的组织的例子是Thorn,一个非营利组织,它使用图像识别来找到失踪和被剥削的孩子。该应用程序在其系统中保存了一系列被剥削儿童的照片,并将这些儿童的脸部匹配到从全国各地网站不断挑选的新照片。使用深度学习方法将新图片简化为矢量,并将其与代表基本图片的矢量进行匹配。
在使用MemSQL之前,匹配过程需要数小时或数天。通过使用MemSQL高性能矢量DOT_PRODUCT的内置功能,处理传入的图片可以在几分钟或几秒钟内完成。另一个图像识别的例子是Nyris.io,它使用类似的技术来匹配使用深度学习的产品照片以及快速的数据库DOT_PRODUCT计算。应用程序可快速将用户提供的图像与参考产品图像进行匹配,以启用电子商务交易。