你去公司上班,无需你驾驶,汽车自动行驶在道路上,并且自动避开即将拥堵的路段。你外出旅游,手机里私人助手给你推荐旅游路线,在你决定路线之后帮你预定机票。你进入超市购物,超市里的啤酒和尿布摆在一起,让你给孩子买尿布的同时又能顺手购买自己爱喝的Teradata牌啤酒。你在家里刷Twitter,在Twitter上展示广告能够符合你的兴趣,不致于让你反感。人工智能,主要是机器学习技术的突飞猛进让这些场景,有些已经成真,有些正在成真。对于提供智能服务的商业企业来说,这些场景意味着巨大的金矿。很多企业计划或者已经在机器学习这座金矿山上采矿了。
工欲善其事,必先利其器。好的挖矿工必有一把好铁锹。机器学习的关键是使用大量数据训练模型,而处理大量的训练数据则需要大规模机器学习系统。为此大公司集中大量优秀人才,研发大规模学习系统,比如Google的Pregel和Baidu的BML。那么对于无力研制大规模机器学习系统的公司甚至个人,怎么搭建自己的大规模机器学习系统呢?当然也可以选择开源社区的优秀机器学习系统,比如Spark和Storm。但使用开源系统时碰到问题,就会陷入无人支持的困境。
36氪介绍过的Dato正是提供这样一款机器学习系统的公司,其提供的机器学习系统叫GraphLab Create。一周前,Dato将GraphLab Create升级到1.5,主要的新功能是支持著名矩阵运算库Numpy和支持Windows操作系统。
GraphLab Create扩展了著名的MapReduce计算框架,将机器学习的训练过程看做是图计算过程,并把图计算分解成Gather-Apply-Scatter三个阶段,从而实现机器学习在多核环境或者集群环境下的并行训练。据斯坦福大学CommonCrawl项目组在7月20号Dato大会上公布的数据,CraphLab Create用16台机器在35亿个节点1280万条边的网页图谱上,只需要45秒即可执行一次PageRank算法的迭代。
2009年,CMU(卡内基梅隆大学)的Select 实验室提出一个开源图计算框架GraphLab,框架使用C++语言开发实现。2013年5月,GraphLab的开发者募集到600万美元,成立GraphLab Inc公司。2013年7月GraphLab Inc推出GraphLab Create系统。2015年1月,GraphLab Inc收到一千八百万美元投资,改名为Dato Inc。 目前Dato提供个人版和集群版两个版本的GraphLab Create系统。除此之外,Data还提供了预测服务以及训练服务。
研制大规模机器学习系统是高技术门槛的工作,需要对机器学习和系统设计有很高的造诣。除了Google、Facebook、Twitter以及国内的BAT等大型公司,很少商业公司能够自研大规模机器学习系统。而大公司的系统都是自用的,很少对外界开放,更别说提供商业支持。
Dato的创始人Carlos Guestrin是机器学习界国际公认的大牛,曾被Popular Science杂志评为2008年 “Brilliant 10”,还获得过美国青年科学家总统奖。团队组成既有来自微软和亚马逊久经实战的开发工程师,也有来自高校一线的机器学习研究人员。
目前除了Dato之外,商业化运作的机器学习系统提供商还有Databricks和Petuum。Databricks由著名大数据开源系统Spark的核心成员研制开发的。2013年9月,Databricks宣布从硅谷风投Andreessen Horowitz获得A轮融资1400万美元。2014年6月, Databricks获得由NEA领投的3300万美元的B轮投资,Andreessen Horowitz增值跟投。 Petuum由CMU教授邢波发起,目前Petuum已经进入开源和闭源并行开发阶段。
与Databricks和Petuum相比,Dato对单机运算做了极致的优化。据2013年的旧闻,GraphLab Create前身GraphLab的子项目GraphChi,用Mac Mini1个小时完成对一个具有15亿边缘的Twitter图谱的处理,而Hadoop则用了1636个节点7个小时。极致优化单机性能,使得个人电脑就能处理一些原来分布式集群才能处理任务。大规模机器学习的使用门槛大大地降低了。
所有人都忙着掘金的时候,成为提供铁锹的人不失为好选项。特别是制造铁锹的技术门槛很高时,制造铁锹也许能成为一个大产业。随着熟悉基本编程技术的人数上升,人人都能成为机器学习挖矿工,好用高效的机器学习系统就显得尤为重要。也许未来大规模机器学习系统,会像今天的Matlab、 SAS和SPSS等专业软件一样,广泛地存在于个人电脑和企业服务器。
原创文章,作者:goto