CN110799994B - 神经网络的自适应位宽缩减 - Google Patents
神经网络的自适应位宽缩减 Download PDFInfo
- Publication number
- CN110799994B CN110799994B CN201880042804.4A CN201880042804A CN110799994B CN 110799994 B CN110799994 B CN 110799994B CN 201880042804 A CN201880042804 A CN 201880042804A CN 110799994 B CN110799994 B CN 110799994B
- Authority
- CN
- China
- Prior art keywords
- layer
- neural network
- network model
- bit width
- layers
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000003044 adaptive effect Effects 0.000 title claims abstract description 36
- 238000013528 artificial neural network Methods 0.000 title claims description 17
- 230000009467 reduction Effects 0.000 title claims description 14
- 238000003062 neural network model Methods 0.000 claims abstract description 73
- 238000013139 quantization Methods 0.000 claims abstract description 69
- 238000000034 method Methods 0.000 claims abstract description 58
- 238000010200 validation analysis Methods 0.000 claims abstract description 14
- 238000012549 training Methods 0.000 claims description 57
- 230000004044 response Effects 0.000 claims description 32
- 238000009826 distribution Methods 0.000 claims description 27
- 238000004891 communication Methods 0.000 description 36
- 230000008569 process Effects 0.000 description 26
- 238000012545 processing Methods 0.000 description 22
- 238000013138 pruning Methods 0.000 description 16
- 238000010801 machine learning Methods 0.000 description 14
- 230000004913 activation Effects 0.000 description 13
- 230000006870 function Effects 0.000 description 13
- 210000002569 neuron Anatomy 0.000 description 12
- 238000007667 floating Methods 0.000 description 10
- 238000013136 deep learning model Methods 0.000 description 8
- 238000013527 convolutional neural network Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 238000012360 testing method Methods 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 5
- 238000001914 filtration Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 230000002787 reinforcement Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000010365 information processing Effects 0.000 description 3
- 238000011946 reduction process Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000011176 pooling Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 210000004027 cell Anatomy 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 230000001627 detrimental effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 210000000225 synapse Anatomy 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/004—Artificial life, i.e. computing arrangements simulating life
- G06N3/006—Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Image Analysis (AREA)
Abstract
一种在计算设备上提供自适应位宽神经网络模型的方法,包括:获得第一神经网络模型,其中,第一神经网络模型的每一层具有利用第一神经网络模型的原始位宽表示的对应参数集;通过使用用于存储第一神经网络模型的不同层的对应参数集的对应缩减位宽,缩减第一神经网络模型的占用,其中:当第一神经网络模型的两个或者多个层中的每一层用不同量化程度表示时,使用验证数据集进行通过第一神经网络模型的前向传播的多次迭代,直到满足预定信息丢失阈值为止,从而确定对应缩减位宽的优选值;以及,利用由对应缩减位宽表示的量化参数,生成缩减的神经网络模型。
Description
技术领域
本公开涉及机器学习实时应用,并且更具体地,涉及通过缩减机器学习模型的模型大小和计算占用(computational footprint)改善用于便携式设备和实时应用的机器学习模型,并且保持相同的精确度。
背景技术
机器学习在许多领域具有广泛的适用性,这些领域包括计算机视觉、语音识别、机器翻译、社交网络过滤、棋牌游戏和视频游戏、医疗诊断以及许多其他领域。诸如人工神经网络(ANN)的机器学习模型是由简单单元(神经元)组成的网络,简单单元接收输入,根据该输入改变其内部状态(激活),并且根据输入和激活产生输出。该网络是通过有向加权图将某些神经元的输出连接到其他神经元的输入而形成的。权重以及计算激活的函数根据预定学习规则,通过迭代学习过程逐渐进行修改,直到实现预定的收敛为止。机器学习模型有很多变型,并且有不同的学习范式。卷积神经网络(CNN)是一类前馈网络,其由一个或多个具有全连接层(对应于ANN的层)的卷积层组成。CNN具有关联权重和池化层,且能够利用标准逆向传播训练。深度学习模型,诸如VGG16和不同类型的ResNet,是包含多于一个隐藏层的大型模型,其能够产生与人类专家相媲美的分析结果,这使它们成为许多真实世界应用的有吸引力的候选对象。
神经网络模型通常具有几千到几百万个单位和数百万个参数。更深和更高精确度的CNN要求大量的计算资源,这使得它们对于实时应用或在电池寿命、内存和处理能力有限的便携式设备上的部署不太实用。现有的用于为各种应用部署大型神经网络模型(例如,深度学习模型)的最新解决方案专注于两种方法,模型缩减和硬件升级。专注于缩减模型结构的复杂度的模型缩减通常会极大地损害模型的精确度,而实际成本和能量消耗问题限制了硬件升级。因此,需要用于产生有效的轻量级机器学习模型的改进技术。
发明内容
本公开描述了一种用于产生具有针对模型的不同层的参数的自适应位宽的高精确度、轻量级机器学习模型的技术。具体而言,修改了常规训练阶段,以将模型的每一层的参数朝8位范围内的整数值推进。在完成训练阶段之后,所获得的浮点精度模型(例如,FP32精度)可选地通过剪枝过程以产生精简的稀疏网络。另外,全精度模型(例如,原始训练模型或剪枝模型)通过非均匀量化转换为缩减的自适应位宽模型,例如,将FP32参数转换为其具有对应缩减位宽的量化对等物,该对应缩减位宽通过使用校准数据集的多轮测试确认。具体地,校准数据集前向传播通过带有用于不同层的不同位宽组合的数据模型的量化版本,直到确认合适的缩减位宽集(例如,最小位宽集)为止,该合适的缩减位宽集产生可接受的模型精确度水平(例如,具有低于阈值信息丢失量的信息丢失量,或者具有最小的信息丢失量)。然后部署缩减的自适应位宽模型(例如,部署在便携式电子设备上)以执行预定任务。
一方面,一种在计算设备上提供自适应位宽神经网络模型的方法,包括:获得包括多个层的第一神经网络模型,其中,多个层中的每一层具有对应参数集,并且每一个参数都用与第一神经网络模型的原始位宽对应的数据精度水平表示;通过使用用于存储第一神经网络模型的不同层的对应参数集的对应缩减位宽,缩减第一神经网络模型在计算设备上的占用,其中:当第一神经网络模型的两个或者多个层中的每一层用对应于不同缩减位宽的不同量化程度表示时,使用验证数据集进行通过第一神经网络模型的前向传播的多次迭代,直到两个或更多层的对应响应统计满足预定信息丢失阈值为止,从而确定对应缩减位宽的优选值;以及,生成包括多个层的缩减的神经网络模型,其中,多个层中的两个或者更多个中的每一层包括对应量化参数集,且每一个量化参数由通过多次迭代确定的用于层的对应缩减位宽的优选值表示。
根据一些实施例,一种电子设备包括:一个或多个处理器,以及,存储一个或多个程序的内存;一个或多个程序配置成由一个或多个处理器执行,并且该一个或多个程序包括用于执行本文中所描述的方法中的任一项的操作或者引起操作的执行的指令。根据一些实施例,一种非瞬态计算机可读存储介质具有在其中存储的指令,当由电子设备执行该指令时,导致设备执行本文中所描述的方法中的任一项的操作或者导致操作的执行。根据一些实施例,一种电子设备包括:用于执行本文中所描述的方法中的任一项的操作或者引起其操作的装置。根据一些实施例,用于在电子设备中使用的一种信息处理装置包括用于执行本文中所描述的方法中的任一项的操作或者引起操作的执行的手段。
在附图和下文的描述中陈述在该说明书中描述的本主题的一个或多个实施方式的细节。从说明书、附图以及权利要求,本主题的其他特征、方面和优势将变得显而易见。
附图说明
图1示出根据一些实施例的示例机器学习系统在其中操作的环境。
图2是根据一些实施例的示例模型生成系统的框图。
图3是根据一些实施例的示例模型部署系统的框图。
图4是根据一些实施例的示例机器学习模型。
图5是根据一些实施例的模型缩减过程的流程图。
具体实施方式
现在将详细参考实施例,其示例在附图中示出。在下文的详细描述中,阐述了许多具体细节以便提供对所描述的各种实施例的透彻理解。然而,对于本领域普通技术人员将显而易见的是,可以在没有这些具体细节的情况下实践各种所述实施例。在其他情形中,没有详细描述众所周知的方法、步骤、部件、电路和网络,以免不必要地使实施例的方面晦涩难懂。
还将理解,尽管在本文中在一些情形中使用术语第一、第二等描述各种元件,但是这些元件不应该被这些术语限制。这些术语仅用于区分一个元件与另一个元件。例如,在不脱离所描述的各种实施例的范围的情况下,第一层可以被称为第二层,并且类似地,一个层可以被称为第一层。第一层和第二层都是模型的层,但是除非上下文另有明确指示,否则它们不是同一层。
在本文中对所述各种实施例的描述中使用的术语仅出于描述具体实施例的目的,而不旨在进行限制。如在所述各种实施例和所附权利要求的描述中使用地,单数形式“一个”、“一种”和“所述”也旨在包括复数形式,除非上下文另外明确指出。还应理解,本文所用的术语“和/或”是指并涵盖一个或多个关联所列项目的任何和所有可能的组合。还将理解,当在本说明书中使用时,术语“包括”和/或“包含”规定了所陈述的特征、整体、步骤、操作、元件和/或部件的存在,但是不预先排除存在或添加一个或多个其他特征、整体、步骤、操作、元件、部件和/或其组合。
如本文所用地,取决于上下文,术语“如果”可选地被解释为意思是“何时”或“在……时”或“响应于确定”或“响应于检测”。类似地,取决于上下文,短语“如果确定”或“如果检测到[所陈述的状况或事件]”可选地被解释为意思是“在确定时”或“响应于确定”或“在检测到[所陈述的状况或事件]时”或“响应检测到[所陈述的状况或事件]”。
图1是示出示例机器学习系统100的框图,模型生成系统102和模型部署系统104在该示例机器学习系统100中操作。在一些实施例中,模型生成系统102是有一个或多个处理器和内存的服务器系统,该服务器系统能够进行大型计算和数据处理任务。在一些实施例中,模型部署系统104是有一个或多个处理器和内存的便携式电子设备,与服务器系统102相比,便携式电子设备是轻量级的并且具有有限的电池电量,并且具有较小的计算和数据处理能力。在一些实施例中,模型生成系统102和模型部署系统104经由网络(例如,因特网)远程连接。在一些实施例中,模型部署系统104通过网络或通过其他文件或数据传输装置(例如,经由便携式可移动盘驱动器或光盘)从模型生成系统102接收根据本文所述的技术生成的缩减模型。
如在图1中示出地,模型生成系统102通过使用训练数据108的语料库(例如,带有对应输出数据的输入数据)训练来生成全精度深度学习模型106(例如,有两个或更多隐藏层的CNN,并且CNN的参数(例如,权重和偏差)用占32位的单精度浮点格式(例如,FP32)表示)。如本文所用,“全精度”是指浮点精度,并且可以包括半精度(16位)、单精度(32位)、双精度(64位)、四精度(128位)、八精度(256位)和其他扩展精度格式(40位或80位)。在一些实施例中,训练包括监督训练、无监督训练或半监督训练。在一些实施例中,训练包括通过深度学习模型106的多个层的前向传播和通过深度学习模型106的多个层的逆向传播。
在一些实施例中,在训练期间,应用整数(INT)权重正则化和8位量化技术,以将深度学习模型106的全精度参数的值推向其对应的整数值,并缩减参数的值范围,使参数的值范围落入预定缩减最大位宽(例如,8位)的动态范围内。在本说明书的后面部分中描述关于INT权重正则化和8位量化技术的更多细节。
在一些实施例中,使用针对具体应用和输入数据定制的模型结构和训练规则执行训练。例如,如果学习模型用于语音识别系统,则将语音样本(例如,原始频谱图或线性滤波器组特征)和对应的文本用作深度学习模型的训练数据。在一些实施例中,如果学习模型用于计算机视觉,则将图像或特征以及对应类别用作学习模型的训练数据。在一些实施例中,如果学习模型用于垃圾内容检测或内容过滤,则将内容和对应的内容类别用作学习模型的训练数据。本领域技术人员将能够根据应用来选择合适的学习模型结构和合适的训练数据,并且为了简洁起见,在此不详尽列举示例。
在一些实施例中,一旦通过迭代训练过程实现了预定的收敛,就生成全精度学习模型106'。模型106'的每一层都具有对应的参数集(例如,用于将本层中的单元连接到与本层相邻的下一层的权重集,以及应用在连接两层的函数中的可选的一个或多个偏差项的集)。此时,所有参数都利用与学习模型106的原始位宽(例如32位)对应的原始精度水平(例如FP32)表示。请注意,即使在训练过程的前向传递中将8位量化应用于参数和中间结果,也会将浮点精度补偿标量添加到原始偏差项中以改变逆向传递中的梯度,并且所得到的模型106'的所有参数仍然用原始全精度表示,但是这些参数具有更小的动态范围,该更小的动态范围与前向传递中使用的缩减位宽(例如,8位)相对应。此外,在训练过程期间,输入也保持其全精度形式。
如在图1中所示,在完成对全精度模型106的训练之后,所得的全精度模型106'可选地经过网络剪枝过程。在一些实施例中,使用阈值执行网络剪枝,并且权重小于预定阈值的连接(例如,弱连接)被移除,并且由这些弱连接链接的单元被从网络中移除,从而导致更轻量级且稀疏的网络106"。在一些实施例中,代替使用阈值作为移除模型106′中较弱的连接的标准,通过附加的增强训练来执行剪枝。例如,验证数据集110用于测试模型106'的修改版本。每次使用验证数据集测试模型106时,都会从模型106中移除不同的连接,或者随机将先前移除的连接添加回模型106。使用验证数据集110评估具有不同连接组合的修改后模型的精确度,并且基于总连接数目和网络精确度的预定剪枝标准(例如,标准是基于指标值的,该指标值是网络精确度的量度和在网络中的总连接数目的倒数的和)用于按照在保存网络精确度和缩减网络复杂度之间的平衡确定连接的最佳组合。
如图1所示,一旦完成可选的网络剪枝过程,就生成精简的全精度学习模型106"。该精简的全精度学习模型106"用作后续量化和位宽缩减过程的基础模型,以生成缩减的自适应位宽模型112。在一些实施例中,如果不执行网络剪枝,则将训练后的全精度模型106'用作后续量化和位宽缩减过程的基础模型,以生成缩减的自适应位宽模型112。缩减的自适应位宽模型112是模型生成系统102的输出。缩减的自适应位宽模型112然后被提供给模型部署系统104,用于在应用中处理真实世界输入。在一些实施例中,在模型106的训练过程中不应用整数权重正则化和/或8位前向量化,并且使用常规的训练方法来生成全精度学习模型106'。如果未执行整数权重正则化和/或8位前向量化,则由于没有训练参数向整数值移动,且对于最终缩减模型112中的位宽的大幅缩减而言,值的动态范围可能太大,因此所得到的自适应位宽模型的精确度可以不那么好。但是,本文所述的自适应位宽缩减技术仍然能够实现模型大小的期望缩减,而不会导致棘手的模型精确度数量的丢失。因此,在一些实施例中,在训练阶段期间也可以独立于整数权重正则化和8位前向量化来使用本文所述的自适应位宽缩减,但是如果两种技术组合使用则可以获得更好的结果。缩减位宽如何被选定用于不同层或者模型112的参数如何确定以及如何从全精度基础模型106'或106"根据预定非线性量化方法(例如,对数量化)生成缩减位宽模型112的更多细节在本说明书的后面部分中提供。
如图1所示,一旦缩减的自适应位宽模型112被提供给在模型部署系统104上的部署平台116,真实世界输入数据或测试数据114被馈送至缩减的自适应位宽模型112,且响应于输入数据由缩减的自适应位宽模型112生成最终预测结果118。例如,如果模型112被训练用于语音识别任务,则真实世界输入数据可以是语音输入片段(例如,语音输入的波形或记录),并且输出可以是与语音输入片段对应的文本。在另一示例中,如果模型112被训练用于计算机视觉任务,则真实世界输入数据可以是图像或者图像特征集,并且输出可以是能够用于分类图像的图像类别。在其他示例中,如果模型112被训练用于内容过滤,真实世界输入数据可以是内容(例如,网络内容或者电子邮件内容),且输出数据可以是内容类别或者内容过滤动作。根据模型112被针对训练的应用,本领域技术人员将能够将合适的输入数据输入到缩减的自适应位宽模型112中,并适当地获得和利用输出。为了简洁起见,在此未详尽列举示例。
图1仅仅是示例,且根据各种实施例,机器学习系统100的操作环境、工作流程和结构的其他配置是可能的。
图2是根据一些实施例的模型生成系统200的框图。根据一些实施例,模型生成系统200可选地用作图1中的模型生成系统102。在一些实施例中,模型生成系统200包括一个或多个处理单元(或“处理器”)202、内存204、输入/输出(I/O)接口206和可选的网络通信接口208。这些部件通过一个或多个通信总线或信号线210彼此通信。在一些实施例中,内存204或内存204的计算机可读存储介质、存储程序、模块、指令和数据结构包括以下各项中的全部或者子集:操作系统212、输入/输出(I/O)模块214、通信模块216和模型生成模块218。一个或多个处理器202耦合到内存204,且可操作以执行这些程序、模块和指令以及对数据结构进行读写。
在一些实施例中,处理单元202包括一个或多个微处理器,诸如单核微处理器或者多核微处理器。在一些实施例中,处理单元202包括一个或多个通用处理器。在一些实施例中,处理单元202包括一个或多个专用处理器。在一些实施例中,处理单元202包括一个或多个服务器计算机、个人计算机、移动设备、手持计算机,平板计算机或包含一个或多个处理单元并在各种操作系统上运行的多种硬件平台之一。
在一些实施例中,内存204包括诸如DRAM、SRAM、DDR RAM的高速随机存取存储器或其他随机存取固态存储设备。在一些实施例中,内存204包括非易失存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存存储设备或其他非易失性固态存储设备。在一些实施例中,内存204包括远离处理单元202定位的一个或多个存储设备。内存204或替代地在内存204内的一个或多个非易失存储设备包括计算机可读存储介质。
在一些实施例中,I/O接口206将诸如显示器、键盘、触摸屏、扬声器和麦克风的输入/输出设备耦合至语音识别系统200的I/O模块214。I/O接口206与I/O模块214一起接收用户输入(例如,语音输入、键盘输入、接触输入等),且相应地处理它们。I/O接口206和用户接口模块214还根据在模型生成系统200上实施的各种程序指令将输出(例如,声音、图像、文本等)呈现给用户。
在一些实施例中,网络通信接口208包括一个或多个有线通信端口和/或无线发送和接收电路。一个或多个有线通信端口经由一个或多个有线接口,例如,以太网、通用串行总线(USB)、火线等接收和发送通信信号。无线电路从通信网络和其他通信设备接收RF信号和/或光信号并将其发送到通信网络和其他通信设备。无线通信可以使用多种通信标准、协议和技术中的任一种,诸如GSM、EDGE、CDMA、TDMA、蓝牙、Wi-Fi、VoIP、Wi-MAX或任何其他合适的通信协议。网络通信接口208允许在模型生成系统200与诸如因特网、专用网的网络和/或诸如移动电话网络、无线局域网(LAN)的无线网络和/或城域网(MAN)以及其他设备之间的通信。通信模块216便于在模型生成系统200和其他设备(例如,模型部署系统300)之间通过网络通信接口208的通信。
在一些实施例中,操作系统202(例如,Darwin、RTXC、LINUX、UNIX、OS X、WINDOWS或诸如VxWorks的嵌入操作系统)包括各种软件组件和/或驱动,这些软件组件和/或驱动用于控制和管理一般系统任务(例如,内存管理、存储设备控制、功率管理等),并且便于在各种硬件、固件和软件组件之间的通信。
在一些实施例中,在独立的计算机系统上实施模型生成系统200。在一些实施例中,模型生成系统200分布在多台计算机上。在一些实施例中,模型生成系统200的一些模块和功能位于第一组计算机上,并且模型生成系统200的一些模块和功能位于与第一组计算机不同的第二组计算机上;并且,两组计算机通过一个或多个网络彼此通信。
应当注意,在图2中示出的模型生成系统200仅是模型生成系统的一个示例,并且该模型生成系统200可以具有相比示出的部件更多或更少的部件,可以组合两个或者更多个部件,或者可以具有不同的部件配置或者布置。图2所示的各种部件可以以硬件、软件、固件的方式实施,包括一个或多个信号处理和/或专用集成电路或其组合。
如图2所示,模型生成系统200将模型生成模块218存储在内存204中。在一些实施例中,模型生成模块218还包括以下子模块或其子集或超集:训练模块220、整数权重正则化模块222、8位前向量化模块224、网络剪枝模块226、自适应量化模块228和部署模块230。在一些实施例中,部署模块230可选地执行模型部署系统的功能,使得能够在将缩减的自适应位宽模型实际部署到单独的模型部署系统上(诸如在便携式电子设备上之前),用真实世界数据来测试缩减的自适应位宽模型。
此外,如图2所示,这些模块和子模块中的每一个都可以访问以下数据结构和模型或其子集或超集中的一个或多个:训练语料库232(例如,包含图1中的训练数据108)、验证数据集234(例如,包含图1中的验证数据集110)、全精度模型236(例如,启动时为未经训练的全精度模型106,训练之后转换为经训练的全精度模型106')、精简的全精度模型238(例如,图1中的剪枝模型106")和缩减的自适应位宽模型240(例如,图1中的缩减的自适应位宽模型112)。关于图1、图4和图5以及随附的描述,提供了关于模型生成系统200的子模块和数据结构的结构、功能以及相互作用的更多细节。
图3是根据一些实施例的模型部署系统300的框图。根据一些实施例,模型部署系统300可选地用作图1中的模型部署系统104。在一些实施例中,模型部署系统300包括一个或多个处理单元(或“处理器”)302、内存304、输入/输出(I/O)接口306和可选的网络通信接口308。这些部件通过一条或多条通信总线或信号线310彼此通信。在一些实施例中,内存304或内存304的计算机可读存储介质存储包括以下各项的全部或子集的程序、模块、指令和数据结构:操作系统312、I/O模块314、通信模块316以及模型部署模块318。一个或多个处理器302耦合到内存304,并且可操作来执行这些程序、模块和指令,以及对数据结构进行读写。
在一些实施例中,处理单元302包括一个或多个微处理器,即单核或多核微处理器。在一些实施例中,处理单元302包括一个或多个通用处理器。在一些实施例中,处理单元302包括一个或多个专用处理器。在一些实施例中,处理单元302包括一个或多个服务器计算机、个人计算机、移动设备、手持计算机,平板计算机或包含一个或多个处理单元并在各种操作系统上运行的多种硬件平台之一。
在一些实施例中,内存304包括诸如DRAM、SRAM、DDR RAM的高速随机存取存储器或其他随机存取固态存储设备。在一些实施例中,内存304包括非易失存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存存储设备或其他非易失性固态存储设备。在一些实施例中,内存304包括远离处理单元302定位的一个或多个存储设备。内存304或替代地在内存304内的一个或多个非易失存储设备包括计算机可读存储介质。
在一些实施例中,I/O接口306将诸如显示器、键盘、触摸屏、扬声器和麦克风的输入/输出设备耦合至模型部署系统300的I/O模块314。I/O接口306与I/O模块314一起接收用户输入(例如,语音输入、键盘输入、接触输入等),且相应地处理它们。I/O接口306和用户接口模块314还根据在模型部署系统300上实施的各种程序指令将输出(例如,声音、图像、文本等)呈现给用户。
在一些实施例中,网络通信接口308包括一个或多个有线通信端口和/或无线发送和接收电路。一个或多个有线通信端口经由一个或多个有线接口,例如,以太网、通用串行总线(USB)、火线等接收和发送通信信号。无线电路从通信网络和其他通信设备接收RF信号和/或光信号并将其发送到通信网络和其他通信设备。无线通信可以使用多种通信标准、协议和技术中的任一种,诸如GSM、EDGE、CDMA、TDMA、蓝牙、Wi-Fi、VoIP、Wi-MAX或任何其他合适的通信协议。网络通信接口308允许在模型部署系统300与诸如因特网、专用网的网络和/或诸如移动电话网络、无线局域网(LAN)的无线网络和/或城域网(MAN)以及其他设备之间的通信。通信模块316便于在模型部署系统300和其他设备(例如,模型生成系统200)之间通过网络通信接口308的通信。
在一些实施例中,操作系统302(例如,Darwin、RTXC、LINUX、UNIX、OS X、WINDOWS或诸如VxWorks的嵌入操作系统)包括各种软件组件和/或驱动,这些软件组件和/或驱动用于控制和管理一般系统任务(例如,内存管理、存储设备控制、功率管理等),并且便于在各种硬件、固件和软件组件之间的通信。
在一些实施例中,在独立的计算机系统上实施模型部署系统300。在一些实施例中,模型部署系统300分布在多台计算机上。在一些实施例中,模型生成系统300的一些模块和功能位于第一组计算机上,并且模型生成系统300的一些模块和功能位于与第一组计算机不同的第二组计算机上;并且,两组计算机通过一个或多个网络彼此通信。应当注意,在图3中示出的模型部署系统300仅是模型部署系统的一个示例,并且该模型部署系统300可以具有相比示出的部件更多或更少的部件,可以组合两个或者更多个部件,或者可以具有不同的部件配置或者布置。图3所示的各种部件可以以硬件、软件、固件的方式实施,包括一个或多个信号处理和/或专用集成电路或其组合。
如图3所示,模型部署系统300将模型部署模块318存储在内存304中。在一些实施例中,部署模块318可以访问以下数据结构和模型中的一个或多个或其子集或超集:输入数据320(例如,包含图1中的真实世界数据114)、缩减的自适应位宽模型322(例如,图1中的缩减的自适应位宽模型112和图2中的缩减的自适应位宽模型240)和输出数据324。关于图1、图4和图5以及随附的描述,提供了关于模型部署系统300的子模块和数据结构的结构、功能以及相互作用的更多细节。
图4示出全精度深度学习模型(例如,有多个隐藏层的人工神经网络)的结构和训练过程。学习模型包括由圆圈代表的一些单位(或神经元),在这些单元之间具有连接(或突触)。连接具有关联的权重,每个权重代表先前层(例如,第i层)中的神经元的输出对下一层(例如,第i+1层)中的神经元的影响。每一层中的神经元都将来自从先前层连接至该神经元的所有神经元的输出相加,并应用激活函数以获得响应值。训练过程是使用在输入层中提供的训练数据集为学习模型的每一层校准所有权重Wi的过程。
训练过程通常包括两个步骤,即前向传播和逆向传播,这些步骤被重复多次直到满足预定收敛条件。在前向传播中,用于不同层的权重集被应用于来源于先前层的中间结果和输入数据。在逆向传播中,测量输出的误差幅度,并相应地调整权重以减少误差。激活函数能够是线性的、修正线性单位、Sigmoid函数、双曲正切或其他类型。
通常,在应用激活函数之前,将网络偏差项b添加到来自先前层的加权输出的和中。网络偏差提供了必要的干扰,这帮助该网络避免对训练数据的过拟合。以下是常规神经网络的工作流程示例:
训练以如下组件开始:
输入:图像In×m,输出:标签Bk×1,以及模型:L层神经网络。
L层神经网络的每个层i被描述为
yp×q=g(Wp*q×xq×1+bp×1),
其中,y是层响应向量,W是权重矩阵,x是输入向量,g(x)=max(0,x)是激活函数,并且b是偏差向量。(请注意,p和q是层维度,且在不同的层中将是不同的)。
训练结果包括:每层的网络权重参数W,每层的网络偏差参数b。
在本公开中,根据一些实施例,将整数(INT)权重正则化项添加到每一层的权重W,其中,Wi是层i的权重,并且是权重Wi的按元素(element-wise)的整数部分。利用该正则化,训练将权重的小数部分(decimals)作为惩罚,并且这能够在训练后将网络中的所有全精度(例如,FP32)权重推向其对应的整数值。
此外,对通过网络的前向传播中的所有权重和中间结果执行8位均匀量化。选择全精度(例如,FP32)补偿标量以调整权重的值范围,使得权重的值范围由预定最大位宽(例如,8位)很好地表示。一般而言,对于保留权重分布的显著信息来说,8位是一个相对宽裕的位宽。该量化将在逆向传递中改变梯度,以约束不同层的权重值范围。该量化位宽稍后用作缩减的自适应位宽模型的最大允许缩减位宽。
以下是添加了整数权重正则化和8位均匀量化的样本训练过程。
在此训练过程中,我们还将用以下组件启动:
输入:图像In×m,输出:标签Bk×1,以及模型:L层神经网络。
训练的结果包括:用全精度(例如,单精度浮点)格式表示的每一层的网络权重参数W,每一层的网络偏差参数b。这些结果与前面所述的常规训练的结果不同。将全精度参数(例如,权重W和偏差b)推向其最接近的整数,而对模型精确度的影响最小。为了避免大的信息丢失,通过8位前向量化来约束整数值的值范围。在均匀量化之前,卷积层和全连接层中的偏差项对网络的紧凑性有害。本文提出,卷积神经网络中的偏差项不会降低整个网络的精确度。当对权重参数应用8位均匀量化时,权重参数仍用全精度格式表示,但是此类响应级别(level)的总数受28-1约束,其中,总数中的一半为正数,且一半为负数。在训练阶段的每次迭代中,会在前向传递的每个层中应用该量化功能。逆向传播仍然使用全精度数字进行可学习的参数的更新。因此,利用补偿参数Xmax,有效地约束了权重整数值的范围。
在满足收敛条件之后(例如,当res已收敛时),获得了全精度训练后学习模型(例如,模型106')。该模型具有高精确度和高复杂度,并且在测试真实世界数据时具有较大的占用(例如,计算、功耗消耗、内存使用等)。
在一些实施例中,网络剪枝被用于降低网络复杂度。通常,设置阈值权重。仅高于阈值的权重保持不变,而低于阈值权重的权重被设置为零,并从网络中移除与零权重相对应的连接。未与任何其他神经元连接的神经元(例如,由于一个或多个连接的移除)被实际上从网络中移除,从而导致更紧凑和稀疏的学习模型。传统的剪枝技术是强制性的,并且会导致大量信息丢失,而且极大损害了模型精确度。
在本公开中,验证数据集用于执行增强学习,该增强学习使用在层之间的连接的不同子集组合来测试原始的全精确训练模型(例如,模型106')的修改版本的精确度。该问题被视为权重选择游戏,并且应用增强学习以寻找兼顾对更好的模型精确度和模型紧凑性的期望的最佳解决方案(例如,连接的最佳组合)。在一些实施例中,剪枝有效性Q的量度是网络精确度(例如,如通过在原始模型与具有缩减连接的模型之间的层响应的Jensen-Shannon散度所测量的网络精确度)和总连接数的倒数之和。增强学习的结果是网络中更有价值的权重的子集。在一些实施例中,在增强学习的每次迭代期间,从网络移除一个连接,或者将先前移除的一个连接添加回网络。在每次迭代之后评估网络精确度。在训练被执行一段时间之后,将出现一个带有稀疏权重(和神经元)的精简网络。
网络剪枝过程的结果包括:用全精度浮点格式表示,每一层的网络权重参数Wr,每一层的网络偏差参数br。
在一些实施例中,在剪枝之后,精简的全精度模型(例如,模型106")经过自适应量化过程以产生缩减的自适应位宽的精简INT模型(例如,模型112)。模型的自适应位宽是指以下特性:对于模型的每一层,用于存储参数集(例如,权重和偏差)的对应位宽是针对该参数集特别选择的(例如,根据参数的分布和范围)。具体地,将验证数据集用作通过剪枝的精简全精度网络(例如,模型106")的前向传递中的输入,并且收集每一层中的响应值的统计分布。然后,准备不同的位宽和层组合配置,作为用于评估的候选项。对于每个候选模型,将验证数据集用作通过候选模型的前向传递的输入,并且收集每一层中响应值的统计分布。然后,基于从将量化应用到候选模型所导致的信息丢失的数量,评估候选模型。在一些实施例中,每一层(或用于模型整体)的两个统计分布之间的Jensen-Shannon散度用于确认具有用于该层的最小信息丢失的最佳位宽。在一些实施例中,通过对所有层使用不同位宽组合,生成量化候选;作为替代,基于权重的值,对来自不同层的权重进行聚类,并且通过对所有聚类使用不同的位宽组合生成量化候选。
在一些实施例中,代替对模型的每一层的模型参数使用线性或均匀量化,将非线性量化应用于不同层的全精度参数。常规的线性量化不考虑参数值的分布,并且导致大量的信息丢失。在全精度参数上进行非均匀量化(例如,对数量化)时,更多的量化级别被赋予具有较大值的子级别,并且导致量化误差减少。能够以如下公式表示对数量化:
该公式以具有R级别的间隔[0,Xmax]量化x。注意符号表示找到不超过符号内数字(例如,具有FP32精度的数字)的最大整数。例如,如果我们设置Xmax=105.84且R=15,则我们将具有在{0,26.4600,41.9381,52.9200,61.4382,68.3981,74.2826,79.3800,83.8762,87.8982,91.5366,94.8581,97.9136,100.7426,103.3763,105.8400}中的y(x)。与均匀量化相比较,这种非均匀方案将为具有更大值的子间隔分配更多的量化级别。在自适应量化中,Xmax是根据预定信息丢失标准而不是根据间隔的实际最大值来学习的。在实践中采取的另一步骤是,实际值范围可以在[Xmin ,Xmax ]中,从Xmax 减去Xmin 以对其范围进行归一化,以与上述讨论一致。
如上所述,在一些实施例中,信息丢失的预定量度是测量两个统计分布之间的差异的Jensen-Shannon散度。在这种情况下,统计分布是全精度训练模型(例如,模型106'或106")以及具有用于量化候选模型的层的特定位宽组合的量化候选模型中的所有层(或对应层)的全层响应的集合。Jensen-Shannon散度用以下公式表示:
注意,Kullback-Leibler散度是不对称的。JSD值越小,对应的信息丢失就越小。能够基于将信息丢失约束在预定阈值以下或者找到产生最小信息丢失的位宽组合来选择候选模型。
在一些实施例中,校准数据集被用作通过不同候选模型(例如,不同候选模型有用于不同层的参数(例如,权重和偏差)和中间结果(例如,层响应)的不同位宽组合)的前向传播传递中的输入。
在下文的选择不同层的最佳位宽组合的样本过程中,S是校准数据集,Statistics_i是第i层响应的统计分布。Qnon(x,qb)是非均匀量化函数,R是量化级别数。qb是用于量化的位宽。
在样本自适应位宽非均匀量化过程中,基础模型是全精度训练模型106'或剪枝精简全精度模型106",其中,用于全精度模型的每一层i的对应权重集是Wi(或Wri)且偏差是bi(或bri)。
上述过程的结果是具有每一层i的一个或多个最佳量化位宽的量化权重集Wopt,i和具有每一层i的一个或多个最佳量化位宽的量化偏差集bopt,i。因此获得自适应位宽模型112。此外,还获得层响应qb2的最佳量化位宽。
在模型部署阶段,根据上文所述的方法获得的缩减的自适应位宽模型(例如,模型112)在模型部署系统(例如,便携式电子设备)上使用,以产生对应于真实世界输入(例如,测试数据114)的输出(例如,结果118)。在测试阶段,模型参数以量化格式保存,且根据在量化过程期间确认的最佳量化位宽qb2量化中间结果(并且中间结果被提供给带有缩减模型的模型部署系统)。(更具体地),如下面的示例过程所示:
上述模型比原始全精度训练模型(例如模型116')紧凑得多,并且计算使用整数而不是浮点值进行,这进一步缩减了计算占用并改善了计算速度。此外,能够利用某些硬件功能,以缩减的位宽和使用整数表示来进一步加速矩阵处理/计算。在一些实施例中,能够进一步约束位宽选择(例如,甚至只有位宽数),以与在部署系统上所使用的硬件(例如,内存结构)更兼容。
图5是根据一些实施例由模型生成系统(例如,模型生成系统102或200)实施的示例过程500的流程图。在一些实施例中,在机器学习系统100的服务器部件上实施示例过程500。
过程500在计算设备上提供自适应位宽神经网络模型。在计算设备处,其中,该计算设备具有一个或多个处理器和内存:设备获取(502)包括多个层的第一神经网络模型(例如,训练后的全精度模型160’或剪枝后的全精度模型160”),其中,多个层中的每一层(例如,一个或多个卷积层、池化层、激活层等)具有对应参数集(例如,用于耦合该层及其下一个层的权重集,用于该层的网络偏差参数集),并且,每一个参数以与第一神经网络模型的原始位宽(例如,32位或者其他硬件特有的位宽)对应的数据精度水平(例如,作为单精度浮点值)表示(例如,在计算设备的内存中,每一个参数占第一位数(例如,作为32位浮点数,占32位))。
通过使用用于存储第一神经网络模型的不同层的对应参数集的对应缩减位宽,设备缩减(504)第一神经网络模型在计算设备(例如,在存储期间以及可选地在模型的部署期间两者)上的占用(例如,内存和计算成本),其中:当第一神经网络模型的两个或者多个层中的每一层用对应于不同缩减位宽的不同量化程度表示时,使用验证数据集进行通过第一神经网络模型的前向传播的多次迭代,直到两个或更多层的对应响应统计满足预定信息丢失阈值为止(例如,通过本文中所描述的Jensen-Shannon散度测量),从而确定对应缩减位宽的优选值(例如,使用本文中所描述的技术确认最佳位宽值)。
设备生成(506)包括多个层的缩减的神经网络模型(例如,模型112),其中,多个层中的两个或更多的每一层包括对应量化参数集(例如,量化权重和偏差参数),且每一个量化参数利用通过多次迭代所确定的用于该层的对应缩减位宽的优选值表示。在一些实施例中,缩减的神经网络模型被部署在便携式电子设备上,其中,便携式电子设备根据缩减模型处理真实世界数据以生成预测结果,以及其中,在数据处理期间产生的中间结果被通过计算设备根据被提供给便携式电子设备的最佳缩减位宽量化。
在一些实施例中,在缩减的神经网络模型(例如,模型112)的多个层的第一层(例如,i=2)具有小于第一神经网络模型的原始位宽(例如,32位)的第一缩减位宽(例如,4位),在缩减的神经网络模型(例如,模型112)的多个层中的第二层(例如,i=3)具有小于第一神经网络模型的原始位宽的第二缩减位宽(例如,6位),以及,在缩减的神经网络模型中,第一缩减位宽与第二缩减位宽不同。
在一些实施例中,缩减第一神经网络的占用包括:对于两个或更多层中具有用对应于第一神经网络模型的原始位宽的数据精度水平表示的第一参数集(例如,权重集和一个或多个偏差)的第一层:当多个层的对应参数集以第一神经网络模型的原始位宽(例如,32位)表示时,随着验证数据集作为输入通过第一神经网络模型前向传播,计算设备收集第一层的激活值的对应基准统计分布(例如,statistics_i);当第一层的对应参数集用小于第一神经网络模型的原始位宽的第一缩减位宽(例如,Wq,i和bq,i)表示时,随着验证数据集作为输入通过第一神经网络模型前向传播,计算设备收集第一层的激活值的对应修改统计分布(例如,statq,i);确定在第一层的激活值的对应修改统计分布和第一层的激活值的对应基准统计分布之间的预定散度(例如,Inf_tmp=InformationLoss(statq,I,statistics_i));以及,计算设备确认第一缩减位宽的最小值,对于该最小值,由于第一层的位宽的进一步缩减引起的预定散度的缩减低于预定阈值。
在一些实施例中,以第一缩减位宽表示第一层的对应参数集包括对第一层的对应参数集执行非均匀量化(例如,对数量化Qnon(…)),以生成第一层的第一量化参数集,以及,在通过第一层的每一次前向传播期间,基于第一层的激活值的基准统计分布,选择用于第一层的非均匀量化的最大边界值(例如,Xmax)。
在一些实施例中,获得包括多个层的第一神经网络模型包括:在第一神经网络的训练期间:对于两个或更多层中具有用对应于第一神经网络模型的原始位宽的数据精度水平表示的第一参数集的第一层:根据在与第一层对应的第一权重集(例如,Wi)和第一权重集的整数部分(例如,)之间的差异,获得对应于第一层(例如,层i)的整数正则化项(例如,RIi)(例如,);以及,在通过第一层的前向传播期间将整数正则化项(例如,RIi)添加至偏差项(其中,8位均匀量化被应用到权重和偏差项),使得在通过第一层的逆向传播期间,梯度被更改以将第一参数集的值推向整数值。
在一些实施例中,获得包括多个层的第一神经网络模型包括:在第一神经网络的训练期间:对于两个或更多层中具有用对应于第一神经网络模型的原始位宽的数据精度水平表示的第一参数集的第一层,在通过第一层的前向传播期间,利用小于第一神经网络模型的原始位宽的预定缩减位宽(例如,8位),对第一参数集执行均匀量化。
在一些实施例中,获得包括多个层的第一神经网络模型包括:在第一神经网络的训练期间:对于两个或更多层中具有用对应于第一神经网络模型的原始位宽的数据精度水平表示的第一参数集的第一层,在通过第一层的逆向传播期间,舍弃(forgoing)利用预定缩减位宽对第一参数集执行均匀量化。
示例过程500仅仅涵盖本文中所描述的方法和技术中的一些方面。在该说明书的其他部分中提供其他细节和组合。为了简洁起见,这里不再重复或详尽列举这些细节和组合。
应当理解,已经描述的操作的特定次序仅仅是示例,并且并不旨在指示所描述的次序是可以执行操作的唯一次序。本领域普通技术人员将认识到对本文中描述的操作进行重新排序的各种方式。通过在诸如通用处理器或专用芯片的信息处理设备中运行一个或多个功能模块,可选地实施在上文中描述的信息处理方法中的操作。
为了解释的目的,已经参考特定实施例描述了前文。然而,以上说明性讨论并非旨在穷举本发明或将本发明限制为所公开的精确形式。鉴于以上教导,许多修改和变化是可能的。选择和描述实施例以便最佳解释本发明的原理和其实际应用,以由此使本领域技术人员能够最佳使用本发明和使用具有适合于所考虑的特定用途的不同修改的所述各种实施例。
Claims (9)
1.一种在计算设备上提供自适应位宽神经网络模型的方法,包括:
在所述计算设备处,其中,所述计算设备具有一个或多个处理器和内存:
获得包括多个层的第一神经网络模型,其中,所述多个层中的每一层具有对应参数集,并且每一个参数都用与所述第一神经网络模型的原始位宽对应的数据精度水平表示;
通过使用用于存储所述第一神经网络模型的不同层的对应参数集的对应缩减位宽,缩减所述第一神经网络模型在所述计算设备上的占用,其中:
当所述第一神经网络模型的两个或者多个层中的每一层用对应于不同缩减位宽的不同量化程度表示时,使用验证数据集进行通过所述第一神经网络模型的前向传播的多次迭代,直到所述两个或更多层的对应层响应的统计分布满足预定信息丢失阈值为止,从而确定所述对应缩减位宽的优选值;以及,
生成包括所述多个层的缩减的神经网络模型,其中的两个或者更多个层中的每一层包括一个对应量化参数集,且每个量化参数用所述层的所述对应缩减位宽的优选值来表示,所述对应缩减位宽的优选值是通过所述多次迭代确定的,
其中,所述对应层响应的统计分布为所述对应层响应的集合,
所述两个或更多层的对应层响应为所述两个或更多层的对应输出,
所述两个或更多层的对应层响应的统计分布满足预定信息丢失阈值包括所述两个或更多层的对应层响应的统计分布之间的差异的散度低于所述预定信息丢失阈值。
2.根据权利要求1所述的方法,其特征在于:
在所述缩减的神经网络模型的多个层中的第一层具有第一缩减位宽,所述第一缩减位宽小于所述第一神经网络模型的原始位宽,
在所述缩减的神经网络模型的多个层中的第二层具有第二缩减位宽,所述第二缩减位宽小于所述第一神经网络模型的原始位宽;以及,
在所述缩减的神经网络模型中,所述第一缩减位宽与所述第二缩减位宽不同。
3.根据权利要求1所述的方法,其特征在于,所述缩减所述第一神经网络模型在所述计算设备上的占用包括:
对于所述两个或更多层中具有第一参数集的第一层,所述第一参数集用对应于所述第一神经网络模型的原始位宽的数据精度水平表示:
当所述多个层的对应参数集用所述第一神经网络模型的原始位宽表示时,随着所述验证数据集作为输入通过所述第一神经网络模型前向传播,收集所述第一层的层响应的对应基准统计分布;
当所述第一层的对应参数集用小于所述第一神经网络模型的原始位宽的第一缩减位宽表示时,随着所述验证数据集作为输入通过所述第一神经网络模型前向传播,收集所述第一层的层响应的对应修改的统计分布;
确定在所述第一层的层响应的对应修改的统计分布和所述第一层的层响应的对应基准统计分布之间的差异的散度;以及,
确认所述第一缩减位宽的最小值,响应于所述第一缩减位宽的值为所述最小值,由于所述第一层的位宽的进一步缩减引起的所述差异的散度的缩减低于预定阈值,
其中,所述对应基准统计分布为当所述多个层的对应参数集用所述第一神经网络模型的原始位宽表示时,所述第一层的层响应的集合,
所述对应修改的统计分布为当所述第一层的对应参数集用小于所述第一神经网络模型的原始位宽的第一缩减位宽表示时,所述第一层的层响应的集合。
4.根据权利要求3所述的方法,其特征在于:
用所述第一缩减位宽表示所述第一层的对应参数集包括,对所述第一层的对应参数集执行非均匀量化,以生成所述第一层的第一量化参数集,以及,
在通过所述第一层的每一次前向传播期间,基于所述第一层的层响应的基准统计分布,选择所述第一层的非均匀量化的最大边界值。
5.根据权利要求1所述的方法,其特征在于,获得包括所述多个层的第一神经网络模型包括:
在所述第一神经网络的训练期间:
对于所述两个或更多层中具有第一参数集的第一层,所述第一参数集用对应于所述第一神经网络模型的原始位宽的数据精度水平表示:
根据在与所述第一层对应的第一权重集和所述第一权重集的整数部分之间的差异,获得对应于所述第一层的整数正则化项;以及,
在通过所述第一层的前向传播期间,将所述整数正则化项添加至偏差项,使得在通过所述第一层的逆向传播期间,梯度被更改,以将所述第一参数集的值推向整数值。
6.根据权利要求5所述的方法,其特征在于,获得包括所述多个层的第一神经网络模型包括:
在所述第一神经网络的训练期间:
对于所述两个或更多层中具有第一参数集的第一层,所述第一参数集用对应于所述第一神经网络模型的原始位宽的数据精度水平表示,在通过所述第一层的前向传播期间,利用小于所述第一神经网络模型的原始位宽的预定缩减位宽,对所述第一参数集执行均匀量化。
7.根据权利要求6所述的方法,其特征在于,获得包括所述多个层的第一神经网络模型包括:
在所述第一神经网络的训练期间:
对于所述两个或更多层中具有第一参数集的第一层,所述第一参数集用对应于所述第一神经网络模型的原始位宽的数据精度水平表示,在通过所述第一层的逆向传播期间,舍弃利用所述预定缩减位宽对所述第一参数集执行均匀量化。
8.一种计算设备,包括:
一个或多个处理器;以及,
内存,所述内存包括指令,当由所述一个或多个处理器执行所述指令时,导致所述处理器执行如权利要求1至权利要求7中的任一项所述的方法。
9.一种存储指令的非瞬态计算机可读存储介质,当通过一个或多个处理器执行所述指令时,导致所述处理器执行如权利要求1至权利要求7中的任一项所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/676,701 US20190050710A1 (en) | 2017-08-14 | 2017-08-14 | Adaptive bit-width reduction for neural networks |
US15/676,701 | 2017-08-14 | ||
PCT/CN2018/090300 WO2019033836A1 (en) | 2017-08-14 | 2018-06-07 | ADAPTIVE REDUCTION OF BIT WIDTH FOR NEURAL NETWORKS |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110799994A CN110799994A (zh) | 2020-02-14 |
CN110799994B true CN110799994B (zh) | 2022-07-19 |
Family
ID=65275500
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880042804.4A Active CN110799994B (zh) | 2017-08-14 | 2018-06-07 | 神经网络的自适应位宽缩减 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20190050710A1 (zh) |
EP (1) | EP3619652B1 (zh) |
CN (1) | CN110799994B (zh) |
WO (1) | WO2019033836A1 (zh) |
Families Citing this family (81)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10366302B2 (en) * | 2016-10-10 | 2019-07-30 | Gyrfalcon Technology Inc. | Hierarchical category classification scheme using multiple sets of fully-connected networks with a CNN based integrated circuit as feature extractor |
US11934934B2 (en) | 2017-04-17 | 2024-03-19 | Intel Corporation | Convolutional neural network optimization mechanism |
US11934935B2 (en) * | 2017-05-20 | 2024-03-19 | Deepmind Technologies Limited | Feedforward generative neural networks |
US11437032B2 (en) | 2017-09-29 | 2022-09-06 | Shanghai Cambricon Information Technology Co., Ltd | Image processing apparatus and method |
US11216719B2 (en) * | 2017-12-12 | 2022-01-04 | Intel Corporation | Methods and arrangements to quantize a neural network with machine learning |
US11803734B2 (en) * | 2017-12-20 | 2023-10-31 | Advanced Micro Devices, Inc. | Adaptive quantization for neural networks |
US10546393B2 (en) * | 2017-12-30 | 2020-01-28 | Intel Corporation | Compression in machine learning and deep learning processing |
US11630666B2 (en) | 2018-02-13 | 2023-04-18 | Shanghai Cambricon Information Technology Co., Ltd | Computing device and method |
US11507370B2 (en) | 2018-02-13 | 2022-11-22 | Cambricon (Xi'an) Semiconductor Co., Ltd. | Method and device for dynamically adjusting decimal point positions in neural network computations |
EP3651071B1 (en) | 2018-02-13 | 2021-10-27 | Shanghai Cambricon Information Technology Co., Ltd | Computation device and method |
CN116991226A (zh) | 2018-02-14 | 2023-11-03 | 上海寒武纪信息科技有限公司 | 处理器的控制装置、方法及设备 |
KR20190125141A (ko) * | 2018-04-27 | 2019-11-06 | 삼성전자주식회사 | 뉴럴 네트워크의 파라미터들을 양자화하는 방법 및 장치 |
US11875251B2 (en) * | 2018-05-03 | 2024-01-16 | Samsung Electronics Co., Ltd. | Neural network method and apparatus |
EP3624020A4 (en) | 2018-05-18 | 2021-05-05 | Shanghai Cambricon Information Technology Co., Ltd | CALCULATION PROCEDURES AND RELATED PRODUCTS |
CN110533175A (zh) * | 2018-05-23 | 2019-12-03 | 富士通株式会社 | 深度学习加速的方法和设备及深度神经网络 |
US11551077B2 (en) * | 2018-06-13 | 2023-01-10 | International Business Machines Corporation | Statistics-aware weight quantization |
EP3798850A4 (en) | 2018-06-27 | 2022-03-23 | Shanghai Cambricon Information Technology Co., Ltd | ON-CHIP CODE BREAKPOINT DEBUG METHOD, ON-CHIP PROCESSOR AND CHIP BREAKPOINT DEBUG SYSTEM |
JP7045947B2 (ja) * | 2018-07-05 | 2022-04-01 | 株式会社日立製作所 | ニューラルネットワークの学習装置および学習方法 |
EP3757896B1 (en) | 2018-08-28 | 2023-01-11 | Cambricon Technologies Corporation Limited | Method and device for pre-processing data in a neural network |
US11630982B1 (en) * | 2018-09-14 | 2023-04-18 | Cadence Design Systems, Inc. | Constraint-based dynamic quantization adjustment for fixed-point processing |
US10855836B2 (en) * | 2018-09-24 | 2020-12-01 | AVAST Software s.r.o. | Default filter setting system and method for device control application |
EP3859488A4 (en) | 2018-09-28 | 2022-06-29 | Shanghai Cambricon Information Technology Co., Ltd | Signal processing device, signal processing method and related product |
KR102621118B1 (ko) * | 2018-11-01 | 2024-01-04 | 삼성전자주식회사 | 영상 적응적 양자화 테이블을 이용한 영상의 부호화 장치 및 방법 |
WO2020102888A1 (en) * | 2018-11-19 | 2020-05-28 | Tandemlaunch Inc. | System and method for automated precision configuration for deep neural networks |
US20200160185A1 (en) * | 2018-11-21 | 2020-05-21 | Nvidia Corporation | Pruning neural networks that include element-wise operations |
CN111385462A (zh) | 2018-12-28 | 2020-07-07 | 上海寒武纪信息科技有限公司 | 信号处理装置、信号处理方法及相关产品 |
US11783200B2 (en) * | 2019-02-08 | 2023-10-10 | International Business Machines Corporation | Artificial neural network implementation in field-programmable gate arrays |
CN109800877B (zh) * | 2019-02-20 | 2022-12-30 | 腾讯科技(深圳)有限公司 | 神经网络的参数调整方法、装置及设备 |
US11263513B2 (en) | 2019-02-25 | 2022-03-01 | Deepx Co., Ltd. | Method and system for bit quantization of artificial neural network |
KR102152374B1 (ko) * | 2019-02-25 | 2020-09-07 | 주식회사 딥엑스 | 인공신경망의 비트 양자화 방법 및 시스템 |
US11586908B1 (en) * | 2019-03-07 | 2023-02-21 | Xilinx, Inc. | System and method for implementing neural networks in integrated circuits |
US20200302283A1 (en) * | 2019-03-18 | 2020-09-24 | Microsoft Technology Licensing, Llc | Mixed precision training of an artificial neural network |
US11604960B2 (en) * | 2019-03-18 | 2023-03-14 | Microsoft Technology Licensing, Llc | Differential bit width neural architecture search |
CN111723901B (zh) * | 2019-03-19 | 2024-01-12 | 百度在线网络技术(北京)有限公司 | 神经网络模型的训练方法及装置 |
US11934940B2 (en) | 2019-04-18 | 2024-03-19 | Cambricon Technologies Corporation Limited | AI processor simulation |
CN111831543B (zh) | 2019-04-18 | 2024-07-16 | 中科寒武纪科技股份有限公司 | 一种数据处理方法及相关产品 |
CN110069715B (zh) * | 2019-04-29 | 2022-12-23 | 腾讯科技(深圳)有限公司 | 一种信息推荐模型训练的方法、信息推荐的方法及装置 |
US10977151B2 (en) * | 2019-05-09 | 2021-04-13 | Vmware, Inc. | Processes and systems that determine efficient sampling rates of metrics generated in a distributed computing system |
CN110191362B (zh) * | 2019-05-29 | 2021-03-16 | 鹏城实验室 | 数据传输方法及装置、存储介质及电子设备 |
CN112085184B (zh) | 2019-06-12 | 2024-03-29 | 上海寒武纪信息科技有限公司 | 量化参数调整方法、装置及相关产品 |
CN112085177A (zh) * | 2019-06-12 | 2020-12-15 | 安徽寒武纪信息科技有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
CN112085150B (zh) * | 2019-06-12 | 2024-07-19 | 安徽寒武纪信息科技有限公司 | 循环神经网络的量化参数调整方法、装置及相关产品 |
US11676028B2 (en) | 2019-06-12 | 2023-06-13 | Shanghai Cambricon Information Technology Co., Ltd | Neural network quantization parameter determination method and related products |
US10965802B2 (en) | 2019-06-19 | 2021-03-30 | Avast Software, S.R.O. | Device monitoring and restriction system and method |
KR20210004306A (ko) * | 2019-07-04 | 2021-01-13 | 삼성전자주식회사 | 뉴럴 네트워크 장치 및 뉴럴 네트워크의 파라미터 양자화 방법 |
US11244065B2 (en) | 2019-07-23 | 2022-02-08 | Smith Micro Software, Inc. | Application monitoring and device restriction system and method |
GB2581546B (en) * | 2019-08-22 | 2021-03-31 | Imagination Tech Ltd | Methods and systems for converting weights of a deep neural network from a first number format to a second number format |
WO2021036908A1 (zh) * | 2019-08-23 | 2021-03-04 | 安徽寒武纪信息科技有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
EP4020321A4 (en) * | 2019-08-23 | 2024-01-17 | Anhui Cambricon Information Technology Co., Ltd. | DATA PROCESSING METHOD, APPARATUS, COMPUTER APPARATUS AND STORAGE MEDIUM |
WO2021036890A1 (zh) * | 2019-08-23 | 2021-03-04 | 安徽寒武纪信息科技有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
JP7146953B2 (ja) * | 2019-08-27 | 2022-10-04 | 安徽寒武紀信息科技有限公司 | データ処理方法、装置、コンピュータデバイス、及び記憶媒体 |
US20210089906A1 (en) * | 2019-09-23 | 2021-03-25 | Lightmatter, Inc. | Quantized inputs for machine learning models |
WO2021056180A1 (en) * | 2019-09-24 | 2021-04-01 | Baidu.Com Times Technology (Beijing) Co., Ltd. | Cursor-based adaptive quantization for deep neural networks |
CN110673802B (zh) * | 2019-09-30 | 2023-04-07 | 上海寒武纪信息科技有限公司 | 数据存储方法、装置、芯片、电子设备和板卡 |
CN110969251B (zh) * | 2019-11-28 | 2023-10-31 | 中国科学院自动化研究所 | 基于无标签数据的神经网络模型量化方法及装置 |
CN112905181B (zh) * | 2019-12-04 | 2023-10-10 | 杭州海康威视数字技术股份有限公司 | 一种模型编译、运行方法及装置 |
CN113222097B (zh) * | 2020-01-21 | 2024-09-17 | 上海商汤智能科技有限公司 | 数据处理方法和相关产品 |
CN111382576B (zh) * | 2020-01-21 | 2023-05-12 | 沈阳雅译网络技术有限公司 | 一种基于离散型变量的神经机器翻译解码加速方法 |
CN115053232A (zh) * | 2020-02-06 | 2022-09-13 | 惠普发展公司,有限责任合伙企业 | 控制机器学习模型结构 |
US11625494B2 (en) | 2020-02-06 | 2023-04-11 | AVAST Software s.r.o. | Data privacy policy based network resource access controls |
CN113361677B (zh) * | 2020-03-04 | 2024-08-02 | 山东浪潮智慧建筑科技有限公司 | 神经网络模型的量化方法和装置 |
US11861467B2 (en) * | 2020-03-05 | 2024-01-02 | Qualcomm Incorporated | Adaptive quantization for execution of machine learning models |
CN111582229A (zh) * | 2020-05-21 | 2020-08-25 | 中国科学院空天信息创新研究院 | 一种网络自适应半精度量化的图像处理方法和系统 |
CN113762494B (zh) * | 2020-06-04 | 2024-08-02 | 合肥君正科技有限公司 | 一种通过权重预处理提高低比特神经网络模型精度的方法 |
CN111429142B (zh) * | 2020-06-10 | 2020-09-11 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置及计算机可读存储介质 |
CN111831355B (zh) * | 2020-07-09 | 2023-05-16 | 北京灵汐科技有限公司 | 权重精度配置方法、装置、设备及存储介质 |
CN111985495B (zh) * | 2020-07-09 | 2024-02-02 | 珠海亿智电子科技有限公司 | 模型部署方法、装置、系统及存储介质 |
WO2022007879A1 (zh) | 2020-07-09 | 2022-01-13 | 北京灵汐科技有限公司 | 权重精度配置方法和装置、计算机设备、存储介质 |
CN111831356B (zh) * | 2020-07-09 | 2023-04-07 | 北京灵汐科技有限公司 | 权重精度配置方法、装置、设备及存储介质 |
WO2022021083A1 (zh) * | 2020-07-28 | 2022-02-03 | 深圳市大疆创新科技有限公司 | 图像处理方法、图像处理装置及计算机可读存储介质 |
CN112001872B (zh) * | 2020-08-26 | 2021-09-14 | 北京字节跳动网络技术有限公司 | 信息显示方法、设备及存储介质 |
CN112101524A (zh) * | 2020-09-07 | 2020-12-18 | 上海交通大学 | 可在线切换比特位宽的量化神经网络的方法及系统 |
CN112650863A (zh) * | 2020-12-01 | 2021-04-13 | 深圳力维智联技术有限公司 | 跨媒介数据融合的方法、装置及存储介质 |
US20220172022A1 (en) * | 2020-12-02 | 2022-06-02 | Fujitsu Limited | Storage medium, quantization method, and quantization apparatus |
CN113469324B (zh) * | 2021-03-23 | 2024-03-22 | 中科创达软件股份有限公司 | 模型动态量化方法、装置、电子设备和计算机可读介质 |
WO2023082286A1 (en) * | 2021-11-15 | 2023-05-19 | Shanghaitech University | Mixed-precision neural network systems |
WO2023193190A1 (en) * | 2022-04-07 | 2023-10-12 | Nvidia Corporation | Adjusting precision of neural network weight parameters |
CN114819159A (zh) * | 2022-04-18 | 2022-07-29 | 北京奇艺世纪科技有限公司 | 深度学习模型的推理方法、装置、设备及存储介质 |
CN117540778A (zh) * | 2022-07-29 | 2024-02-09 | 抖音视界有限公司 | 用于量化神经网络模型的方法、装置、计算设备和介质 |
GB2622869A (en) * | 2022-09-30 | 2024-04-03 | Imagination Tech Ltd | Methods and systems for online selection of number formats for network parameters of a neural network |
CN117077740B (zh) * | 2023-09-25 | 2024-03-12 | 荣耀终端有限公司 | 模型量化方法和设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105760933A (zh) * | 2016-02-18 | 2016-07-13 | 清华大学 | 卷积神经网络的逐层变精度定点化方法及装置 |
CN106485316A (zh) * | 2016-10-31 | 2017-03-08 | 北京百度网讯科技有限公司 | 神经网络模型压缩方法以及装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7225324B2 (en) * | 2002-10-31 | 2007-05-29 | Src Computers, Inc. | Multi-adaptive processing systems and techniques for enhancing parallelism and performance of computational functions |
US9110453B2 (en) * | 2011-04-08 | 2015-08-18 | General Cybernation Group Inc. | Model-free adaptive control of advanced power plants |
US10417525B2 (en) * | 2014-09-22 | 2019-09-17 | Samsung Electronics Co., Ltd. | Object recognition with reduced neural network weight precision |
US10262259B2 (en) * | 2015-05-08 | 2019-04-16 | Qualcomm Incorporated | Bit width selection for fixed point neural networks |
US10726328B2 (en) * | 2015-10-09 | 2020-07-28 | Altera Corporation | Method and apparatus for designing and implementing a convolution neural net accelerator |
-
2017
- 2017-08-14 US US15/676,701 patent/US20190050710A1/en not_active Abandoned
-
2018
- 2018-06-07 EP EP18845593.5A patent/EP3619652B1/en active Active
- 2018-06-07 WO PCT/CN2018/090300 patent/WO2019033836A1/en unknown
- 2018-06-07 CN CN201880042804.4A patent/CN110799994B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105760933A (zh) * | 2016-02-18 | 2016-07-13 | 清华大学 | 卷积神经网络的逐层变精度定点化方法及装置 |
CN106485316A (zh) * | 2016-10-31 | 2017-03-08 | 北京百度网讯科技有限公司 | 神经网络模型压缩方法以及装置 |
Non-Patent Citations (1)
Title |
---|
FxpNet: Training a Deep Convolutional Neural Network in Fixed-Point Representation;Xi Chen et al;《International Joint Conference on Neural Networks》;20170703;第2494-2501页 * |
Also Published As
Publication number | Publication date |
---|---|
US20190050710A1 (en) | 2019-02-14 |
EP3619652A4 (en) | 2020-08-05 |
WO2019033836A1 (en) | 2019-02-21 |
EP3619652B1 (en) | 2021-11-24 |
EP3619652A1 (en) | 2020-03-11 |
CN110799994A (zh) | 2020-02-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110799994B (zh) | 神经网络的自适应位宽缩减 | |
US12073309B2 (en) | Neural network device and method of quantizing parameters of neural network | |
KR102110486B1 (ko) | 인공 뉴럴 네트워크 클래스-기반 프루닝 | |
Pawar et al. | Convolution neural network based automatic speech emotion recognition using Mel-frequency Cepstrum coefficients | |
KR20190050141A (ko) | 고정 소수점 타입의 뉴럴 네트워크를 생성하는 방법 및 장치 | |
EP3924888A1 (en) | Quantization-aware neural architecture search | |
Sørensen et al. | A depthwise separable convolutional neural network for keyword spotting on an embedded system | |
CN112508186A (zh) | 训练用于图像识别的神经网络的方法和神经网络设备 | |
CN113011532B (zh) | 分类模型训练方法、装置、计算设备及存储介质 | |
KR102026226B1 (ko) | 딥러닝 기반 Variational Inference 모델을 이용한 신호 단위 특징 추출 방법 및 시스템 | |
CN114358274A (zh) | 训练用于图像识别的神经网络的方法和设备 | |
CN117038055A (zh) | 一种基于多专家模型的疼痛评估方法、系统、装置及介质 | |
CN115273904A (zh) | 一种基于多特征融合的愤怒情绪识别方法及装置 | |
Diep et al. | Crossmixed convolutional neural network for digital speech recognition | |
JP2021077352A (ja) | 情報処理装置及び方法、並びにモデルを用いて分類を行う装置 | |
CN111832787B (zh) | 教师风格预测模型的训练方法及计算机存储介质 | |
CN114766024A (zh) | 用于修剪神经网络的方法和设备 | |
CN112800813A (zh) | 一种目标识别方法及装置 | |
CN116306879A (zh) | 数据处理方法、装置、电子设备以及存储介质 | |
CN115222012A (zh) | 用于压缩神经网络的方法和装置 | |
CN114444654A (zh) | 一种面向nas的免训练神经网络性能评估方法、装置和设备 | |
CN117236900B (zh) | 基于流程自动化的个税数据处理方法及系统 | |
Bushur | Hardware/Software Co-Design for Keyword Spotting on Edge Devices | |
CN112686278B (zh) | 模型获取方法、装置及存储介质 | |
Pushkareva et al. | Post-training quantization of neural network through correlation maximization |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |