在刚闭幕不久的2019年NeurIPS大会上,美国莱斯大学(Rice University)研究员Anshumali Shrivastava宣布他们在分布式深度学习方面取得了新的突破——MACH算法。曾有文章讨论过为什么推理工作负载能在相当廉价的硬件上运行,训练神经网络的工作负载本身所需的成本却要高出几个数量级。为解决这一问题,他们与亚马逊合作,最终训练计算机处理产品搜索和其他“极端分类问题”所用的时间比原来缩短了7到10倍,所占用的内存减少了2到4倍。
曾有文章讨论过为什么推理工作负载(这里所说的“推理工作负载”指的是用已经训练好的神经网络分析数据)能在相当廉价的硬件上运行,但训练神经网络的工作负载本身所需的成本要高出几个数量级。尤其是算法中加入的潜在输入越多,分析其问题空间时可伸缩性问题就会变得越失控。这就是为什么莱斯大学Tharun Medini 和 Anshumali Shrivastava会进行MACH项目的研究。MACH是Merged Average Classifiers via Hashing(通过哈希法合并平均分类器)的首字母缩写,据项目负责人Shrivastava称,MACH的训练时间比以前那些大型深度学习技术快7~10倍,占用内存小2~4倍。
在描述极端分类问题的体量时,Medini称,“网上购物搜索查询时需要对海量的信息进行筛选,网上可能有上亿件商品,这还只是个保守数字。据一家数据公司统计,亚马逊美国这一个大区就销售了6.06亿种不同的商品,而亚马逊整个公司在全球所有地区销售的商品种类达到30多亿种。”Medini继续说,“一个接收搜索输入并对一亿个输出(或商品)进行预估的神经网络,最终得出的结果是每件商品约有2000个参数,如果把它们相乘(一亿件商品*每件商品2000个参数),神经网络的最后一层将得到2000亿个参数,这还只是一个非常简单的神经网络模型。”
在这种庞大的体量下,哪怕一台超级计算机也需要TB级的内存来存储模型。如果搭载GPU,内存问题就会变得更糟糕。GPU处理神经网络工作负载的速度比常规CPU快很多,但GPU的内存相对较小——就算最昂贵的英伟达Tesla GPU也仅有32GB内存。Medini称,“大规模GPU间通信导致无法训练这样的模型。”
据Medini称,产品搜索具有挑战性是因为产品种类体量过大。“例如,英语中大约有100万个单词,但是网上很容易就能搜索出来1亿个产品。”
MACH在训练时采用了一种非常不同的方法。Shrivastava通过一个思维实验来描述它,这个实验随机地将1亿件产品分成3个“桶”,做两次,第一次分类后的3个“桶”放在“世界A”里,第二次分类后放在“世界B”里。在每个“桶”中你可以找到手机、T恤或鱼竿。
Shrivastava称:“现在我把结果输入到‘世界A’的分类器里,结果是‘桶3’,我把搜索结果输入到‘世界B’的分类器中,结果是‘桶1’。那我们就不禁会问,这个买家在想什么。”
其实,这个买家最有可能想买的类是这两个“桶”的交集部分。这个交集就是“世界A”中的3种可能乘以“世界B”中的3种可能,或者说是9种可能。Shrivastava称,“我把搜索空间缩小到1/9,而我只支付了创建6个类(2个‘世界’共6个‘桶’)的费用。”
在Amazon这个实验中,模型的训练花费的时间和内存比一些带有可比参数的模型最佳训练时间要少,包括谷歌的“低密度专家”mix(MOU)模型。但是,最值得注意的事实是,MACH算法不需要并行处理器之间的任何通信,这使得算法具有极强的可扩展性,因为处理器之间的通信可能成为算法的瓶颈。所有这些特点使得MACH算法在语音翻译和回答一般问题方面非常高效。
数以百万人都会按照自己的方式购物,也有一些人会搜索关键词来查找商品。很多人开始时并不确定他们想要买什么。但是由于线上每天都会执行数百万个搜索,像亚马逊、微软和谷歌这样的科技公司拥有大量搜索成功和失败的数据。用这些数据训练深度学习,是为用户提供更好搜索结果的最有效途径之一。
莱斯大学背景介绍: 莱斯大学是座落于美国德克萨斯州休斯顿市的一所私立的研究型综合性大学。莱斯大学以其精英的本科学部著称,小而精致,同时有着优秀的应用科学和工程学研究生项目,是美国最著名的大学之一,素有南方哈佛之称。莱斯大学在材料科学、纳米科学、人工心脏研究、以及太空科学、能源经济等领域占有世界领先的地位。
参考链接: https://dzone.com/articles/mach-algorithm-a-breakthrough-in-distributed-deep https://www.sciencedaily.com/releases/2019/12/191209161341.htm
领取专属 10元无门槛券
私享最新 技术干货