深度学习的重新思考克服了AI行业的主要障碍
赖斯大学的计算机科学家通过证明无需专门的加速硬件(例如图形处理单元(GPU))就可以加速深度学习技术,从而克服了新兴的人工智能行业的主要障碍。赖斯的计算机科学家在英特尔合作伙伴的支持下,今天将在奥斯丁会议中心展示其结果,这是机器学习系统会议 MLSys的一部分。
许多 公司都在GPU和其他专用硬件上投入大量资金,以实施深度学习,这是一种强大的人工智能形式,其背后是Alexa和Siri等数字助理,面部识别,产品推荐系统和其他技术。例如,Nvidia公司,该行业的黄金标准的制造商 特斯拉V100张量核群GPU, 最近报道在其第四季度收入增长与上年相比,41%。
莱斯大学的研究人员创造了一种节省成本的替代GPU的方法,GPU是一种称为“亚线性深度学习引擎”(SLIDE)的算法,该算法使用通用处理器(CPU),而无需专门的加速硬件。
“我们的测试表明该幻灯片是CPU能够超越与大完全连接架构产业规模的推荐数据集GPU硬件加速的第一款智能算法实现深度学习的,”说 Anshumali Shrivastava,在赖斯的助理教授 工程布朗学院 谁与研究生Beidi Chen 和 Tharun Medini发明了SLIDE 。
SLIDE不需要GPU,因为它采用了 完全不同的 深度学习方法。用于深度神经网络的标准“反向传播”训练技术需要矩阵乘法,这是GPU的理想工作量。借助SLIDE,Shrivastava,Chen和Medini将神经网络训练变成了搜索问题,可以用哈希表解决 。
与反向传播训练相比,这从根本上减少了SLIDE的计算开销。 Shrivastava说,例如,像Amazon, Google和其他公司提供的基于云的深度学习服务的顶级GPU平台 有八台Tesla V100,价格约为100,000美元。
他说:“我们在实验室中只有一个,在测试用例中,我们承受了非常适合V100的工作负载,其中一个负载在大型,完全连接的网络中(具有GPU内存)具有超过1亿个参数,”他说。“我们使用最好的(软件)软件包Google的TensorFlow对其进行了培训,并且培训花费了3 1/2个小时。
“然后我们证明了我们的新算法可以在一小时内完成训练,而不是在GPU上,而是在44核Xeon级CPU上,” Shrivastava说。
深度学习网络受到生物学的启发,其核心功能人工神经元是可以学习执行特定任务的小型计算机代码。深度学习网络可以包含数百万甚至数十亿个人工神经元,并且通过它们的共同作用,他们可以简单地通过研究大量数据来学习做出人类级别的专家决策。例如,如果训练一个深层神经网络来识别照片中的物体,则它将使用与识别校车不同的神经元来识别猫的照片。
Medini说:“您无需在每种情况下都训练所有的神经元。” “我们认为,'如果我们只想选择相关的神经元,那就是搜索问题。' 因此,从算法上讲,这个想法是使用局部敏感的散列来摆脱矩阵乘法。”
散列是一种在1990年代为互联网搜索而发明的数据索引方法。它使用数字方法将大量信息(例如整个网页或一本书的章节)编码为一串称为哈希的数字。哈希表是可以非常快速地搜索的哈希列表。
Chen说:“在TensorFlow或PyTorch上实现我们的算法是没有意义的,因为他们要做的第一件事就是将您正在做的任何事情转换为矩阵乘法问题。” Chen说。“这正是我们想要摆脱的。因此,我们从头开始编写自己的C ++代码。”
Shrivastava说,SLIDE相对于反向传播的最大优势在于它是数据并行的。
“通过并行数据,我的意思是,如果我有两个要训练的数据实例,假设一个是猫的图像,另一个是公交车的图像,它们可能会激活不同的神经元,并且SLIDE可以更新或训练分别独立于这两个,”他说。“这可以更好地利用CPU的并行性。
他说:“与GPU相比,另一方面,我们需要更大的内存。” “主内存中有一个缓存层次结构,如果您不小心使用它,则可能会遇到一个名为“缓存抖动”的问题,在该问题 中,您会遇到很多缓存未命中的情况。”
Shrivastava说,他的小组在SLIDE上进行的 第一个实验 产生了明显的缓存抖动,但是它们的训练时间仍然与GPU训练时间相当或更快。因此,他,Chen和Medini 于2019年3月在arXiv上发布了 初步结果,并将其代码上传到GitHub。几周后,英特尔与他们联系。
他说:“我们来自英特尔的合作者意识到了缓存问题。” “他们告诉我们,他们可以与我们合作,使其训练更快,他们是对的。在他们的帮助下,我们的结果提高了约50%。”
Shrivastava说SLIDE尚未接近发挥其潜力。
他说:“我们只是擦伤了表面。” “我们还有很多要做的优化工作。例如,我们没有使用矢量化,也没有在CPU中使用内置加速器,例如Intel Deep Learning Boost。我们还有许多其他技巧可以使它变得更快。”
Shrivastava说SLIDE很重要,因为它表明还有其他实现深度学习的方法。
Chen表示:“整个信息是,'不要被乘法矩阵和GPU内存所困扰。' “我们可能是击败GPU的第一种算法方法,但我希望这不是最后一种。该领域需要新的想法,这是MLSys的重要组成部分。”