大规模机器学习流程的构建与部署

文章讲的是大规模机器学习流程的构建与部署,现在有许多的机器学习算法实现是可以扩展到大数据集上的(其中包括矩阵分解、SVM、逻辑回归、LASSO 等等)。实际上,机器学习专家们很乐于指出的一点是:如果你能把机器学习问题转化为一个简单的数值优化问题,你就几近成功了。

  当然,现实的问题是,很多机器学习项目是没法简化成一个简单的优化问题的。因此数据科学家们不得不去管理和维护复杂的数据项目,加之他们所要分析的问题经常也需要特定的机器学习流程。上游流程中每个阶段的决策影响下游流程的结果,因此流程中模块的连接与交互成为了一个研究的热点。

  在Strata+Hadoop World New York的报告上,伯克利教授Ben Recht描述了他们新的伯克利 AMPLab项目,该项目旨在提供一种构建和管理大规模机器学习的通用流程。鉴于AMPLab与Spark项目的紧密联系,该项目的一些想法已在Apache Spark中初现端倪。

  基元辨识与构建

  第一步就是创建基础部件(基石).机器学习流程往往用图来描述和表达,AMPLab研究人员一直专注于针对大数据集的图节点(机器学习流程基础元件,简称基元)的扩展和优化。其中一些基元可能针对于特定领域和数据类型(例如文本,图像,声音,时空数据),一些则是针对于更加通用场景的领域(例如统计学,机器学习).最近的一个例子是ml-matrix矩阵库,该库是一个运行于Apach Spark上的分布式矩阵计算库。

  机器学习模块以基元的形式来构成机器学习系统,使得机器学习系统更易于理解。由于流程中的模块几乎都可解释,因此相对于那些依赖于黑盒子的机器学习方法,这样构建的机器学习系统更具透明性,易于解释。

  让机器学习更具模块化:简化流程融合

  尽管基元可以作为基础部件,但是用户还是需要工具来完成整个流程的构建。现如今,工作流工具已经变得越来越普遍,而且诸如此类的工具已经有很多可供数据工程师,数据科学家,甚至商业分析师等使用(例如Alteryx, RapidMiner, Alpine Data, Dataiku)。

  正如上篇博文我提到的,我们将会看到越来越多的数据分析工具,这些工具一方面为程序员提供了优雅的接口设计,一方面为提供了简单的DSL(领域特定语言)使得非专业程序员可以进行编辑。某种程度上说,通过DSL对机器学习流程(或者说对表达该流程的图结构)进行封装会变得越来越普遍。最新版本的Apache Spark (版本 1.2)提供了构建机器学习流程的API接口(如果你仔细看的话,我们已经利用DSL来实现机器学习流程构建了)。

  做一些误差分析

  “我们正在试图将机器学习系统植入自动驾驶汽车,电力系统网络等等。如果我们想让机器学习真正影响到我们的日常生活,那么我们最好能够保证机器学习系统能如那些复杂系统(就如飞行器设计系统)般稳定。”-Ben Recht

  我们是否能够去限定这种层次式流程的近似误差和收敛率呢?假定我们能够计算每个节点的误差,下一步就得有一种机制去提取整个流程的误差。实际上,我们需要在产品实际部署的时候提供工具来保证流程能正常工作,同时可以期望提供一些测量误差的方法。

  为此,Laurent Lessard、Ben Recht 和 Andrew Packard一直利用从控制理论中的技术自动地对机器学习流程生成验证证书。该方法已经能够分析大数据集上大多数流行的机器学习技术。他们更长远的目标则是能够直接通过那些复杂的,分布式软件系统的伪代码,分别推导和分析出系统的性能特征和鲁棒性。(与AMPLab相关的Velox项目提供了产品中模型的管理框架)。

  随着机器学习算法日益渗透入各个领域,我们需要更好的工具来构建复杂的,健壮性强,稳定度高的机器学习系统。虽然诸如scikit-learn 和 GraphLab已经提供了对机器学习流程构建的支持,但是像Apache Spark这种常用的分布式框架则把这种思想发挥到了极致,以使其能偶适应于更大的数据集,更广泛的人们受益。目前,AMPLab前期的一些结果还是很令人振奋的,研究者们已经构建了大规模的机器学习系统,并且在视觉,语音以及文本处理方面取得了与各自领域最好成绩都不相上下的结果。

作者:凌燕

来源:IT168

原文链接:大规模机器学习流程的构建与部署

时间: 2024-09-20 16:49:42

大规模机器学习流程的构建与部署的相关文章

蚂蚁金服资深技术专家周俊:大规模机器学习在蚂蚁+阿里的应用

8月30-31日20:00-21:30,一场别开生面的技术大会-- "蚂蚁金服&阿里云在线金融技术峰会"将在线举办.本次将聚焦数据库.应用架构.移动开发.机器学习等热门领域,帮助金融业技术开发者深入解析互联网应用的前沿应用与技术实践. 蚂蚁金服&阿里云在线金融技术峰会专题:https://yq.aliyun.com/activity/109 峰会统一报名链接:http://yq.aliyun.com/webinar/join/38 来自蚂蚁金服的资深技术专家周俊 ,将在

如何搭建大规模机器学习平台?以阿里和蚂蚁的多个实际场景为例

近年来,随着"大"数据及"大"模型的出现,学术界和工业界对分布式机器学习算法引起了广泛关注.针对这一刚需,本论文设计了一个独一无二的分布式平台--鲲鹏.它无缝的结合了分布式系统及并行优化算法,解决了大规模机器学习算法带来的一系列问题.鲲鹏不仅囊括了数据/模型并行.负载平衡.模型同步.稀疏表示.工业容错等特性,而且还提供了封闭好的.宜于调用的API供普通的机器学习者开发分布式算法,降低使用成本并提升效率. 本论文的实验在十亿级别的样本和特征数据上进行,结果表示,鲲鹏这

轻量级大规模机器学习算法库Fregata开源:快速,无需调参

一. 大规模机器学习的挑战 随着互联网,移动互联网的兴起,可以获取的数据变得越来越多,也越来越丰富.数据资源的丰富,给机器学习带来了越来越多,越来越大创造价值的机会. 机器学习在计算广告,推荐系统这些价值上千亿美元的应用中起到的作用越来越大,创造的价值也越来越大.但是越来越大的数据规模也给机器学习带来了很多挑战. 最大的挑战就是庞大的数据量使得对计算资源的需求也急剧增长.首先经典的机器学习算法其计算量基本上都是与训练数据条数或者特征数量呈二次方甚至是三次方关系的[1].即是说数据量或者特征数每翻

用机器学习流程去建模我们的平台架构

Spark 提供了一个新的体系,spark.ml. 相对于spark.mllib,这是一个更高层的对机器学习流程的一个抽象.然而,你会神奇的发现这套抽象,竟然也适合服务平台的设计与建模.更让我印象深刻的是,一个合适的抽象,简直就像真理一样.譬如RDD这种就是一个和神一般的抽象,它使得Spark成为了一个非常通用的平台,囊括了流式计算,离线计算,机器学习,图计算等多个领域. spark.ml 在一开始就提出了五个概念.这五个概念也完全可以对一个通用的service platform进行建模和抽象.

大规模爬虫流程总结

爬虫是一个比较容易上手的技术,也许花5分钟看一篇文档就能爬取单个网页上的数据.但对于大规模爬虫,完全就是另一回事,并不是1*n这么简单,还会衍生出许多别的问题. 系统的大规模爬虫流程如图所示. 先检查是否有API API是网站官方提供的数据接口,如果通过调用API采集数据,则相当于在网站允许的范围内采集,这样既不会有道德法律风险,也没有网站故意设置的障碍;不过调用API接口的访问则处于网站的控制中,网站可以用来收费,可以用来限制访问上限等.整体来看,如果数据采集的需求并不是很独特,那么有API则

谷歌大规模机器学习:模型训练、特征工程和算法选择 (32PPT下载)

  本文转自:http://mp.weixin.qq.com/s/Xe3g2OSkE3BpIC2wdt5J-A   谷歌大规模机器学习:模型训练.特征工程和算法选择 (32PPT下载) 2017-01-26 新智元 1新智元编译    来源:ThingsExpo.Medium 作者:Natalia Ponomareva.Gokula Krishnan Santhanam 整理&编译:刘小芹.李静怡.胡祥杰 新智元日前宣布,获6家顶级机构总额达数千万元的PreA轮融资,蓝驰创投领投,红杉资本中国基

零距离观察蚂蚁+阿里中的大规模机器学习框架

本文根据蚂蚁金服的资深技术专家周俊在蚂蚁金服&阿里云在线金融技术峰会上<大规模机器学习在蚂蚁+阿里的应用>的分享整理而成.在分享中,周俊详细介绍了阿里巴巴大规模机器学习框架--参数服务器的设计理念以及优化方法,并结合支付宝.阿里妈妈直通车搜索广告等具体场景详解了参数服务器在蚂蚁金服和阿里内的应用:分享最后,他对大规模机器学习的未来发展做了展望. 直播视频:点击此处观看 幻灯片下载:点击进入 以下为整理内容. ---------------------------------------

基于Rational Team Concert和Gradle对项目进行持续构建与部署

引言 持续集成作为一种软件开发中的最佳实践被越来越多的项目组采用.因为项目在被持续的构建,团队成员可以更早地发现代码中被引入的错误,也更为方便的定位到错误是由谁在什么时候提交的哪一部分代码中引入的.由于持续地产出可部署的部件,虽然这些部件没有实现所有的功能,但却是可部署的,这让项目开发的整个过程变得更为可控.同时持续集成与测试驱动开发等其他软件开发最佳实践的结合更能代码健壮性和可靠性.下面我们将开始介绍如何搭建这样一个包含对项目进行持续构建与部署的持续集成环境. 下一代项目构建工具 Gradle

基于Agile模式的WebSphere Commerce产品的自动化构建与部署框架(2)

使用 Rational Application Developer 实现增量代码的构建 自动化增量代码构建流程 自动化构建流程分为多个环节,各环节互为前提条件.本文所介绍的构建 框架将构建过程中的每个环节封装为 Ant 脚本的子任务,通过 Build 主任务来进行调度.关于 Build 主任 务以及构建脚本框架的创建已经在本系列的第 1 部分中进行了介绍,本文主要对代码的构建流程进行详细介 绍.读者可以参考本文的代码示例,完成代码中剩余部分 , 从而实现完整的构建框架.在编写构建脚本时, 读者可