业界 | 想要快速的搭建高性能机器学习系统,企业应该怎么干?

AI科技评论按:本文为「范式大学系列课程」。Web服务器部署在云上已经算是常见的事情了,那么机器学习系统如何呢?

亚马逊AWS目前的运维水平成为行业标准,但凡有公司要自己搭建 OpenStack,先要回答一个问题:OpenStack 比亚马逊云的优势是什么?

对于机器学习来说,公司要自己搭建机器学习系统,也可以先问一个问题:需要多长时间和多少钱,才能达到行业领先的性能?

要知道,时间成本 + 丧失的竞争优势是无价的。

我们来算算这笔账。

1、时间

自建机器学习系统,大概有这么几步:

  • 步骤 1:招聘机器学习团队的 Leader,2 个月
  • 步骤 2:搭建机器学习团队,2 个月
  • 步骤 3:前期业务调研,2 个月
  • 步骤 4:前期技术调研,2 个月
  • 步骤 5:数据采集相关开发和数据积累,0.5 个月
  • 步骤 6:数据分析处理,1 个月
  • 步骤 7:模型调研,0.5 个月
  • 步骤 8:线上系统开发,0.5 个月
  • 步骤 9:a/b测试和模型优化,0.5 个月

合计:11 个月

这是相对较快的时间表,如果在哪个环节踩到坑,拖延的时间就没法计算了。

如果要减少时间,关键是什么?

专业化分工 + 专注核心环节。

实际上,真正需要自己做的是数据采集、模型调研和模型优化,在专业化工具的帮助下,这些环节可以缩短到 1 个月。而其他 10 个月时间的工作,已经有专业化工具可以替代,沟通和实施时间可以缩短到 0.5 个月。

这样就从原来的 11 个月,变成了 1.5 个月。

2、钱

机器学习系统的投入,一般是这样的:

1000 万行/天的数据规模,机器学习系统一年的支出是 944 万。

如果要减少投入,关键是什么?

专业化分工 + 专注核心环节。

通过使用机器学习平台,上面的投入会变成这样。

10 台线上机器和 20 台线下机器 ,企业在购买时是按照峰值数据量配备的,但机器实际运转的时间,往往只有 1/8,即每天运行 3 小时。剩下的 7/8 是浪费的。另外,开源机器学习框架对资源利用效率低,又是一大块资源浪费。

所以原本需要 10 台线上机器和 20 台线下机器,通过机器学习平台只需要 2 台线上机器和 4 台线下机器,节约了 240 万。

在人员投入上,30 台的机器需要配备 1 个带头人、3 个研发、1 个测试、1 个运维、1 个机器学习专家和 1 个业务专家,但如果采用机器学习平台,在专业化工具的帮助下,企业只需要 0.5 个机器学习专家和 0.5 个业务专家。

通过使用机器学习平台,企业的人力成本可以节约 588 万。

另外,机器学习平台的思路可以实现 1.5 个月上线,如果全部自己做则需要 11 个月甚至更久。如果错过了抢占市场的黄金期,损失就是巨大了。对于一个 1000 万行数据规模的公司来说,我们假定 9.5 个月延迟的损失是 5000 万。

所以我们得到了两个数字:

  • 如果不考虑时间的机会成本,采用机器学习平台的成本是自建系统成本的 12.3%。
  • 如果考虑时间的机会成本(5000 万),采用机器学习平台的成本是自建系统成本的 2%。

3、机器学习系统

机器学习系统的性能有 3 个要素:

  • Max AUC:模型能达到最好的效果,好比山的高度
  • Actual AUC:实际上线模型的效果,好比爬到多高
  • Time:模型训练和预测所需要的时间,好比多久爬到这个高度

如果自己搭建机器学习系统,首先遇到的瓶颈一般是数据处理能力。

对于大部分机器学习团队来说,他们一般可以处理几十万规模的数据量,但如果数据规模超过 10 亿,那么即便是简单的逻辑回归模型,也会变成一个非常困难的问题。

为了迁就不足的计算能力,一般会做的事情是减少特征数量和样本数量,这样才能在业务需要的时间内把模型训练出来。

但这样会造成很不好的结果,Max AUC 因为特征和样本数量减少而降低,Actual AUC 因为 Max AUC 和计算能力不足而降低,Time 因为计算能力不足而增加,最终整个系统的能力就会遇到瓶颈。

如果要提升性能,关键是什么?

专业化分工 + 专注核心环节。

大规模机器学习的计算框架是一件非常难的事情,因为它不仅需要处理亿万规模的数据,而且要符合机器学习的规则。能做大规模机器学习计算框架的人全国都屈指可数,基本集中在百度、阿里、腾讯以及少数的创业公司。

所以对于公司来说,与其死啃大规模机器学习的计算框架,反而不如购买第三方的专业服务(这就好比你不会自己开发芯片)。而当计算能力充足的时候,公司就可以专注自己的核心环节,把特征的维度做上去,把数据的规模做上去,把数据和业务的结合做的更清晰。

这样公司机器学习系统的性能,例如在业务需要的时间内获得的 AUC 才能提升上去。

4、总结

总的来说,公司要做机器学习,应该采取专业化分工 + 专注核心环节的方式,具体如下:

专业化分工完成和辅助完成的:前期业务调研、前期技术调研、数据处理、模型调研、模型优化、模型上线、大规模机器学习计算框架、线下机器、线上机器、运维、大部分的工程投入。

公司专注完成的环节:业务问题定义、数据采集、特征扩充、模型调研。

这样,只需要 1.5 个月的时间,大约 10%(2%) 的成本,不仅获得了高性能的机器学习系统,而且能带来实际业务效果的提升,让机器学习能力真正转变为市场竞争力。

原文发布于微信公众号 - AI科技评论(aitechtalk)

原文发表时间:2017-05-11

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏AI科技评论

学界丨当深度学习遇上敏捷开发,会发生怎样的“化学反应”?

说出来你可能不信,有一种从软件开发领域诞生的思维方式,自诞生以来就一直深远地影响着我们日常的工作和生活。这就是“敏捷方法”,即软件开发领域的“敏捷软件开发”(A...

3567
来自专栏AI科技评论

AI NEXT | 微软首席 AI 科学家邓力:对话系统的分类与发展历程

AI科技评论按:本月 18 日,由美中技术与创新协会(Association of Technology and Innovation,ATI)主办的第一届“A...

3117
来自专栏人工智能快报

美NSF支持神经与认知系统深度研究

美国国家基金会(NSF)将在2017财年划拨1500万美元支持对关于神经与认知系统的深度研究。该计划将支持一些具有潜在变革影响的创新科技研究,从而促进对神经和认...

2827
来自专栏量子位

如何在机器学习的工作中获得成功?这是福布斯榜单CEO的八个建议

李杉 编译整理 量子位 出品 | 公众号 QbitAI ? 机器学习已经正在全面爆发,从电子邮件到手机应用,再到营销策略,这种智能算法被应用于各个领域。换言之:...

3196
来自专栏顶级程序员

2017年一线城市程序员工资大调查

编者按:作者爬了某招聘网站,获取近一周的程序员工资18275条。其中,有工资的17628条(北京4892,上海5073,广州3386,深圳4277)。本文分别...

2857
来自专栏PPV课数据科学社区

【学习】数据挖掘的方法有哪些?

利用数据挖掘进行数据分析常用的方法主要有分类、回归分析、聚类、关联规则、特征、变化和偏差分析、Web页挖掘等, 它们分别从不同的角度对数据进行挖掘。 1、分类 ...

2739
来自专栏量子位

刚刚,吴恩达讲了干货满满的一节全新AI课,全程手写板书

夏乙 编译整理 量子位 出品 | 公众号 QbitAI ? 给吴恩达三块白板和一支马克笔,听他讲一节精彩的课。 刚刚,在O’reilly举办的AI Confer...

3397
来自专栏大数据文摘

找不到完美数据科学家?你还可以组建一支数据科学梦之队

1084
来自专栏PPV课数据科学社区

【观点】数据挖掘之七种常用的方法

利用数据挖掘进行数据分析常用的方法主要有分类、回归分析、聚类、关联规则、特征、变化和偏差分析、Web页挖掘等, 它们分别从不同的角度对数据进行挖掘。 ...

3196
来自专栏灯塔大数据

PPT干货 ▏一篇神一样的数据分析解读

数据君6年前写的数据分析交流资料,删除部分,分享给大家! 想成为数据分析方面的专家不易: 1、要会技术 存储、统计、机器学习、报表、分析、展示、可视化、...

2616

扫描关注云+社区