研究人员称分布式深度学习取得突破

导读网上购物者通常使用几个词来搜索他们想要的产品,但是在一个拥有数百万产品和购物者的世界中,将这些非特定的词与正确的产品相匹配是信息检

网上购物者通常使用几个词来搜索他们想要的产品,但是在一个拥有数百万产品和购物者的世界中,将这些非特定的词与正确的产品相匹配是信息检索中最大的挑战之一。

利用分而治之的方法和压缩感知的力量,从莱斯大学的计算机科学家和亚马逊得到证明,他们可以削减花费在训练计算机产品搜索和类似“极端分类问题”的语音翻译和回答一般问题上的时间和计算资源。

这项研究将于本周在温哥华举行的2019神经病学会议上发表。这些结果包括2018年进行的测试,当时首席研究员Anshumali srivastava和首席作者Taren Medini都是Rice,他们访问了加利福尼亚州帕洛阿尔托的亚马逊搜索。

亚马逊搜索数据集测试包含大约7000万个查询和超过4900万个产品。Shrivastava、Medini和同事展示了他们的“通过Hash合并平均分类器”(MACH)的方法,该方法只需要一些最先进的商业系统的一小部分训练资源。

莱斯大学计算机科学助理教授Shrivastava在:表示,“我们的训练时间比之前报道的大型分布式深度学习系统的最佳基线性能快7-10倍左右,占用的内存也小2-4倍。”

莱斯大学博士生米迪尼表示,产品搜索具有挑战性,部分原因是产品的绝对数量。“比如英语单词大概有100万个,但网上轻松就有1亿多个产品。”

有数百万人用自己的方式购买这些产品。某种问题。其他人使用关键词。很多人一开始都不确定自己在找什么。但是因为每天有数百万的在线搜索被执行,像亚马逊、谷歌和微软这样的科技公司有很多关于成功和失败搜索的数据。将这些数据应用到称为深度学习的机器学习中是为用户提供更好结果的最有效方法之一。

深度学习系统,或神经网络模型,是一个巨大的数学方程组,它接受一组称为输入向量的数字,并将其转换为另一组称为输出向量的数字。网络由多个参数的矩阵组成,而最先进的分布式深度学习系统包含数十亿个参数,这些参数被分成多层。在训练过程中,数据被输入到第一层,向量被转换,输出被输入到下一层,等等。

“极端分类问题”是一个有很多可能结果的问题,所以它有很多参数。分类的极端深度学习模型非常庞大,通常需要在超级计算机上进行训练,超级计算机是一组相互连接的图形处理单元(GPU),其中的参数是分布式的,并行运行,通常需要几天的时间。

“神经网络接受搜索输入,并从1亿个输出(或产品)中做出预测,通常每个产品将有大约2000个参数,”Medini说。“所以你把它们相乘,神经网络的最后一层现在是2000亿个参数。我没有做任何复杂的事情。我说的是一个非常非常简单的神经网络模型。”

“需要500克内存来存储这2000亿个参数,”Medini说。“但如果你看看目前的训练算法,有一个著名的算法叫做Adam,它为模型中的每个参数多取了两个参数,因为它需要从这些参数的统计数据中监控训练过程。现在是2000亿乘以3。我需要一个。5tb的工作内存来存储模型。我甚至还没有得到训练数据。目前最好的gpu只有32g内存,由于GPU之间通信量大,不可能训练出这样的模型。”

MACH采用了一种非常不同的方法。Shrivastava用一个思维实验描述了它,该实验将1亿种产品随机分为三类,所有产品都是桶的形式。他说:“比如,我把iphone、充电器和t恤混在一个桶里。“这是从1亿到3亿的大幅削减。”

在思想实验中,1亿个产品被随机分成两个不同世界的3个桶,这意味着产品可以在每个世界的不同桶中。分类器被训练为将搜索分配给桶,而不是桶中的产品,这意味着分类器只需要将搜索映射到三种类型的产品之一。

他说:“现在我把搜索结果发给世界一的分类器,结果是桶三。我把搜索结果发给世界二的分类器,结果是桶一。”“这个人在想什么?”最有可能的类是这两个桶之间的公共类。如果你看看可能的交叉点,世界上有三种可能性,世界上有三种可能性,或者九种可能性。所以我把搜索空间缩小到了1/9,只为创建6个类付费。"

增加第三世界和其他三个桶可以将可能的交叉点数量增加两倍。“现在这个人的想法有27种可能性,”他说。“所以我把搜索空间缩小了1/27,但我只付了9节课的费用。我付出的代价是线性的,我得到了指数级的提升。”

在亚马逊训练数据库上的实验中,Shrivastava、Medini和同事将4900万种产品随机分成1万个类别,并重复这个过程32次。这将模型中的参数数量从大约1000亿减少到64亿。Medini还表示,与其他具有可比参数的模型(包括谷歌的稀疏门控专家混合(MoE)模型)的一些最佳训练时间相比,训练模型所需的时间和内存更少。

他说,MACH最重要的特点是不需要并行处理器之间的通信。在思想实验中,这是以一个独立的世界为代表的。

“他们甚至不需要互相交谈,”梅迪尼说。“原则上,你可以在一个GPU上训练32个GPU中的每一个,这永远不可能通过非独立的方法来完成。”

Shrivastava说:“一般来说,训练需要跨参数通信,这意味着所有的并行处理。

器必须共享信息。展望未来,交流是分布式深度学习中的一个大问题。例如,谷歌表示希望训练一个1万亿参数的网络。目前,MACH还不能应用于类数较少的用例,但对于极端的分类,它实现了零通信的圣杯。”

免责声明:本文由用户上传,如有侵权请联系删除!