OpenAI发布高度优化的GPU计算内核—块稀疏GPU内核

深度学习领域的模型架构和算法的发展在很大程度上受到GPU能否高效实现初等变换的限制。其中一个问题是缺乏GPU不能高效执行稀疏线性操作,我们现在正在发布高度优化的GPU计算内核实现一些稀疏模式(附带初步研究结果)。从初步的结果来看希望很大,但有不确定性,我们邀请社区加入我们,研究这些内核解锁的体系结构的极限。

稠密层(左)可以替换为稀疏并且宽的层(中)或稀疏并且深的层(右),而它们的计算时间几乎相同。

稀疏权矩阵与密集权矩阵相反,它具有大量值为零的项。我们希望稀疏权重矩阵作为模型的构建模块,因为矩阵乘法和稀疏块卷积的计算成本仅与非零块的数量成正比。例如,在给定的参数预算和计算预算中,神经网络的训练比其他方法更宽也更深,,例如具有数万个隐藏单元的LSTM 。(目前训练的最大LSTM只有数千个隐藏单元。)

内核

稠密权重矩阵(左)和块稀疏权重矩阵(中)的可视化,其中空白部分表示权重为零。

这个内核允许在完全连接层和卷积层中有效地使用块稀疏权重(如上所示)。对于卷积层,内核的输入和输出特征维度都允许有稀疏性; 空间维度上的连通性不受影响。稀疏性是在块级别(右上图)中定义的,并且已针对8×8(例如本例中)16×16或32×32的块大小进行了优化。在这个块级别中,稀疏模式是完全可配置的。由于内核计算时跳过值为零的块,所以计算成本只与非零权重的数量成正比,而不是与输入或输出特征的数量成正比。存储参数的成本也只与非零权重的数量成比例。

不同水平的稀疏的加速系数,与cuBLAS相比,在宽的状态下(12288个隐藏单元),块大小为32×32,小批量大小为32。在使用CUDA 8的NVIDIA Titan X Pascal GPU上进行比较。相对于cuSPARSE的加速在测试的稀疏水平上事实上更大。

使用内核

下面我们展示用于在Tensorflow中执行稀疏矩阵乘法的示例代码。

from blocksparse.matmul import BlocksparseMatMul
import tensorflow as tf
import numpy as np

hidden_size = 4096
block_size = 32
minibatch_size = 64

# Create a (random) sparsity pattern
sparsity = np.random.randint(2, size=(hidden_size//block_size,hidden_size//block_size))

# Initialize the sparse matrix multiplication object
bsmm = BlocksparseMatMul(sparsity, block_size=block_size)

# Input to graph
x = tf.placeholder(tf.float32, shape=[None, hidden_size])

# Initialize block-sparse weights
w = tf.get_variable("w", bsmm.w_shape, dtype=tf.float32)

# Block-sparse matrix multiplication
y = bsmm(x, w)

# Run
sess = tf.InteractiveSession()
sess.run(tf.global_variables_initializer())
result = sess.run([y], feed_dict = {x: np.ones((minibatch_size,hidden_size), dtype='float32')})
print(result)

小世界的LSTM

块稀疏内核的一个特别有趣的用途是使用它们来创建小世界神经网络。小世界网络图的连接方式是,图中的任何两个节点都可以通过少量步骤连接(即使图中有数十亿个节点)。我们实现小世界连通性是为了在稀疏性很高的情况下,仍然可以通过网络迅速传播信息。其实人类的大脑也是小世界的连接模式,这就引发了一个问题:让LSTM具有同样的特性能否提高性能。利用小世界稀疏连通性,我们很快训练了近2万个隐藏单元的LSTM,比具有相似参数计数的密集网络宽5倍,提高了文本生成建模的结果,以及半监督的情感分类。

参阅:

https://s3-us-west-2.amazonaws.com/openai-assets/blocksparse/blocksparsepaper.pdf

在小世界图中,即使具有高度稀疏,节点也能够以少量步骤连接。上面的动图展示了从二维Watts-Strogatz小世界图中中心节点(像素)传播的激活(为了美观做了平滑的随机)。在图中,节点之间的平均路径长度小于5,类似于我们的LSTM实验中使用的Barabasi-Albert图。

情感表征学习

在我们的情绪神经元实验中,我们使用了近似等效参数计数的LSTM,并比较了比较了具有密集权重矩阵与块稀疏变量的模型。稀疏模型在所有情感数据集上都优于稠密模型。我们的稀疏模型将文档级别IMDB数据集的最新状态从5.91%的错误率(Miyato et al,2016)降低到5.01%。与以前的结果相比,这个改进看起来很不错,之前只有在较短的句子级别的数据集上表现最好

对密集和稀疏生成模型的特征进行训练的线性模型的情感分类错误(%)大致相当于总参数计数。

压缩结果

通过使用稀疏和宽的LSTM,我们的实验位每字符的结果从1.059下降到1.048,且参数计数相同(约1亿)。具有块稀疏线性层的架构也可以根据用稠密连接的线性层获得的结果进行改善。我们对CIFAR-10自然图像的PixelCNN ++模型进行了简单的修改。用稀疏内核代替常规的二维卷积核,在加深网络的同时保持超参数的其余部分不变,导致每维的位数从2.92降低到2.90,现在这个数据集的最新技术水平。

研究方向

这里我们列出一些对未来研究的建议。

  • 神经网络中的大部分权重可以在训练结束后修剪。如果推理时这种修剪与这些内核一起使用能节省多少执行的时间?
  • 在生物大脑中,除了连接强度之外,网络的部分稀疏结构在成长过程中就已确定。我们是否可以在人工神经网络中进行模仿,是否可以不仅使用梯度学习连接权重还学习最佳的稀疏结构?近期有两篇论文可以在这个方向起到作用:arxiv.org/abs/1711.02782 arxiv.org/abs/1712.01312
  • 我们训练了有上万个的隐藏单位的LSTM,获得了更好的文字模型表现。那么,稀疏层使得训练具有大量权重矩阵的模型成为可能,而且与其较小的稠密网络相同数量的参数和相同的计算成本。那么应用在哪些领域将对性能产生最大的影响?

原文发布于微信公众号 - ATYUN订阅号(atyun_com)

原文发表时间:2017-12-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据科学与人工智能

【应用】 信用评分:第7部分 - 信用风险模型的进一步考虑

以满足科学模型开发的主要标志 - 严谨性,可测试性,可复制性和精确性以及可信度 - 考虑模型验证以及如何处理不平衡数据非常重要。 本文概述了可用于满足这些标志的...

563
来自专栏机器之心

学界 | DeepMind新论文提出循环环境模拟器:可适应多种不同环境

选自arXiv.org 机器之心编译 参与:吴攀、黄小天、蒋思源 围棋、视频游戏、迷宫……DeepMind 的人工智能在玩游戏方面可谓是得心应手。DeepMi...

3145
来自专栏机器之心

研学社•架构组 | CoCoA:大规模机器学习的分布式优化通用框架

机器之心原创 作者:Yanchen Wang 参与:panda 去年,Michael I. Jordan 实验室发表论文《CoCoA: A General Fr...

2586
来自专栏机器之心

入门 | 理解深度学习中的学习率及多种选择策略

2586
来自专栏机器之心

学界 | 5.5%语音识别词错率究竟如何炼成?IBM发布相关研究论文

选自arXiv 机器之心编译 参与:晏奇、吴攀 语音识别是人工智能领域所研究的核心问题之一,研究者一直以来都在竞相努力以期能首先达到比肩人类的里程碑。去年十月,...

34012
来自专栏TensorFlow从0到N

TensorFlow从0到1 - 13 - AI驯兽师:神经网络调教综述

在未来的AI时代,“手工程序”将变得越发稀有,而基于通用AI程序,通过大数据“习得”而生的程序,会无所不在。到那时,程序员将光荣卸任,取而代之的是一个新职业物...

3997
来自专栏机器学习算法全栈工程师

CNN模型之ShuffleNet

作者:叶 虎 编辑:李文臣 引言 1 ShuffleNet是旷视科技最近提出的一种计算高效的CNN模型,其和MobileNet和SqueezeNet等一样...

4653
来自专栏人工智能头条

卷积神经网络中十大拍案叫绝的操作

782
来自专栏新智元

变形卷积核、可分离卷积?卷积神经网络中10大拍案叫绝的操作

【新智元导读】CNN从2012年的AlexNet发展至今,科学家们发明出各种各样的CNN模型,一个比一个深,一个比一个准确,一个比一个轻量。本文作者对近几年一些...

2585
来自专栏AI研习社

变形卷积核、可分离卷积?卷积神经网络中十大拍案叫绝的操作

从2012年的AlexNet发展至今,科学家们发明出各种各样的CNN模型,一个比一个深,一个比一个准确,一个比一个轻量。我下面会对近几年一些具有变革性的工作进行...

2675

扫描关注云+社区