分布式深度学习重大突破!MACH算法仅需25%的内存,速度快10倍!

2019 年 12 月 24 日

分布式深度学习重大突破!MACH算法仅需25%的内存,速度快10倍!

在刚闭幕不久的 2019 年 NeurIPS 大会上,美国莱斯大学(Rice University)研究员 Anshumali Shrivastava 宣布他们在分布式深度学习方面取得了新的突破——MACH 算法。曾有文章讨论过为什么推理工作负载能在相当廉价的硬件上运行,训练神经网络的工作负载本身所需的成本却要高出几个数量级。为解决这一问题,他们与亚马逊合作,最终训练计算机处理产品搜索和其他“极端分类问题”所用的时间比原来缩短了 7 到 10 倍,所占用的内存减少了 2 到 4 倍。


为什么要研究 MACH 项目?


曾有文章讨论过为什么推理工作负载(这里所说的“推理工作负载”指的是用已经训练好的神经网络分析数据)能在相当廉价的硬件上运行,但训练神经网络的工作负载本身所需的成本要高出几个数量级。尤其是算法中加入的潜在输入越多,分析其问题空间时可伸缩性问题就会变得越失控。这就是为什么莱斯大学 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 间通信导致无法训练这样的模型。”



MACH 算法好在哪儿?


据 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


2019 年 12 月 24 日 09:33974

评论

发布
暂无评论
发现更多内容

架构师第十二周学习总结

傻傻的帅

linux入门系列19--数据库管理系统(DBMS)之MariaDB

黑马腾云

MySQL Linux centos linux运维 MariaDB

linux入门系列20--Web服务之LNMP架构实战

黑马腾云

php MySQL Linux centos ngnix

视频AI第一步-动作识别数据集

flow

二叉树深度和大文件排序

escray

学习 面试 面试题 面试现场

架构师第十二周作业

傻傻的帅

ARTS打卡 第14周

引花眠

微服务 ARTS 打卡计划

oeasy教您玩转linux010108到底哪个which

o

什么是分散式金融(DeFi)?

志学Python

去中心化金融 defi

Flink-有状态算子的扩缩容-12

小知识点

scala 大数据 flink

更新丢失、写偏、幻读:数据库事务从快照隔离到可序列化

青菜年糕汤

数据库 数据库事务 分布式数据库 数据库设计 分布式系统

JVM的早期优化与晚期优化

Edison

JVM JVM虚拟机原理

ARTS Week9

丽子

ARTS 打卡计划

搬家,又一次和过往告别

王磊

程序人生

Android | dagger细枝篇

哈利迪

android

图解Node(上)——直击灵魂的十条拷问

执鸢者

前端 原理 Node

打通微信和钉钉服务是一种怎样的体验?

Ceelog

go 微信 钉钉 微信公众号

linux入门系列17--邮件系统之Postfix和Dovecot

黑马腾云

Linux centos Dovecot Postfix 邮件系统

Python作业留底--《菜鸟教程》Python 练习和习题

Geek_f6bfca

央行数字货币钱包上线后又秒关 兑换了的 DCEP 别担心

CECBC区块链专委会

数字货币 央行

比特币挖矿到底挖的是什么?

CECBC区块链专委会

比特币 区块链 数字货币

算法导论

华宇法律科技

算法

巧用HashMap一行代码统计单词出现次数

程序那些事

jdk hashmap 统计字数

基于区块链的社会治理探索

CECBC区块链专委会

区块链 大数据 信息技术

【持续更新~】常遗忘却可以变更好的心态

CoderJ

个人成长

linux入门系列18--Web服务之Apache服务2

黑马腾云

Apache Linux centos linux运维

Go: ElasticSearch客户端学习

陈思敏捷

go golang elasticsearch elastic go-elasticsearch

你真的懂 Java 的 main 方法吗

Rayjun

Java

SpringBoot+Tess4j实现牛逼的OCR识别工具

小隐乐乐

linux入门系列18--Web服务之Apache服务1

黑马腾云

Linux centos apche linux运营 centos网站部署

程序的机器级表示-控制

引花眠

计算机基础

分布式深度学习重大突破!MACH算法仅需25%的内存,速度快10倍!-InfoQ