专利转让平台_买专利_卖专利_中国高校专利技术交易-买卖发明专利上知查网

全部分类
全部分类
基于神经网络中数据稀疏特性的智能训练加速方法及系统

基于神经网络中数据稀疏特性的智能训练加速方法及系统

IPC分类号 : G06N3/04,G06N3/08,G06N7/00,G06F9/50

申请号
CN202011633404.6
可选规格
  • 专利类型: 发明专利
  • 法律状态: 有权
  • 申请日: 2020-12-31
  • 公开号: 112308215A
  • 公开日: 2021-02-02
  • 主分类号: G06N3/04
  • 专利权人: 之江实验室 ; 浙江大学

专利摘要

本发明提出了一种基于神经网络中数据稀疏特性的智能训练加速方法,该方法通过对模型进行预训练收集相关数据信息与性能模型信息,并利用深度学习网络的稀疏特性结合压缩与解压缩算法动态减少GPU与CPU之间所需传输的数据量,从而提升系统整体性能。本发明还提出了一种基于神经网络中数据稀疏特性的智能训练加速系统,该系统包括:Profile模块、GPU性能模型模块、决策器以及深度学习训练模块;利用本发明系统进行神经网络训练,能有效提升训练速度和系统整体性能。

权利要求

1.一种基于神经网络中数据稀疏特性的智能训练加速方法,其特征在于,包括以下步骤:

步骤一:采用贝叶斯优化器算法针对当前训练系统搜索出合适的GPU块数、网格大小;测出GPU与CPU之间的转移带宽,并利用线性归回建立压缩与解压缩算法的性能模型;

步骤二:收集神经网络模型训练时的数据信息,包括ReLu激活层输出的数据的大小、数据稀疏度信息以及ReLu激活层下一层的训练时间;

步骤三:根据收集到的数据信息以及性能模型进行智能决策:

若性能模型对应压缩后的开销小于原始数据的转移开销,则在模型训练过程中输出数据转移时进行对应的压缩/解压缩,反之不压缩;

其中,性能模型对应的压缩后的开销、原始数据的转移开销由下式表示:

T’(s) = max(2×(s / b) – hf – hb , 0)

T(s,r,tc,tdc) = tc + tdc + Of + Ob

Of =max(s×(1 - r) / b – hf , 0)

Ob =max(s×(1 - r) / b – hb , 0)

式中T’(s)表示原始数据的转移开销,T(s,r,tc,tdc)表示性能模型对应的压缩后的开销,s为数据大小,b为GPU与CPU之间的转移带宽,hf与hb分别表示前向传播与后向传播过程中ReLu激活层下一层的训练时间;tc、tdc分别表示压缩、解压缩的操作时间;Of、Ob分别表示被压缩后数据在前向传播与后向传播过程中的转移开销,r表示数据的稀疏度,s×(1-r)表示压缩后数据的大小;

步骤四:根据智能决策对训练模型进行训练;

步骤五:重复执行步骤二至四,直至训练完成。

2.根据权利要求1所述的智能训练加速方法,其特征在于,所述步骤一中,建立压缩与解压缩算法的性能模型具体方法如下:

使用不同数据大小、不同稀疏度的样本对压缩、解压缩算法进行预运行,收集信息并拟合成数据大小、稀疏度与压缩/解压缩时间的关系曲线,建立获得压缩/解压缩算法性能模型。

3.根据权利要求1所述的智能训练加速方法,其特征在于,包括多个压缩与解压缩算法的性能模型。

4.根据权利要求1所述的智能训练加速方法,其特征在于,所述压缩算法为ZVC压缩算法和/或RLE压缩算法。

5.一种基于权利要求1所述智能训练加速方法的智能训练加速系统,其特征在于,包括:

Profile模块、GPU性能模型模块、决策器以及深度学习训练模块;其中:

Profile模块用于收集神经网络模型训练时的数据信息,包括ReLu激活层输出的数据的大小、数据稀疏度信息以及ReLu激活层下一层的训练时间;

GPU性能模型模块用于根据贝叶斯优化器算法调整GPU设备的块数、网格大小并测得GPU与CPU之间的转移带宽;建立压缩与解压缩算法的性能模型;

决策器用于依据基本数据信息产生最优决策:若性能模型对应压缩后的开销小于原始数据的转移开销,则在模型训练过程中输出数据转移时进行对应的压缩/解压缩,反之不压缩;

其中,性能模型对应的压缩后的开销、原始数据的转移开销由下式表示:

T’(s) = max(2×(s / b) – hf – hb , 0)

T(s,r,tc,tdc) = tc + tdc + Of + Ob

Of =max(s×(1 - r) / b – hf , 0)

Ob =max(s×(1 - r) / b – hb , 0)

式中T’(s)表示原始数据的转移开销,T(s,r,tc,tdc)表示性能模型对应的压缩后的开销,s为数据大小,b为GPU与CPU之间的转移带宽,hf与hb分别表示前向传播与后向传播过程中ReLu激活层下一层的训练时间;tc、tdc分别表示压缩、解压缩的操作时间;Of、Ob分别表示被压缩后数据在前向传播与后向传播过程中的转移开销,r表示数据的稀疏度,s×(1-r)表示压缩后数据的大小,b为带宽;

深度学习训练模块用于训练神经网络模型并将所述决策器产生的产生最优决策整合于模型训练过程中。

6.根据权利要求5所述的智能训练加速系统,其特征在于,所述决策器定期向Profile模块索要更新输出数据信息。

说明书

技术领域

本发明涉及计算机科学人工智能领域,尤其涉及一种针对于神经网络中数据稀疏特性的智能训练加速方法及系统。

背景技术

深度学习技术的革新大大推动了计算机视觉,自然语言处理,医学等领域的发展。为了追求更高的精度,深度学习模型在训练过程中对样本以及参数数量的需求不断增加,从而需要更大的设备存储空间予以支持。然而以GPU为代表的深度学习加速器的存储容量十分有限,无法保存当前深度学习模型在训练过程中的大量数据,严重制约了深度学习技术的发展。为了解决该问题,目前常用的内存优化方案在训练过程中选择将GPU显存内暂时不需要的部分层数据转移至系统内存,以减轻GPU显存压力,并在后期需要访问该数据前将所需数据转移回GPU显存。然而,大量的数据转移以及GPU-CPU之间有限的转移带宽使得转移时间较长。在模型训练过程中,计算需要等待上阶段转移操作完成才能够继续,长时间的转移等待严重制约了深度学习模型的训练性能。

发明内容

为了解决数据转移内存时间过长而带来的性能问题,本发明提出一种智能训练加速方法,利用深度学习ReLu激活层输出数据的稀疏特性结合压缩算法实现动态决策,选择最适合的压缩算法并决定是否在GPU转出数据前对数据进行压缩操作并在转回后进行解压缩,以减少GPU与CPU之间的数据传输量,减少转移时间,从而加速深度学习模型的整体训练性能。

本发明采用的技术方案具体为:

一种基于神经网络中数据稀疏特性的智能训练加速方法,包括以下步骤:

步骤一:采用贝叶斯优化器(Bayesian Optimization)算法针对当前训练系统搜索出合适的GPU块数(Block Size)、网格大小(Grid Size)。测出GPU与CPU之间的转移带宽,并利用线性回归建立压缩与解压缩算法的性能模型;

步骤二:收集神经网络模型训练时的数据信息,包括ReLu激活层输出的数据的大小、数据稀疏度信息以及ReLu激活层下一层的训练时间;

步骤三:根据收集到的数据信息以及性能模型进行智能决策:

若性能模型对应压缩后的开销小于原始数据的转移开销,则在模型训练过程中输出数据转移时进行对应的压缩/解压缩,反之不压缩;

其中,性能模型对应的压缩后的开销、原始数据的转移开销由下式表示:

T’(s) = max(2×(s / b) – hf – hb , 0)

T(s,r,tc,tdc) = tc + tdc + Of + Ob

Of =max(s×(1 - r) / b – hf , 0)

Ob =max(s×(1 - r) / b – hb , 0)

式中T’(s)表示原始数据的转移开销,T(s,r,tc,tdc)表示性能模型对应的压缩后的开销,s为数据大小,b为GPU与CPU之间的转移带宽,hf与hb分别表示前向传播与后向传播过程中ReLu激活层下一层的训练时间;tc、tdc分别表示压缩、解压缩的操作时间;Of、Ob分别表示被压缩后数据在前向传播与后向传播过程中的转移开销,r表示数据的稀疏度,s×(1-r)表示压缩后数据的大小;

步骤四:根据智能决策对训练模型进行训练;

步骤五:重复执行步骤二至四,直至训练完成。

进一步地,所述步骤一中,建立压缩与解压缩算法的性能模型具体方法如下:

使用不同数据大小、不同稀疏度的样本对压缩、解压缩算法进行预运行,快速收集信息并拟合成数据大小、稀疏度与压缩/解压缩时间的关系曲线,建立获得压缩/解压缩算法性能模型。

进一步地,包括多个压缩与解压缩算法的性能模型,可以择优选择一种压缩算法进行压缩。

进一步地,所述压缩算法为ZVC压缩算法和/或RLE压缩算法等常用的压缩算法。

基于上述方法,本发明还提供了一种基于神经网络中数据稀疏特性的智能训练加速系统,包括Profile模块、GPU性能模型模块、决策器以及深度学习训练模块。

其中Profile模块用于获取收集神经网络模型训练时的数据信息,包括ReLu激活层输出的数据的大小、数据稀疏度信息以及ReLu激活层下一层的训练时间;

GPU性能模型模块用于根据贝叶斯优化器算法调整GPU设备的块数、网格大小,并测得GPU与CPU之间的转移带宽;建立压缩与解压缩算法的性能模型;

决策器将依据基本数据信息产生最优决策:若性能模型对应压缩后的开销小于原始数据的转移开销,则在模型训练过程中输出数据转移时进行对应的压缩/解压缩,反之不压缩;

深度学习训练模块用于训练模型并将所述决策器产生的产生最优决策整合于模型训练过程中,以提高系统整体训练性能。

其中,所述决策器定期向Profile模块索要更新输出数据信息,以便对整个训练过程中进行动态决策。

本发明的有益效果是:

由于传统深度学习转移内存优化方案中计算需要等待数据转移完成,当数据转移量较大、转移时间过长时会严重限制系统整体性能。本发明提出一种基于神经网络中数据稀疏特性的智能训练加速方法,与现有技术中对数据进行无处理转移不同,该方法利用所转移数据的稀疏特性动态选择是否对数据进行压缩后转移,并在转回后进行解压缩。当压缩后数据转移时间与压缩操作或解压缩操作时间之和小于原始数据转移时间时,系统性能便会提高。

附图说明

图1为ImageNet数据集下AlexNet模型中各ReLu激活层后的输出数据的稀疏度柱状图(训练二十轮),其中batch size设置为256;

图2为AlexNet中第四个ReLu激活层输出数据随着训练进行的稀疏度变化折线图,其中batch size设置为256;

图3为压缩/解压缩方法与原方法性能对比示意图,其中:左图为深度学习训练过程中前向传播某层数据原输出时间(1)与使用本发明方法所需时间(2)对比示意图,右图为后向传播阶段时间对比图,(3)为原数据转移时间,(4)为使用本发明方法所需时间;

图4为本发明的系统架构模块图,其中包括Profile模块、GPU性能模型模块、决策器以及深度学习训练模块。

具体实施方式

图1表明以AlexNet为代表的神经网络模型各ReLu激活层后的输出数据具有较强的稀疏性(0数据占比较多),均达到了50%以上。图2表明模型输出数据稀疏度会随着训练的进行而发生变化。据此,本发明提出了一种基于神经网络中数据稀疏特性的智能训练加速方法及系统,其中,图4为本发明的系统架构模块图,包括Profile模块、GPU性能模型模块、决策器以及深度学习训练模块。

下面根据附图详细说明本发明方法,本发明所述的智能训练加速方法,具体包括以下步骤:

步骤一: GPU性能模型模块将在当前训练系统中使用不同数据大小、不同稀疏度的样例对压缩、解压缩算法进行预运行,快速收集信息并拟合成数据大小、稀疏度与压缩/解压缩时间的关系曲线,建立获得压缩/解压缩算法性能模型。此外,该模块使用贝叶斯优化器搜索GPU的合理配置,以优化GPU操作性能,并将性能模型、配置信息以及GPU与CPU之间的转移带宽传递于决策器。

步骤二:当用户编写完成神经网络模型代码后,深度学习训练模块对其进行第一轮预训练操作,同时Profile模块将对所需转移的激活函数输出数据进行信息收集工作,包括ReLu激活层输出的数据的大小、数据稀疏度信息以及ReLu激活层下一层的训练时间,并将信息传递于决策器。

步骤三:决策器模块根据收集到的信息进行动态决策,若性能模型对应的压缩后的开销小于原始数据的转移开销,则在模型训练过程中输出数据转移时进行对应的压缩/解压缩,反之不压缩。

其中,性能模型对应的压缩后的开销、原始数据的转移开销由下式表示:

T’(s) = max(2×(s / b) – hf – hb , 0)

T(s,r,tc,tdc) = tc + tdc + Of + Ob

Of =max(s×(1 - r) / b – hf , 0)

Ob =max(s×(1 - r) / b – hb , 0)

式中T’(s)表示原始数据的转移开销,T(s,r,tc,tdc)表示性能模型对应的压缩后的开销,s为数据大小,b为GPU与CPU之间的转移带宽,hf与hb分别表示前向传播与后向传播过程中的可隐藏时间,本发明中具体为ReLu激活层下一层的训练时间;tc、tdc分别表示压缩、解压缩的操作时间;Of、Ob分别表示被压缩数据在前向传播与后向传播过程中的转移开销,r表示数据的稀疏度,s×(1-r)表示压缩后数据的大小。

具体地,该步骤可分为以下子步骤:

(1)将激活函数输出数据的大小,稀疏度输入压缩与解压缩算法的性能模型,得到针对该数据的压缩与解压缩操作时间;

(2)根据数据大小、稀疏度以及GPU与CPU之间的转移带宽计算出被压缩后数据在前向传播与后向传播过程中的转移开销;

(3)比较前向传播与后向传播原始数据转移时间与优化后总转移时间,其中前向传播示意图如图3左部分所示,后向传播如图3右部分所示。当性能模型对应的压缩后的开销小于原始数据的转移开销时,系统便决策对该数据使用压缩方案,否则不使用。此外,由于不同压缩算法针对不同特征的数据效果不同,所以决策器可针对多个压缩与解压缩算法的性能模型对压缩算法进行综合评判,选择性能提升最高的一种,本实施例中优选使用ZVC(Zero-Value Compression)以及RLE(Run-Length Encoding)两种压缩算法。

步骤四:决策器将最终决策下达给深度学习训练模块,深度学习训练模块使用决策进行训练以减少转移原始数据带来的性能开销。

步骤五:因为ReLu激活层的输出数据稀疏度会随着训练过程而发生变化,如图2所示,且该变化趋势与模型以及层所在位置相关,所以随着模型的收敛,决策器将定期向Profile模块索要新数据信息,重复执行步骤二至四,动态调整当前决策。

下面,提供一具体实施例,具体实验如下:

实验配置:

(1)操作系统:Ubuntu 18.04.3 LTS;

(2)CPU:型号为8核 Intel(R) Xeon(R) Gold 6126 CPU @ 2.60GHz,配有32GB DRAM;

(3)GPU:Tesla V100 32GB显存;

(4)存储设备:512GB,SK hynix SC311 SATA SSD;Western Digital WDC WD40EZRZ-75G HDD;

模型配置:

(1)模型:Vgg16 PyTorch标准代码;

(2)数据集:Cifar10,包含60000张彩色图像,大小为32*32,分为10个类,每类6000张图,其中50000张图片用于训练,10000张图片用于测试;

(3)Batch大小:2560张图片/批次;

(4)训练轮数:90轮(epoch);

方案配置:

(1)压缩算法:ZVC压缩算法(Zero-Value Compression);

(2)GPU配置搜索方案:贝叶斯优化器(Bayesian Optimization)全局搜索30次;

最终测试结果:

采用不加速方法,每一轮训练时间为12.52s;采用本发明方法训练一轮所需时间为10.44s;最终90轮后不加速方法所需训练时间:1126.8s;本发明方法最终所需时间为939.6s;本发明方案系统的性能在vgg16模型下为原方法性能的1.2倍。

显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其他不同形式的变化或变动。这里无需也无法把所有的实施方式予以穷举。而由此所引申出的显而易见的变化或变动仍处于本发明的保护范围。

基于神经网络中数据稀疏特性的智能训练加速方法及系统专利购买费用说明

专利买卖交易资料

Q:办理专利转让的流程及所需资料

A:专利权人变更需要办理著录项目变更手续,有代理机构的,变更手续应当由代理机构办理。

1:专利变更应当使用专利局统一制作的“著录项目变更申报书”提出。

2:按规定缴纳著录项目变更手续费。

3:同时提交相关证明文件原件。

4:专利权转移的,变更后的专利权人委托新专利代理机构的,应当提交变更后的全体专利申请人签字或者盖章的委托书。

Q:专利著录项目变更费用如何缴交

A:(1)直接到国家知识产权局受理大厅收费窗口缴纳,(2)通过代办处缴纳,(3)通过邮局或者银行汇款,更多缴纳方式

Q:专利转让变更,多久能出结果

A:著录项目变更请求书递交后,一般1-2个月左右就会收到通知,国家知识产权局会下达《转让手续合格通知书》。

动态评分

0.0

没有评分数据
没有评价数据
×

打开微信,点击底部的“发现”

使用“扫一扫”即可将网页分享至朋友圈

×
复制
用户中心
我的足迹
我的收藏

您的购物车还是空的,您可以

  • 微信公众号

    微信公众号
在线留言
返回顶部