北京大学计算机系教授博士生导师崔斌:以机器学系统Angel支持大数据所带来的挑战

来源:财经网  2分钟前 0
分享到:
导语

2017年9月27日,第二届大数据产业应用协同创新峰会于北京隆重召开。在会上,北京大学计算机系教授博士生导师崔斌发表了有关“支持大数据的分布式机器学习系统Angel”的演讲。

2017年9月27日,第二届大数据产业应用协同创新峰会于北京隆重召开。在会上,北京大学计算机系教授博士生导师崔斌发表了有关“支持大数据的分布式机器学习系统Angel”的演讲。

他表示,因为大数据或者很多应用会带来一些新的挑战。例如,数据训练的样本越来越大,已经没办法再处理,然后数据的规模、数据模型的规模、维度也越来越高。在这样的情况下,需要一些分布式的机器学习,来支持这样的一些应用。

另外,通常在业界做推荐的时候,也会涉及到像决策数、神经网络、逻辑回归等等,这也是很常用的一些机器学算法,所以需要支持好这一类的机器学算法需要构建一个很大的机器学系统。

他表示,Angel系统主要是面向分布式的机器学习任务,采用的就是机器学习参数服务器的架构,里面能够支持数据并行、模型并行、不同的计算模式,并对很多算法进行了目前很深度的优化。

以下为演讲全文:

每次分会都体现啊。今天我给大家介绍一下我们做的一个能够支持大规模数据做分布式机器学习的这么一个系统。这是我的汇报提纲。首先看一下背景,现在大家都在说人工智能,机器学习。机器学习现在说是成为挖掘数据价值的主要的技术。其实大家也可以看到,大概五年,或者十年前左右,要学生读研究生,很多人说,我对数字挖掘感兴趣;现在人来找的话,都说我对人工智能,机器学习感兴趣,大部分都是这样。所以社会对这些词的变化都很容易从这边能够体现出来,那其实他们很多做的都是很相近的一些事情,就是挖掘数据的一些价值。那机器学习,现在广告推荐、文本挖掘、视频图象、语音处理、金融风险、个性化医疗、智能城市都得到很广泛的应用。

刚才几位专家都已经讲过,但是现在因为,因为大数据或者很多更多的应用,其实对这些技术带来一些新的挑战。你比方说数据训练的样本现在越来越大,已经没办法再处理。然后数据的规模、数据模型的规模、维度也越来越高。在这样的情况下,我们需要一些分布式的机器学习,能够来支持这样的一些应用。

那简单用腾讯的一个案例,我们来做一下,作为一个研究的一个基本的一个介绍。右边两张图是手机QQ跟微信上面的一个广告,像类似腾讯很多系统里,他会有一些广告位,这里的广告位需要根据你的一些用户的实时的一些行为它就做这么一个推荐。所以在这个情况,它其实需要对大数据进行一个很精准的分析才能推荐好这个广告。那它的量是非常大的,这是去年的数据,类似QQ,微信这样的系统,它是覆盖的用户是8到10亿这样的一个规模,然后每个地方,广告位它可以推荐给你的东西可能有几十万个,所以它要从这里面,去选一个你最有可能点击的东西。完了还有复杂的关系链,以千亿计以上的,然后每天的推荐请求量很高。推荐给你广告,大家其实你平时可以想象到,推荐给你广告,其实你基本上不会去点击的。所以正常情况,它的点击率可能100次里面,你可能点击个一次、两次。所以对他来说,如果稍微推荐的准一点,就会带来一个很大的一个价值。

在这个精准广告推荐的时候,首先你需要对用户、产品、广告,这些基本的特征你需要做一些处理。它会涉及到哪些特征啊?比方对用户来说,他会有一些你的基本的属性。比方说你对什么感兴趣,还有你的用户的关系链是怎么样的,然后你的消费能力到底是怎么样的,他可能会针对你的平时的一些行为做一些prefa(音)。还有一些广告的特征,比方说这个广告是谁发的,这个广告有什么创意,关健词是什么,公司、品牌、价格到底是怎么样的;还有一些上下文的特征,比方你这个广告位到底大小怎么样,可见度怎么样;它是什么样的形式,是视频的、还是图片的,还是文字的;然后是在哪里,是在你的PPT上面、还是笔记本上面、还是手机上面;或者你用什么APP,所以这些都是他要考虑的因素。这还仅仅是一个基本的特征,但是我们在用的时候,他可能把这个基本特征,再次做一些转换。比方说把可能一些特征,转化成01这样的特征,然后各种的特征做一下组合,那最终它会产生一个亿级以上这个特征量维度的一个稀疏的特征。所以说我们所需要,做机器学习,或者挖掘这样一个模型,它是非常大的。

另外在业界,通常在做推荐的时候,他会涉及到像决策数、神经网络、逻辑回归等等,这也是业界很常用的一些机器学算法。所以需要支持好这一类的机器学算法呢,我们需要构建一个很大的机器学系统。

好,那我们这个系统,我从一四年大概开始跟腾讯一起合作,我们想做这么一个系统。然后一六年,开始在他们的生产环境中,也开始正常的开始使用了。然后今年呢,6月份我们又把这个系统进行的开源。大家都可以看到这个系统,也可以下载来自己用。主要是我们构建了一个工业级别,很可用的一个参照服务器这么一个架构的分布式机器学习系统。然后里面有很丰富的机器学算法,跟数据的一些计算库。我们也提供了很友好的用户编程的接口。

最终我们做一些简单的概述就是我们这个系统主要是面向分布式的机器学习任务,然后采用的就是机器学习参数服务器的架构。里面能够支持数据并行,然后模型并行,然后不同的计算模式。然后对很多算法进行了目前很深度的优化,也发表了几篇学术的文章。至少在发表出来文章里面,我们的性能是最强的。

然后因为它系统需要可用,所以它具备一些良好的特性。也就是我们做分布式系统设计的一些必要的一些特性,像可扩展性、易用性、可靠性、高效性、平台兼容这些我们都能够满足。

接下来介绍一下相关的研究。现在的分布式机器学习系统,其实外面的市面上很多。尤其这两年,开源的系统越来越多。我们把这些,做一些简单的归类,当然这个归类不一定准确。第一类是我们把它分成数据流这个模式的系统,像haoop上面的一些机器学习库,把它归到这一类;还有一些是以图计算的这些系统,像06:14(英)等等;另外一种大家可能目前更火的,大家更了解的更多一点的,可能就是深度学习系统,像谷歌的06:27(英),这些都是类似像亚马逊、Facebook、然后百度什么,开源的一些深度学习系统。

然后我们看一下,这些机器学习系统,其实大家还是都是有一些的问题。然后我们简单看,机器学算法,大部分它是不断叠代的过程。你需要它不断的叠代跟训练,最终可能你做了100人的计算,或者200人的计算,或者上千等等。做完之后,你会训练出一个好的模型,接下来你就可以用了。所以在这个过程中,其实很多系统是存在一定的瓶颈的。比方说spark(07:10)机器学习,spark系统学,在云计算,或者大数据它用的很多。然后它最终,后来它也提供了07:19(英),在它的基础上开发了一些支持机器学习的一个库。然后这里面,它是会有一定的瓶颈。我们可以看到,当你的数据规模很大的时候,你会把数据分布在不同的机器上面。那在每一轮机器进行训练的时候,你需要把训练的模型参数,发给各个计算的结点,各个计算的结点根据你本地的数据,计算完以后,最终你做一个汇总。汇总到一个deliver上面。这个汇总完以后呢,然后你又把这次更新好的传统模型,再发给各个数据结点,各个数据结点计算完以后,再汇总到一个deliver然后再发。就这么一个过程,通常是大部分机器学习这么来做的。那我们来看spark这样的模型显然可以看到,这个08:07(英)在每次参数汇总的时候,它显然可能会成为一个瓶颈,所以它难以支撑很大规模的模型。另外,有一些处理的方法,就是你想你模型太大了,那我把它做一个降位的处理,原来十亿个维度的模型,我把它降为一万维,那也可以。但是呢,通常它会引起一些数据的丢失,然后它准确性,可能就不那么高了。好,那这是一个08:34(英)机器学。

那其他的机器学习平台,当然也有很多。比方说像刚才提到过的像08:40(英),原来是08:42这么一个机器学习的系统,后来被苹果收购了,现在也不开源了。08:48(英)还做过一个也是集成服务器08:51(英)一个分布式机器学习系统。它是实验室做的,后来因为它开始也成立创业公司,融资了,它现在也不开源了。像微软他们开始做的一些系统,现在主要也是支持深度学习比较多的。另外一个09:10(英)也是一个开源的系统,它通常是针对梯度提升类的,所以它针对性比较强。当然09:19(英)这类系统,其实在市面外面很多大数据竞赛,参加的队伍很多人还是用这个去做蛮多的,因为它里面做了一些决策数,它很多它支持,它支持的很好,速度很快,也很容易用。最后一个09:32(英)最开始是酷狗它推出了,最后它慢慢变成了09:37(英),也支持,主要支持深度学习。

那我们跟系统大概做一些比较,其实可以发现,数据的那些系统它可能是比较适合于通用的大数据,不太适合机器学习的这种算法。然后图计算的系统呢,它比较适合抽象,能够抽象成稀疏图结构的这一类算法。然后深度学习系统它主要场景是用来计算一些密集性的应用,比如说10:04(英)他们性能会比较好。

然后通过做这些机器学习的算法我们做一些分析,我们可以发现,其实在分布式机器学习这个过程中,它的一个核心就是一个参数的共享。也就是说每次参数在不同的传递,不同的过程当中,你怎么把这个事情做好,是提升机器学习效率的一个关键。所以我们在设计这个系统的过程中,主要就是我们把想提供一些很好的参数共享的服务。然后能够在这个基础上,再来整合多类的机器学习系统。

好,接下来简单介绍一下,系统的介绍。系统介绍,我们系统的框架大概就是长这个样子,然后在客户端我们用来控制任务的运行。客户端也就是说用户你可以提交一个机器学习的任务,给这个系统,用来启动和停止任务,然后加载或存储模型。然后在这个11:01(英)结点,它就是作一些基本的控制。我来约定说我用什么样的数据、用什么样的参数,是不是要给它做一个分片,要做什么样的分啪,然后你去申请什么样的资源,对吧。还有管理整个系统执行的一个过程。然后在右上角那几个点,就是一个参数,参数服务器,你可以把参数进行分片,存在不同的服务器结点上面。下面就是所有的工作结点,根据你本地的数据,做一个运算。这些具体的我这里就不讲了。

然后我们的系统不单单是自己做了很多的一些算法,同时它也能够支持现在,融合现在的系统,现在已经做到把11:50(英)已经做上去了。我们不去具体修改11:53(英)里面的一些代码,只是在参数部分做一些修改,然后性能大概提高了一倍。这是我们提供的一些算法,像逻辑回归、12:03(英)做分类的、12:04(英)做主题模型的、矩阵分解、12:07(英)做决策数的等等这些我们都已经支持。

然后我们对这个系统也跟很多系统做了对比,包括跟12:16(英)然后测试了不同的算法,然后不同的集训环境,包括我们自己实验室比较小的集群;然后在腾讯的工业环境里面,又是几千台服务器这样的集群。然后不同的数据集,基本上这个性能都得到了几倍,或者十倍以上的一个提升。这个大家有兴趣的,可以在网上去看。

然后这个系统也在腾讯的实际业务上面,做了很多的部署跟应用。像视频推荐、微信里面的推荐、点击率预估、应用建模基本上性能都提高了一个量级以上。

最后简单做一些总结,我们这个系统,是我的课题组和腾讯的数据平台部共同来联合开发的。它同时考虑的工业界的可用性跟我们学术的创新性。那现在已经在getup上面已经开源了,你如果在这面搜素angel你就能搜到我们这个系统。

然后这个系统到目前已经有2400多个Star。然后也很多人提供了,提出了很多的问题,像包括13:30(英)有些相关系统的作者也来到上面提问。如果大家有兴趣的话,可以去看看,你觉得你需要什么样的功能,也可以在上面提,我们看到的话,如果有需要,我们自己可以再加上去。你需要什么算法支持,我们就可以去加。

这个工作我们也在我们领域的相关顶级会议上,发表过多篇的文章。然后目前也是作为第三代计算平台,在腾讯上在使用。

好,最后简单做一下总结。过去几年,我们跟腾讯合作,做一个分布式学习的系统,这是能够支持非常大规模的数据,非常高维。这样的计算任务都能做,接下来我们希望利用现有的系统,通过参数服务器的一个服务的架构,能够把其他的包括流处理的、包括深度学习系统都整合进去。另外就是基于对开源的设计,我们对这个系统做进一步的开发。能够(在)保证系统稳定性的基础上,能更好的提高算法的性能。

好,这是我的一个基本的介绍,谢谢大家。

编辑:jiangjing
北京大学 学系 计算机系 博士生 导师
分享到:

财经网微评论0人参与)

查看更多>>
匿名评论
  • 全部评论(0条)
查看更多>>
  • 热门排行
  • 大家喜欢
  • 站在资本风口,如何飞得更高是每个公司的梦想。在当下的政策寒流中,如何走得更远是每个互联网中介公司面临的新课题。

  • 生鲜电商领域最早的试水者沱沱工社换帅一事再一次搅动生鲜电商一池春水。这片深不见底的池水下面,是创业者对它又爱又恨的复杂情绪。在这个被视为下一个千亿级的电商市场中,不断传出的倒闭消息时刻拷问着每一位从业者:怎样才能玩转生鲜电商?

  • 不少苹果用户最近几周在苹果官网论坛和各大社交网站投诉称,他们在iPhone上安装了最新iOS升级后,手机耗电速度明显比平时快了。

  • 近日,市民金先生通过微信替朋友进行手机充值,充值完后获得平台方的“奖励”,支付一分钱可以购买一注彩票。这让金先生有些疑惑,因为他知道互联网售卖彩票几年前就已经被禁止了,难道现在开禁了?

  • 双十一已经落幕,“剁手族们”创造了新的“世界纪录”,快递物流企业则进入“暴走”状态,努力挺过海量快递潮。