WO2022068623A1 - 一种模型训练方法及相关设备 - Google Patents
一种模型训练方法及相关设备 Download PDFInfo
- Publication number
- WO2022068623A1 WO2022068623A1 PCT/CN2021/119274 CN2021119274W WO2022068623A1 WO 2022068623 A1 WO2022068623 A1 WO 2022068623A1 CN 2021119274 W CN2021119274 W CN 2021119274W WO 2022068623 A1 WO2022068623 A1 WO 2022068623A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- matrix
- sub
- neural network
- weight
- candidate
- Prior art date
Links
- 238000012549 training Methods 0.000 title claims abstract description 202
- 238000000034 method Methods 0.000 title claims abstract description 131
- 239000011159 matrix material Substances 0.000 claims abstract description 537
- 238000003062 neural network model Methods 0.000 claims abstract description 278
- 238000000354 decomposition reaction Methods 0.000 claims abstract description 15
- 238000012545 processing Methods 0.000 claims description 61
- 230000008569 process Effects 0.000 claims description 55
- 230000015654 memory Effects 0.000 claims description 44
- 238000004422 calculation algorithm Methods 0.000 claims description 9
- 238000013473 artificial intelligence Methods 0.000 abstract description 15
- 238000013528 artificial neural network Methods 0.000 description 36
- 238000013135 deep learning Methods 0.000 description 30
- 238000010586 diagram Methods 0.000 description 22
- 239000013598 vector Substances 0.000 description 22
- 238000004364 calculation method Methods 0.000 description 20
- 230000006870 function Effects 0.000 description 20
- 230000001537 neural effect Effects 0.000 description 10
- 238000013515 script Methods 0.000 description 10
- 238000011156 evaluation Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 7
- 238000004590 computer program Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 7
- 210000002569 neuron Anatomy 0.000 description 7
- 230000004913 activation Effects 0.000 description 6
- 238000013527 convolutional neural network Methods 0.000 description 6
- MHABMANUFPZXEB-UHFFFAOYSA-N O-demethyl-aloesaponarin I Natural products O=C1C2=CC=CC(O)=C2C(=O)C2=C1C=C(O)C(C(O)=O)=C2C MHABMANUFPZXEB-UHFFFAOYSA-N 0.000 description 5
- 238000013500 data storage Methods 0.000 description 5
- 238000003672 processing method Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 230000000306 recurrent effect Effects 0.000 description 4
- 239000000872 buffer Substances 0.000 description 3
- 238000005538 encapsulation Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000035772 mutation Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000008447 perception Effects 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 229920002803 thermoplastic polyurethane Polymers 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 238000005452 bending Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000011217 control strategy Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000008570 general process Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 239000007788 liquid Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
- G06F7/523—Multiplying only
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/5443—Sum of products
-
- 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/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/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/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Neurology (AREA)
- Image Analysis (AREA)
- Complex Calculations (AREA)
Abstract
一种模型训练方法,涉及人工智能领域,所述方法包括:获取待训练的第一神经网络模型,所述第一神经网络模型包括第一算子,所述第一算子用于将输入数据与目标权重矩阵进行乘积运算(301);将所述第一神经网络模型中的所述第一算子替换为第二算子,以得到第二神经网络模型,其中,所述第二算子用于将输入数据与多个子权重矩阵进行乘积运算,所述多个子权重矩阵为对所述目标权重矩阵进行矩阵分解得到的(302);对所述第二神经网络模型进行模型训练,得到目标神经网络模型(303)。所述方法将目标权重矩阵拆分为多个子权重矩阵的乘积,使得训练设备在进行输入数据与多个子权重矩阵的乘积运算所需的时间较小,进而减少了模型训练时间。
Description
本申请要求于2020年9月30日提交中国国家知识产权局、申请号为202011063706.4、申请名称为“一种模型训练方法及相关设备”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
本申请涉及人工智能领域,尤其涉及一种模型训练方法及相关设备。
人工智能(artificial intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式作出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
深度学习框架是指在特定硬件计算平台上,如中央处理器(central processing unit,CPU),图形处理器(graphics processing unit,GPU),神经网络处理器(neural network processing unit,NPU),等,执行深度学习网络的计算机软件系统。常见的深度学习框架有TensorFlow,PyTorch,Caffe,MindSpore等等。深度学习框架通常为用户提供一系列软件接口,这些软件接口是定义好的深度学习网络计算单元,称为算子,用户可以通过组合算子,来构建某种深度学习网络,如卷积神经网络(convolutional neural network,CNN),注意力网络(Transformer),循环神经网络(recurrent neural network,RNN)等等。
在深度学习技术中,有一类算子被称为全连接层算子,或者线性层算子,执行如下的乘加运算:F(x)=XW+b;其中W是权重矩阵,W是需要学习的参数,X是线性层的输入,b是需要学习的偏置值,这一类算子通常占据深度学习网络中相当程度的运算量,是深度学习框架是否能加速运算的关键。
针对线性层算子运算速度的提升,现有可以通过手动修改脚本,寻求更快的线性层设置,如更少的输入X,更小的可学习参数量W和b,或者是通过研发更快的硬件平台。然而,如何在用户最小程度修改脚本,且不需要升级硬件资源的情况下获得性能提升是尚需解决的技术问题。
发明内容
第一方面,本申请提供了一种模型训练方法,所述方法包括:
获取待训练的第一神经网络模型,所述第一神经网络模型包括第一算子,所述第一算子用于将输入数据与目标权重矩阵进行乘积运算;用户可以输入预先编写好的脚本程序,该脚本程序可以表达出待训练的第一神经网络模型的模型架构以及第一神经网络模型中待训练的参数的尺寸大小等等,其中,脚本程序可以包括第一算子相关的代码,该代码可以 规定第一算子的算子类型为线性层算子,并规定第一算子中的目标权重矩阵的尺寸大小,进而训练设备在训练第一神经网络模型时,可以基于第一算子相关的代码来调用线性层算子相关的API以执行第一算子;第一算子可以为线性层算子,框架的线性层算子,是对乘加运算的一种封装,通常以类的形式出现,第一算子可以但不限于为Linear,或者Dense,其数学表达一般为一个乘加运算:F(x)=XW+b;其中W是权重矩阵,W是需要学习的参数,X是线性层的输入,b是需要学习的偏置值,若第一算子的数学表达为F(x)=XW+b;则W是目标权重矩阵,X是线性层的输入数据,b是偏置值,应理解,在一些场景中上述偏置值可以有,也可以没有,第一算子用于将输入数据与目标权重矩阵进行乘积运算,可选地,第一算子用于将将输入数据与目标权重矩阵进行乘积运算,以得到第一运算结果,并将第一运算结果与偏置值进行相加运算。
将所述第一神经网络模型中的所述第一算子替换为第二算子,以得到第二神经网络模型,其中,所述第二算子用于将输入数据与多个子权重矩阵进行乘积运算,所述多个子权重矩阵为对所述目标权重矩阵进行矩阵分解得到的;在对待训练的第一神经网络模型进行训练时,可以不按照用户规定的第一神经网络模型的规格进行训练,而是首先对其中的第一算子进行分析,确定出其中包括的目标权重矩阵是否有一个更优的表达方式来替换,所谓更优,是指第一算子替换后的第一神经网络模型进行训练时的训练速度更快(也就是处理相同数量的训练数据所花费的时间更少);若训练确定出第一算子包括的目标权重矩阵有一个更优的表达方式来替换,则可以将所述第一神经网络模型中的所述第一算子替换为第二算子,以得到第二神经网络模型,第二算子相比第一算子的不同之处在于,第二算子是将第一算子中的目标权重矩阵替换为多个子权重矩阵的乘积之后得到的,其中,多个子权重矩阵为对所述目标权重矩阵进行矩阵分解得到的。
对所述第二神经网络模型进行模型训练,得到目标神经网络模型。
本实施例将目标权重矩阵拆分为多个子权重矩阵的乘积,使得训练设备在进行输入数据与多个子权重矩阵的乘积运算所需的时间较小,进而减少了模型训练时间。
在一种可能的实现中,处理相同数量的训练数据时,所述第一神经网络模型所需的时间大于所述第二神经网络模型所需的时间。也就是说,处理训练数据时,第二神经网络模型每次迭代的时间更少,也就是说,在相同的时间内第二神经网络模型可以处理的数量量更大。
本申请实施例中,处理相同数量的训练数据时,所述第一神经网络模型所需的时间大于所述第二神经网络模型所需的时间,也就是说在对所述第一神经网络模型进行模型训练的情况下,所述第一神经网络模型处理预设数量的训练数据所需的时间大于在对所述第二神经网络模型进行模型训练的过程中,所述第二神经网络模型处理所述预设数量的训练数据所需的时间。针对于一个较大的目标权重矩阵,训练设备在进行输入数据与目标权重矩阵的乘积运算所需的时间较大,本申请实施例中,将目标权重矩阵拆分为多个子权重矩阵的乘积,使得训练设备在进行输入数据与多个子权重矩阵的乘积运算所需的时间较小。
在一种可能的实现中,所述多个子权重矩阵包括第一子权重矩阵和第二子权重矩阵, 在将输入数据与多个子权重矩阵进行乘积运算的过程中,所述第一子权重矩阵和所述第二子权重矩阵为所述多个子权重矩阵中任意两个相乘的矩阵,所述第一子权重矩阵的列的尺寸和所述第二子权重矩阵的行的尺寸相同。
本申请实施例中的矩阵分解是指将矩阵拆解为多个矩阵的乘积。具体的,所述多个子权重矩阵包括矩阵1、矩阵2、…、矩阵N-1以及矩阵N,所述第二算子用于进行如下运算:M*矩阵1*矩阵2*…*矩阵N-1*矩阵N,其中,所述M表示输入数据,所述*表示相乘;所述目标权重矩阵的行的尺寸和所述矩阵1的行的尺寸相同,所述目标权重矩阵的列的尺寸和所述矩阵N的列的尺寸相同,所述多个子权重矩阵包括第一子权重矩阵和第二子权重矩阵,在将输入数据与多个子权重矩阵进行乘积运算的过程中,所述第一子权重矩阵和所述第二子权重矩阵为所述多个子权重矩阵中任意两个相乘的矩阵,所述第一子权重矩阵的列的尺寸和所述第二子权重矩阵的行的尺寸相同。以第一子权重矩阵为矩阵1,第二子权重矩阵为矩阵2为例,在这种情况下,矩阵1的列的尺寸和矩阵2的行的尺寸相同,以第一子权重矩阵为矩阵N-1,第二子权重矩阵为矩阵N为例,在这种情况下,矩阵N-1的列的尺寸和矩阵N的行的尺寸相同。
在一种可能的实现中,所述多个子权重矩阵包括矩阵1、矩阵2、…、矩阵N-1以及矩阵N,所述第二算子用于进行如下运算:M*矩阵1*矩阵2*…*矩阵N-1*矩阵N,其中,所述M表示输入数据,所述*表示相乘;
所述目标权重矩阵的行的尺寸和所述矩阵1的行的尺寸相同,所述目标权重矩阵的列的尺寸和所述矩阵N的列的尺寸相同。
在一种可能的实现中,所述多个子权重矩阵中每个子权重矩阵的行的尺寸小于或等于所述目标权重矩阵的行的尺寸,所述多个子权重矩阵中每个子权重矩阵的列的尺寸小于或等于所述目标权重矩阵的列的尺寸。
在一种可能的实现中,所述方法还包括:
获取目标矩阵拆分尺寸,所述目标矩阵拆分尺寸表示所述多个子权重矩阵中每个子权重矩阵的行的尺寸和/或列的尺寸;
根据所述目标矩阵拆分尺寸和所述目标权重矩阵,确定所述多个子权重矩阵。
在一种可能的实现中,所述目标矩阵拆分尺寸包括a1、a2、…、an-1以及an,所述目标权重矩阵的尺寸为P*Q,相应的,所述多个子权重矩阵的尺寸为P*a1、a1*a2、…、an-1*an以及an*Q。
在一种可能的实现中,所述获取目标矩阵拆分尺寸,包括:
获取多个候选的矩阵拆分尺寸;
所述根据所述目标矩阵拆分尺寸和所述目标权重矩阵,确定所述多个子权重矩阵包括:
根据所述多个候选的矩阵拆分尺寸和所述目标权重矩阵,确定多组候选的子权重矩阵,每组候选的子权重矩阵为基于一个候选的矩阵拆分尺寸和所述目标权重矩阵得到的;
所述将所述第一神经网络模型中的所述第一算子替换为第二算子,以得到第二神经网络模型包括:
基于所述多组候选的子权重矩阵,获取多个候选的神经网络模型;其中,每个候选的神经网络模型包括与所述第一算子对应的候选算子,每个所述候选算子包括一组候选的子权重矩阵;
对所述多个候选的神经网络模型进行训练,并从所述多个候选的神经网络模型中选择数据处理精度满足预设条件,且在进行训练时处理相同数量的训练数据所需的时间最小的候选的神经网络模型作为所述第二神经网络模型。
在一种可能的实现中,所述目标权重矩阵的尺寸为P*Q,所述多个候选的矩阵拆分尺寸中任意一个矩阵拆分尺寸包括b1、b2、…、bn-1以及bn,所述任意一个候选矩阵拆分尺寸对应的一组候选的子权重矩阵为P*b1、b1*b2、…、bn-1*bn以及bn*Q。
本申请实施例中,训练设备可以选择多组候选的矩阵拆分尺寸,得到多组候选的子权重矩阵,进而基于所述多组候选的子权重矩阵,获取多个候选的神经网络模型;其中,每个候选的神经网络模型包括与所述第一算子对应的候选算子,每个候选算子包括一组候选的子权重矩阵,也就是说,每个候选的神经网络模型是将第一算子中目标权重矩阵替换为对应的一组候选的子权重矩阵的乘积得到的。本实施例中,所述第一候选矩阵拆分尺寸为所述多个候选的矩阵拆分尺寸中任意的一个矩阵拆分尺寸,所述第一候选矩阵拆分尺寸包括b1、b2、…、bn-1以及bn,所述目标权重矩阵的尺寸为P*Q,相应的,所述第一候选矩阵拆分尺寸对应的一组候选的子权重矩阵为P*b1、b1*b2、…、bn-1*bn以及bn*Q。
在一种可能的实现中,所述获取目标矩阵拆分尺寸,包括:获取多个候选的矩阵拆分尺寸;所述根据所述目标矩阵拆分尺寸和所述目标权重矩阵,确定所述多个子权重矩阵包括:对所述待训练的第一神经网络模型进行单发one-shot模型的模型训练,以得到目标one-shot模型,所述目标one-shot模型包括所述目标权重矩阵对应的第一权重矩阵,所述第一权重矩阵的尺寸与所述目标权重矩阵相同;根据所述多个候选的矩阵拆分尺寸和所述第一权重矩阵,确定多组候选的子权重矩阵,每组候选的子权重矩阵为基于一个候选的矩阵拆分尺寸和所述第一权重矩阵得到的;
所述将所述第一神经网络模型中的所述第一算子替换为第二算子,以得到第二神经网络模型包括:
基于所述多组候选的子权重矩阵,获取多个候选的神经网络模型;其中,每个候选的神经网络模型包括与所述第一算子对应的候选算子,每个所述候选算子包括一组候选的子权重矩阵;
对所述多个候选的神经网络模型进行训练,并从所述多个候选的神经网络模型中选择数据处理精度满足预设条件,且在进行训练时处理相同数量的训练数据所需的时间最小的候选的神经网络模型作为所述第二神经网络模型。
本实施例中,若对每一个候选的神经网络模型进行训练,由于候选的神经网络模型的数量很多,则会花费较多时间,本实施例中,为了训练设备可以自动搜索最优矩阵拆分方式,可以让训练设备训练一个one-shot模型,one-shot model(单发模型)可以通过采样的训练方式得到,从其中抽取得到的子模型能够近似单独训练的子模型效果。每一种矩 阵拆分方式对应one-shot model的一种子模型,基于one-shot model的搜索可以达到一次训练多次评测的目的,大大减少了搜索时间。
在一种可能的实现中,所述第一算子还用于将所述输入数据与所述目标权重矩阵进行乘积运算的结果与偏置值相加;所述第二算子还用于将所述输入数据与所述多个子权重矩阵的乘积结果进行乘积运算的结果与所述偏置值相加。
在一种可能的实现中,所述方法还包括:
向终端设备发送所述目标神经网络模型。
在一种可能的实现中,所述目标神经网络模型包括训练后的第二算子,所述训练后的第二算子用于将输入数据与训练后的多个子权重矩阵进行乘积运算;所述方法还包括:
将所述训练后的多个子权重矩阵的乘积结果作为第二权重矩阵,以生成第三神经网络模型,所述第三神经网络模型包括第三算子,所述第三算子用于将输入数据与所述第二权重矩阵进行乘积运算;
向终端设备发送所述第三神经网络模型。
具体的,本实施例可以为用户提供是否保存权重矩阵拆分结果的选择,也就是为用户提供是否将多个子权重矩阵的乘积结果作为第二权重矩阵,以返回第三神经网络模型的选择,若用户选择不保存权重矩阵拆分结果,则训练设备可以将所述训练好的多个子权重矩阵的乘积结果作为第二权重矩阵,以生成第三神经网络模型,所述第三神经网络模型包括第三算子,所述第三算子用于将输入数据与所述第二权重矩阵进行乘积运算;向用户的终端设备发送所述第三神经网络模型,若用户选择保存权重矩阵拆分结果,则训练设备可以向用户的终端设备发送所述目标神经网络模型。
第二方面,本申请提供了一种模型训练装置,所述装置包括:
获取模块,用于获取待训练的第一神经网络模型,所述第一神经网络模型包括第一算子,所述第一算子用于将输入数据与目标权重矩阵进行乘积运算;
算子替换模块,用于将所述第一神经网络模型中的所述第一算子替换为第二算子,以得到第二神经网络模型,其中,所述第二算子用于将输入数据与多个子权重矩阵进行乘积运算,所述多个子权重矩阵为对所述目标权重矩阵进行矩阵分解得到的;
模型训练模块,用于对所述第二神经网络模型进行模型训练,得到目标神经网络模型。
在一种可能的实现中,处理相同数量的训练数据时,所述第一神经网络模型所需的时间大于所述第二神经网络模型所需的时间。
在一种可能的实现中,所述多个子权重矩阵包括第一子权重矩阵和第二子权重矩阵,在将输入数据与多个子权重矩阵进行乘积运算的过程中,所述第一子权重矩阵和所述第二子权重矩阵为所述多个子权重矩阵中任意两个相乘的矩阵,所述第一子权重矩阵的列的尺寸和所述第二子权重矩阵的行的尺寸相同。
在一种可能的实现中,所述多个子权重矩阵包括矩阵1、矩阵2、…、矩阵N-1以及矩阵N,所述第二算子用于进行如下运算:M*矩阵1*矩阵2*…*矩阵N-1*矩阵N,其中,所述M表示输入数据,所述*表示相乘;
所述目标权重矩阵的行的尺寸和所述矩阵1的行的尺寸相同,所述目标权重矩阵的列的尺寸和所述矩阵N的列的尺寸相同。
在一种可能的实现中,所述多个子权重矩阵中每个子权重矩阵的行的尺寸小于或等于所述目标权重矩阵的行的尺寸,所述多个子权重矩阵中每个子权重矩阵的列的尺寸小于或等于所述目标权重矩阵的列的尺寸。
在一种可能的实现中,所述获取模块,用于:
获取目标矩阵拆分尺寸,所述目标矩阵拆分尺寸表示所述多个子权重矩阵中每个子权重矩阵的行的尺寸和/或列的尺寸;根据所述目标矩阵拆分尺寸和所述目标权重矩阵,确定所述多个子权重矩阵。
在一种可能的实现中,所述目标矩阵拆分尺寸包括a1、a2、…、an-1以及an,所述目标权重矩阵的尺寸为P*Q,相应的,所述多个子权重矩阵的尺寸为P*a1、a1*a2、…、an-1*an以及an*Q。
在一种可能的实现中,所述获取模块,用于:
获取多个候选的矩阵拆分尺寸;
根据所述多个候选的矩阵拆分尺寸和所述目标权重矩阵,确定多组候选的子权重矩阵,每组候选的子权重矩阵为基于一个候选的矩阵拆分尺寸和所述目标权重矩阵得到的;
所述算子替换模块,用于基于所述多组候选的子权重矩阵,获取多个候选的神经网络模型;其中,每个候选的神经网络模型包括与所述第一算子对应的候选算子,每个所述候选算子包括一组候选的子权重矩阵;
对所述多个候选的神经网络模型进行训练,并从所述多个候选的神经网络模型中选择数据处理精度满足预设条件,且在进行训练时处理相同数量的训练数据所需的时间最小的候选的神经网络模型作为所述第二神经网络模型。
在一种可能的实现中,所述目标权重矩阵的尺寸为P*Q,所述多个候选的矩阵拆分尺寸中任意一个矩阵拆分尺寸包括b1、b2、…、bn-1以及bn,所述任意一个候选矩阵拆分尺寸对应的一组候选的子权重矩阵为P*b1、b1*b2、…、bn-1*bn以及bn*Q。
在一种可能的实现中,所述获取模块,用于:
获取多个候选的矩阵拆分尺寸;
对所述待训练的第一神经网络模型进行单发one-shot模型的模型训练,以得到目标one-shot模型,所述目标one-shot模型包括所述目标权重矩阵对应的第一权重矩阵,所述第一权重矩阵的尺寸与所述目标权重矩阵相同;
根据所述多个候选的矩阵拆分尺寸和所述第一权重矩阵,确定多组候选的子权重矩阵,每组候选的子权重矩阵为基于一个候选的矩阵拆分尺寸和所述第一权重矩阵得到的;
所述算子替换模块,用于基于所述多组候选的子权重矩阵,获取多个候选的神经网络模型;其中,每个候选的神经网络模型包括与所述第一算子对应的候选算子,每个所述候选算子包括一组候选的子权重矩阵;
对所述多个候选的神经网络模型进行训练,并从所述多个候选的神经网络模型中选择数据处理精度满足预设条件,且在进行训练时处理相同数量的训练数据所需的时间最小的候选的神经网络模型作为所述第二神经网络模型。
在一种可能的实现中,所述第一算子还用于将所述输入数据与所述目标权重矩阵进行乘积运算的结果与偏置值相加;所述第二算子还用于将所述输入数据与所述多个子权重矩阵的乘积结果进行乘积运算的结果与所述偏置值相加。
在一种可能的实现中,所述装置还包括:
发送模块,用于向终端设备发送所述目标神经网络模型。
在一种可能的实现中,所述目标神经网络模型包括训练后的第二算子,所述训练后的第二算子用于将输入数据与训练后的多个子权重矩阵进行乘积运算;所述装置还包括:
发送模块,用于将所述训练后的多个子权重矩阵的乘积结果作为第二权重矩阵,以生成第三神经网络模型,所述第三神经网络模型包括第三算子,所述第三算子用于将输入数据与所述第二权重矩阵进行乘积运算;
向终端设备发送所述第三神经网络模型。
第三方面,本申请实施例提供了一种训练设备,可以包括存储器、处理器以及总线系统,其中,存储器用于存储程序,处理器用于执行存储器中的程序,以执行如上述第一方面及其任一可选的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行上述第一方面及其任一可选的方法。
第五方面,本申请实施例提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述第一方面及其任一可选的方法。
第六方面,本申请提供了一种芯片系统,该芯片系统包括处理器,用于支持执行设备或训练设备实现上述方面中所涉及的功能,例如,发送或处理上述方法中所涉及的数据;或,信息。在一种可能的设计中,所述芯片系统还包括存储器,所述存储器,用于保存执 行设备或训练设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。
本申请实施例提供了一种模型训练方法,包括:获取待训练的第一神经网络模型,所述第一神经网络模型包括第一算子,所述第一算子用于将输入数据与目标权重矩阵进行乘积运算;将所述第一神经网络模型中的所述第一算子替换为第二算子,以得到第二神经网络模型,其中,所述第二算子用于将输入数据与多个子权重矩阵进行乘积运算,所述多个子权重矩阵为对所述目标权重矩阵进行矩阵分解得到的;对所述第二神经网络模型进行模型训练,得到目标神经网络模型,通过上述方式,将目标权重矩阵拆分为多个子权重矩阵的乘积,使得训练设备在进行输入数据与多个子权重矩阵的乘积运算所需的时间较小,进而减少了模型训练时间。
图1为人工智能主体框架的一种结构示意图;
图2为一种数据处理系统;
图3为本申请实施例提供的一种模型训练方法的实施例示意;
图4为本申请实施例提供的一种模型训练方法的实施例示意;
图5为本申请实施例提供的一种模型训练方法的实施例示意;
图6为本申请实施例提供的一种计算图示意;
图7为本申请实施例提供的一种计算图示意;
图8为本申请实施例提供的一种模型训练方法的实施例示意;
图9为本申请实施例提供的模型训练装置的结构示意图;
图10为本申请实施例提供的执行设备的一种结构示意图;
图11是本申请实施例提供的训练设备一种结构示意图;
图12为本申请实施例提供的芯片的一种结构示意图。
下面结合本发明实施例中的附图对本发明实施例进行描述。本发明的实施方式部分使用的术语仅用于对本发明的具体实施例进行解释,而非旨在限定本发明。
下面结合附图,对本申请的实施例进行描述。本领域普通技术人员可知,随着技术的发展和新场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本申请的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。
首先对人工智能系统总体工作流程进行描述,请参见图1,图1示出的为人工智能主体框架的一种结构示意图,下面从“智能信息链”(水平轴)和“IT价值链”(垂直轴)两个 维度对上述人工智能主题框架进行阐述。其中,“智能信息链”反映从数据的获取到处理的一列过程。举例来说,可以是智能信息感知、智能信息表示与形成、智能推理、智能决策、智能执行与输出的一般过程。在这个过程中,数据经历了“数据—信息—知识—智慧”的凝练过程。“IT价值链”从人智能的底层基础设施、信息(提供和处理技术实现)到系统的产业生态过程,反映人工智能为信息技术产业带来的价值。
(1)基础设施
基础设施为人工智能系统提供计算能力支持,实现与外部世界的沟通,并通过基础平台实现支撑。通过传感器与外部沟通;计算能力由智能芯片(CPU、NPU、GPU、ASIC、FPGA等硬件加速芯片)提供;基础平台包括分布式计算框架及网络等相关的平台保障和支持,可以包括云存储和计算、互联互通网络等。举例来说,传感器和外部沟通获取数据,这些数据提供给基础平台提供的分布式计算系统中的智能芯片进行计算。
(2)数据
基础设施的上一层的数据用于表示人工智能领域的数据来源。数据涉及到图形、图像、语音、文本,还涉及到传统设备的物联网数据,包括已有系统的业务数据以及力、位移、液位、温度、湿度等感知数据。
(3)数据处理
数据处理通常包括数据训练,机器学习,深度学习,搜索,推理,决策等方式。
其中,机器学习和深度学习可以对数据进行符号化和形式化的智能信息建模、抽取、预处理、训练等。
推理是指在计算机或智能系统中,模拟人类的智能推理方式,依据推理控制策略,利用形式化的信息进行机器思维和求解问题的过程,典型的功能是搜索与匹配。
决策是指智能信息经过推理后进行决策的过程,通常提供分类、排序、预测等功能。
(4)通用能力
对数据经过上面提到的数据处理后,进一步基于数据处理的结果可以形成一些通用的能力,比如可以是算法或者一个通用系统,例如,翻译,文本的分析,计算机视觉的处理,语音识别,图像的识别等等。
(5)智能产品及行业应用
智能产品及行业应用指人工智能系统在各领域的产品和应用,是对人工智能整体解决方案的封装,将智能信息决策产品化、实现落地应用,其应用领域主要包括:智能终端、智能交通、智能医疗、自动驾驶、平安城市等。
由于本申请实施例涉及大量神经网络的应用,为了便于理解,下面先对本申请实施例涉及的相关术语及神经网络等相关概念进行介绍。
(1)神经网络
神经网络可以是由神经单元组成的,神经单元可以是指以xs和截距1为输入的运算单元,该运算单元的输出可以为:
其中,s=1、2、……n,n为大于1的自然数,Ws为xs的权重,b为神经单元的偏置。f为神经单元的激活函数(activation functions),用于将非线性特性引入神经网络中,来将神经单元中的输入信号转换为输出信号。该激活函数的输出信号可以作为下一层卷积层的输入,激活函数可以是sigmoid函数。神经网络是将多个上述单一的神经单元联结在一起形成的网络,即一个神经单元的输出可以是另一个神经单元的输入。每个神经单元的输入可以与前一层的局部接受域相连,来提取局部接受域的特征,局部接受域可以是由若干个神经单元组成的区域。
(2)深度神经网络
深度神经网络(Deep Neural Network,DNN),可以理解为具有很多层隐含层的神经网络,这里的“很多”并没有特别的度量标准,我们常说的多层神经网络和深度神经网络其本质上是同一个东西。从DNN按不同层的位置划分,DNN内部的神经网络可以分为三类:输入层,隐含层,输出层。一般来说第一层是输入层,最后一层是输出层,中间的层数都是隐含层。层与层之间是全连接的,也就是说,第i层的任意一个神经元一定与第i+1层的任意一个神经元相连。虽然DNN看起来很复杂,但是就每一层的工作来说,其实并不复杂,简单来说就是如下线性关系表达式:
其中,
可以为本实施例中的第一算子、第二算子以及第三算子等等,
是输入向量,
是输出向量,
是偏移向量(本申请实施例中也称之为偏置值),W是权重矩阵(也称系数,本申请实施例中也称之为权重矩阵),α()是激活函数。每一层仅仅是对输入向量
经过如此简单的操作得到输出向量
由于DNN层数多,则系数W和偏移向量
的数量也就是很多了。那么,具体的参数在DNN是如何定义的呢?首先我们来看看系数W的定义。以一个三层的DNN为例,如:第二层的第4个神经元到第三层的第2个神经元的线性系数定义为
上标3代表系数W所在的层数,而下标对应的是输出的第三层索引2和输入的第二层索引4。总结下,第L-1层的第k个神经元到第L层的第j个神经元的系数定义为
注意,输入层是没有W参数的。在深度神经网络中,更多的隐含层让网络更能够刻画现实世界中的复杂情形。理论上而言,参数越多的模型复杂度越高,“容量”也就越大,也就意味着它能完成更复杂的学习任务。
参见附图2,本发明实施例提供了一种系统架构200。数据采集设备260用于采集训练数据并存入数据库230,训练设备220基于数据库230中维护的训练数据生成目标模型/规则201(本申请实施例中可以称之为目标神经网络模型)。下面将更详细地描述训练设备220如何基于训练数据得到目标模型/规则201。
深度神经网络中的每一层的工作可以用数学表达式
来描述:从物理层面深度神经网络中的每一层的工作可以理解为通过五种对输入空间(输入向量的集合)的操作,完成输入空间到输出空间的变换(即矩阵的行空间到列空间),这五种操作包括:1、升维/降维;2、放大/缩小;3、旋转;4、平移;5、“弯曲”。其中1、2、3的操作由
完成,4的操作由+b完成,5的操作则由a()来实现。这里之所以用“空间”二字来表述是因为被分类的对象并不是单个事物,而是一类事物,空间是指这类事物所有个体的集合。其中,W是权重向量,该向量中的每一个值表示该层神经网络中的一个神经元的权重值。该向量W决定着上文所述的输入空间到输出空间的空间变换,即每一层的权重W控制着如何变换空间。训练深度神经网络的目的,也就是最终得到训练好的神经网络的所有层的权重矩阵(由很多层的向量W形成的权重矩阵)。因此,神经网络的训练过程本质上就是学习控制 空间变换的方式,更具体的就是学习权重矩阵。
因为希望深度神经网络的输出尽可能的接近真正想要预测的值,所以可以通过比较当前网络的预测值和真正想要的目标值,再根据两者之间的差异情况来更新每一层神经网络的权重向量(当然,在第一次更新之前通常会有初始化的过程,即为深度神经网络中的各层预先配置参数),比如,如果网络的预测值高了,就调整权重向量让它预测低一些,不断的调整,直到神经网络能够预测出真正想要的目标值。因此,就需要预先定义“如何比较预测值和目标值之间的差异”,这便是损失函数(loss function)或目标函数(objective function),它们是用于衡量预测值和目标值的差异的重要方程。其中,以损失函数举例,损失函数的输出值(loss)越高表示差异越大,那么深度神经网络的训练就变成了尽可能缩小这个loss的过程。
训练设备220得到的目标模型/规则可以应用不同的系统或设备中。在附图2中,执行设备210配置有I/O接口212,与外部设备进行数据交互,“用户”可以通过客户设备240向I/O接口212输入数据。
执行设备210可以调用数据存储系统250中的数据、代码等,也可以将数据、指令等存入数据存储系统250中。
计算模块211使用目标模型/规则201对输入的数据进行处理,最后,I/O接口212将处理结果返回给客户设备240,提供给用户。
更深层地,训练设备220可以针对不同的目标,基于不同的数据生成相应的目标模型/规则201,以给用户提供更佳的结果。
在附图2中所示情况下,用户可以手动指定输入执行设备210中的数据,例如,在I/O接口212提供的界面中操作。另一种情况下,客户设备240可以自动地向I/O接口212输入数据并获得结果,如果客户设备240自动输入数据需要获得用户的授权,用户可以在客户设备240中设置相应权限。用户可以在客户设备240查看执行设备210输出的结果,具体的呈现形式可以是显示、声音、动作等具体方式。
值得注意的,附图2仅是本发明实施例提供的一种系统架构的示意图,图中所示设备、器件、模块等之间的位置关系不构成任何限制,例如,在附图2中,数据存储系统250相对执行设备210是外部存储器,在其它情况下,也可以将数据存储系统250置于执行设备210中。
本申请实施例提供的模型训练方法,具体可以应用于数据训练、机器学习、深度学习等数据处理方法,对训练数据进行符号化和形式化的智能信息建模、抽取、预处理、训练等,最终得到训练好的目标神经网络模型;并且,本申请实施例提供的数据处理方法可以运用上述训练好的目标神经网络模型,将输入数据(如待处理语言信息)输入到所述训练好的目标神经网络模型中,得到输出数据(如与目标任务对应的处理结果)。
深度学习框架是指在特定硬件计算平台上,如中央处理器(central processing unit,CPU),图形处理器(graphics processing unit,GPU),神经网络处理器(neural network processing unit,NPU),等,执行深度学习网络的计算机软件系统。常见的深度学习框架有 TensorFlow,PyTorch,Caffe,MindSpore等等。深度学习框架通常为用户提供一系列软件接口,这些软件接口是定义好的深度学习网络计算单元,称为算子,用户可以通过组合算子,来构建某种深度学习网络,如卷积神经网络(convolutional neural network,CNN),注意力网络(Transformer),循环神经网络(recurrent neural network,RNN)等等。
深度学习框架通常支持若干种不同的硬件平台,如CPU,GPU,NPU,TPU等等。因此在深度学习网络执行过程中,算子也运行在这些硬件平台上。通常来说,相同的算子在不同的硬件平台会有不同的性能表现,性能主要体现在执行速度上。
最近几年,在人工智能热潮的推动下,深度学习框架技术有了长足的进步。从用户角度看,一个用户定义的深度学习网络在现代深度学习框架中的执行,通常由以下几个部分组成,用户脚本,框架算子应用程序接口(application programming interface,API),计算图,运行时程序,以及硬件平台如GPU,CPU,NPU等等。具体的,用户可以通过脚本,调用框架提供的算子API,组成用户设计的深度学习网络,当执行时,框架先通过解析用户脚本,并根据解析结果,自动构建包含反向运算算子在内的计算图,然后再将计算图编译成适合不同硬件平台运行的运行时程序,在对应的硬件平台上执行。
在深度学习技术中,有一类算子被称为全连接层算子,或者线性层算子,执行如下的乘加运算:F(x)=XW+b;其中W是权重矩阵,W是需要学习的参数,X是线性层的输入,b是需要学习的偏置值,这一类算子通常占据深度学习网络中相当程度的运算量,是深度学习框架是否能加速运算的关键。
如何加速深度学习网络的计算速度,是一个热点问题,针对线性层算子运算速度的提升,通常有三个方向,一是用户通过手动修改用户脚本,寻求更快的线性层设置,如更少的输入X,更小的可学习参数量W和b;二是通过研发更快的硬件平台,如TensorCore计算单元、TPU、或者专用芯片NPU等。三是通过优化对应硬件计算单元的乘法指令和上层运行时程序,如针对CPU的AVX512指令集,以及CuBLAS线性代数库等等。然而,如何在用户最小程度修改脚本,且不需要升级硬件资源的情况下获得性能提升是尚需解决的技术问题。
参照图3,图3为本申请实施例提供的一种模型训练方法的实施例示意,本申请实施例提供的一种数据处理方法可以应用在训练设备(例如服务器或者终端设备)上,如图3示出的那样,本申请实施例提供的一种模型训练方法包括:
301、获取待训练的第一神经网络模型,所述第一神经网络模型包括第一算子,所述第一算子用于将输入数据与目标权重矩阵进行乘积运算。
本申请实施例中,用户可以输入预先编写好的脚本程序,该脚本程序可以表达出待训练的第一神经网络模型的模型架构以及第一神经网络模型中待训练的参数的尺寸大小等等,其中,脚本程序可以包括第一算子相关的代码,该代码可以规定第一算子的算子类型为线性层算子,并规定第一算子中的目标权重矩阵的尺寸大小,进而训练设备在训练第一神经网络模型时,可以基于第一算子相关的代码来调用线性层算子相关的API以执行第一算子。
本申请实施例中,第一算子可以为线性层算子,框架的线性层算子,是对乘加运算的一种封装,通常以类的形式出现,第一算子可以但不限于为Linear,或者Dense,其数学表达一般为一个乘加运算:F(x)=XW+b;其中W是权重矩阵,W是需要学习的参数,X是线性层的输入,b是需要学习的偏置值,若第一算子的数学表达为F(x)=XW+b;则W是目标权重矩阵,X是线性层的输入数据,b是偏置值,应理解,在一些场景中上述偏置值可以有,也可以没有,第一算子用于将输入数据与目标权重矩阵进行乘积运算,可选地,第一算子用于将将输入数据与目标权重矩阵进行乘积运算,以得到第一运算结果,并将第一运算结果与偏置值进行相加运算。示例性的,线性层算子的API可以名为Linear,API为:Linear(in_dim,out_dim,bias=True);其中in_dim为输入数据的维度,out_dim为输出的维度,bias指示了线性层算子是否具有偏置值,若第一算子通过上述Linear来调用,则上述Liear规定了目标权重矩阵是一个维度为(in_dim,out_dim)的参数矩阵。
本申请实施例中,用户在输入预先编写好的待训练的第一神经网络模型相关的脚本程序之后,训练设备可以获取到待训练的第一神经网络模型。
应理解,待训练的第一神经网络模型中可以包括多个线性层算子,第一算子为其中的一个算子。
302、将所述第一神经网络模型中的所述第一算子替换为第二算子,以得到第二神经网络模型,其中,所述第二算子用于将输入数据与多个子权重矩阵进行乘积运算,所述多个子权重矩阵为对所述目标权重矩阵进行矩阵分解得到的。
本申请实施例中,训练设备在获取到用户输入的第一神经网络模型的脚本之后,可以识别出第一神经网络模型中的线性层算子,例如可以通过脚本调用的API类型来识别,以识别出的线性层算子为第一算子为例进行说明。
本申请实施例中,在对待训练的第一神经网络模型进行训练时,可以不按照用户规定的第一神经网络模型的规格进行训练,而是首先对其中的第一算子进行分析,确定出其中包括的目标权重矩阵是否有一个更优的表达方式来替换,所谓更优,是指第一算子替换后的第一神经网络模型进行训练时的训练速度更快(也就是处理相同数量的训练数据所花费的时间更少)。
本申请实施例中,若训练确定出第一算子包括的目标权重矩阵有一个更优的表达方式来替换,则可以将所述第一神经网络模型中的所述第一算子替换为第二算子,以得到第二神经网络模型,第二算子相比第一算子的不同之处在于,第二算子是将第一算子中的目标权重矩阵替换为多个子权重矩阵的乘积之后得到的,其中,多个子权重矩阵为对所述目标权重矩阵进行矩阵分解得到的。
接下来描述如何对所述目标权重矩阵进行矩阵分解得到多个子权重矩阵。
本申请实施例中的矩阵分解是指将矩阵拆解为多个矩阵的乘积。具体的,所述多个子权重矩阵包括矩阵1、矩阵2、…、矩阵N-1以及矩阵N,所述第二算子用于进行如下运算:M*矩阵1*矩阵2*…*矩阵N-1*矩阵N,其中,所述M表示输入数据,所述*表示相乘;所述目标权重矩阵的行的尺寸和所述矩阵1的行的尺寸相同,所述目标权重矩阵的列的尺寸和所述矩阵N的列的尺寸相同,所述多个子权重矩阵包括第一子权重矩阵和第二子权重矩 阵,在将输入数据与多个子权重矩阵进行乘积运算的过程中,所述第一子权重矩阵和所述第二子权重矩阵为所述多个子权重矩阵中任意两个相乘的矩阵,所述第一子权重矩阵的列的尺寸和所述第二子权重矩阵的行的尺寸相同。以第一子权重矩阵为矩阵1,第二子权重矩阵为矩阵2为例,在这种情况下,矩阵1的列的尺寸和矩阵2的行的尺寸相同,以第一子权重矩阵为矩阵N-1,第二子权重矩阵为矩阵N为例,在这种情况下,矩阵N-1的列的尺寸和矩阵N的行的尺寸相同。
应理解,第二算子用于进行如下运算:M*矩阵1*矩阵2*…*矩阵N-1*矩阵N,N为大于1的正整数,当N为2时,第二算子用于进行如下运算:M*矩阵1*矩阵2,当N为3时,第二算子用于进行如下运算:M*矩阵1*矩阵2*矩阵3,以此类推。
本申请实施例中,所述多个子权重矩阵中每个子权重矩阵的行的尺寸小于或等于所述目标权重矩阵的行的尺寸,所述多个子权重矩阵中每个子权重矩阵的列的尺寸小于或等于所述目标权重矩阵的列的尺寸。例如,若目标权重矩阵为60*60,则每个子权重矩阵的行的尺寸小于或等于60,每个子权重矩阵的列的尺寸小于或等于60。
示例性的,若目标权重矩阵为60*60,则第一算子可以将输入数据M与目标权重矩阵相乘,多个子权重矩阵包括矩阵1(尺寸为60*20)、矩阵2(尺寸为20*40)以及矩阵3(尺寸为40*60),第二算子可以进行如下运算M*矩阵1*矩阵2*矩阵3。
接下来描述,训练设备如何确定上述子权重矩阵的尺寸。
本申请实施例中,训练设备可以获取目标矩阵拆分尺寸,所述目标矩阵拆分尺寸表示所述多个子权重矩阵中每个子权重矩阵的行的尺寸和/或列的尺寸,本申请并不限定目标矩阵拆分尺寸的表达方式,训练设备可以根据所述目标矩阵拆分尺寸和所述目标权重矩阵,确定所述多个子权重矩阵。具体的,所述目标矩阵拆分尺寸可以包括a1、a2、…、an-1以及an,所述目标权重矩阵的尺寸为P*Q,相应的,所述多个子权重矩阵的尺寸为P*a1、a1*a2、…、an-1*an以及an*Q。例如,目标权重矩阵为60*60,目标矩阵拆分尺寸可以表达为{20,40},则多个子权重矩阵可以包括矩阵1(尺寸为60*20)、矩阵2(尺寸为20*40)以及矩阵3(尺寸为40*60)。
本申请实施例中,训练设备可以获取多个候选的矩阵拆分尺寸,并根据所述多个候选的矩阵拆分尺寸和所述目标权重矩阵,确定多组候选的子权重矩阵,每组候选的子权重矩阵为基于一个候选的矩阵拆分尺寸和所述目标权重矩阵得到的;
其中,候选的矩阵拆分尺寸可以基于目标权重矩阵的尺寸大小而定,例如目标权重矩阵的尺寸为P*Q,若子权重矩阵的数量为2(包括矩阵1和矩阵2),则候选的矩阵拆分尺寸可以为X,X小于P和Q,例如,目标权重矩阵的尺寸为60*60,则候选的矩阵拆分尺寸X可以为1至59之间的数,若X为50,则矩阵1为60*50,矩阵2为50*60,若X为40,则矩阵1为60*40,矩阵2为40*60。若子权重矩阵的数量为3(包括矩阵1、矩阵2以及矩阵3),则候选的矩阵拆分尺寸可以为X,Y,X小于P和Q,Y小于P和Q,例如,目标权重矩阵的尺寸为60*60,则候选的矩阵拆分尺寸X可以为1至59之间的数,Y可以为1至59之间的数,若X为50,Y为40,则矩阵1为60*50,矩阵2为50*40,矩阵3为40*60,若X为40,Y为30,则矩阵1为60*40,矩阵2为40*30,矩阵3为30*60。
本申请实施例中,训练设备可以选择多组候选的矩阵拆分尺寸,得到多组候选的子权重矩阵,进而基于所述多组候选的子权重矩阵,获取多个候选的神经网络模型;其中,每个候选的神经网络模型包括与所述第一算子对应的候选算子,每个候选算子包括一组候选的子权重矩阵,也就是说,每个候选的神经网络模型是将第一算子中目标权重矩阵替换为对应的一组候选的子权重矩阵的乘积得到的。本实施例中,所述第一候选矩阵拆分尺寸为所述多个候选的矩阵拆分尺寸中任意的一个矩阵拆分尺寸,所述第一候选矩阵拆分尺寸包括b1、b2、…、bn-1以及bn,所述目标权重矩阵的尺寸为P*Q,相应的,所述第一候选矩阵拆分尺寸对应的一组候选的子权重矩阵为P*b1、b1*b2、…、bn-1*bn以及bn*Q。
本申请实施例中,训练设备可以对所述多个候选的神经网络模型进行训练,并从所述多个候选的神经网络模型中选择数据处理精度满足预设条件,且在进行训练时处理相同数量的训练数据所需的时间最小的候选的神经网络模型作为所述第二神经网络模型,所述多个候选的神经网络模型用于进行处理目标任务,所述数据处理精度用于表示神经网络模型处理所述目标任务的精度。
在一种实现中,如图5所示,训练设备可以对所述待训练的第一神经网络模型进行单发one-shot模型的模型训练,以得到目标one-shot模型,所述目标one-shot模型包括所述目标权重矩阵对应的第一权重矩阵,所述第一权重矩阵的尺寸与所述目标权重矩阵相同;获取多个候选的矩阵拆分尺寸;根据所述多个候选的矩阵拆分尺寸和所述第一权重矩阵,确定多组候选的子权重矩阵,每组候选的子权重矩阵为基于一个候选的矩阵拆分尺寸和所述第一权重矩阵得到的;基于所述多组候选的子权重矩阵,获取多个候选的神经网络模型;其中,每个候选的神经网络模型包括与所述第一算子对应的候选算子,每个所述候选算子包括一组候选的子权重矩阵;对所述多个候选的神经网络模型进行训练,并从所述多个候选的神经网络模型中选择数据处理精度满足预设条件,且在进行训练时处理相同数量的训练数据所需的时间最小的候选的神经网络模型作为所述第二神经网络模型,所述多个候选的神经网络模型用于进行处理目标任务,所述数据处理精度用于表示神经网络模型处理所述目标任务的精度。其中,所述第二候选矩阵拆分尺寸为所述多个候选的矩阵拆分尺寸中任意的一个矩阵拆分尺寸,所述第二候选矩阵拆分尺寸包括c1、c2、…、cn-1以及cn,所述第一权重矩阵的尺寸为P*Q,相应的,所述第二候选矩阵拆分尺寸对应的一组候选的子权重矩阵为P*c1、c1*c2、…、cn-1*cn以及cn*Q。
本实施例中,若对每一个候选的神经网络模型进行训练,由于候选的神经网络模型的数量很多,则会花费较多时间,本实施例中,为了训练设备可以自动搜索最优矩阵拆分方式,可以让训练设备训练一个one-shot模型,one-shot model(单发模型)可以通过采样的训练方式得到,从其中抽取得到的子模型能够近似单独训练的子模型效果。每一种矩阵拆分方式对应one-shot model的一种子模型,基于one-shot model的搜索可以达到一次训练多次评测的目的,大大减少了搜索时间。
具体的,one-shot模型和第一神经网络模型中的参数规格可以一致或者近似,one-shot模型可以包括和第一算子相应的线性层算子,one-shot模型中和第一算子相应的线性层算子可以包括和目标权重矩阵尺寸相同的第一权重矩阵,在进行矩阵分解时,可以以one-shot 模型中的第一权重矩阵为基础,进行矩阵拆分,以得到多个子权重矩阵,例如,若one-shot模型中的权重矩阵为60*60,若候选的矩阵拆分尺寸为50,也就是想得到矩阵1为60*50,矩阵2为50*60,则可以将one-shot模型中的第一权重矩阵的60行以及前50列拆分出来,得到矩阵1,将one-shot模型中的第一权重矩阵的后50行以及60列拆分出来,得到矩阵2。应理解,也可以将one-shot模型中的第一权重矩阵的前50行以及60列拆分出来,得到矩阵2,具体应该和训练one-shot模型所采用的训练方式一致。
具体的,如图5所示的那样,one-shot模型可以包括L个第一权重矩阵
图5中以W的尺寸都为M*N为例,每个第一权重矩阵,可以采样一个拆分尺寸r,其中W
1对应r
1,W
2对应r
2,以此类推。在进行第一权重矩阵的拆分时,例如对W
1进行拆分时,可以将W
1的M行以及前r
1列拆分出来作为第一个子权重矩阵,将W
1的后r
1行以及N列拆分出来作为第二个子权重矩阵,以此类推进行其余第一权重矩阵的权重拆分,之后可以在测评模块中进行硬件平台上的模型性能测评(图5中以在D芯片上测评为例)。
本申请实施例中,训练设备可以基于所述多组候选的子权重矩阵,获取多个候选的神经网络模型,并对所述多个候选的神经网络模型进行训练,并从所述多个候选的神经网络模型中选择数据处理精度满足预设条件,且在进行训练时处理相同数量的训练数据所需的时间最小的候选的神经网络模型作为所述第二神经网络模型,所述多个候选的神经网络模型用于进行处理目标任务,所述数据处理精度用于表示神经网络模型处理所述目标任务的精度。
关于数据处理精度以及进行训练时处理预设数量的训练数据所需的时间的确定,训练设备应基于特定的硬件环境上进行评测,评测特定候选拆分方式在预训练上的训练效率(进行训练时处理预设数量的训练数据所需的时间)和下游任务上的精度(数据处理精度)。具体的,针对于后续模型需要运行的硬件平台,训练设备在得到多个候选的神经网络模型之后,可以对每个候选的神经网络模型生成计算图以及适配于该硬件平台的程序,并在该硬件平台上训练候选的神经网络模型,进而得到各个候选的神经网络模型的数据处理精度以及进行训练时处理预设数量的训练数据所需的时间。
应理解,上述多个候选的神经网络模型,可以是训练设备在训练过程中依次确定的,也就是说训练设备可以首先确定一个候选的神经网络模型并进行训练,之后再确定一个候选的神经网络模型并进行训练。可选的,每次训练之后,可以基于上一次的训练结果,
对候选的拆分方式进行交叉、变异操作得到新的候选拆分方式,以确定下一次训练的候选的神经网络模型。
示例性的,以子权重矩阵的数量为2为例,假设第一神经网络模型含有L个第一权重矩阵
其中矩阵
每个矩阵可以有拆分和不拆分两种选择,对于拆分矩阵本实施例可以使用两个低秩的子权重矩阵相乘
来代替原来的目标权重矩阵,其中
每种拆分方式可以表述为R={r
1,r
2,...,r
L},其中0≤r
l≤r
max,0表示矩阵不拆分即使用原矩阵,r
max是自定义的最大值。训练设备可以通过自动搜索的方法搜索得到最优的拆分方式R
opt。具体搜索目标可以如下所示:
R
opt=argmin
RSpeed(R);Performance(R)≥Perf;
其中Speed表示在特定硬件环境的单步训练时间,或者为进行训练时处理预设数量的训练数据所需的时间,Performance表示下游任务的评测效果,或者称之为数据处理精度,Perf表示定义的最低精度要求。
首先,训练设备可以定义r
max,确定整个搜索空间
搜索空间对应(r
max+1)
L候选拆分方式(0,1,2,3,…,r
max)。之后使用采样的方式进行one-shot模型训练:每步训练采样C种拆分方式进行学习。进行一定训练步数之后得到one-shot模型。之后可以随机产生H种候选方式作为初代候选拆分方式G
0,并基于产生的候选方式G
t-1,在one-shot模型里面抽取对应的候选的神经网络模型,采用评测模块并行对这些模型进行效果和性能上的评测(也就是数据处理精度以及进行训练时处理预设数量的训练数据所需的时间的评测)。训练设备可以基于评测结果,采用变异和交叉的进化算法产生下一代候选G
t拆分方式。训练设备可以在迭代一定的次数后从当前已经评测过的候选拆分方式集合中,选出最优的拆分方式,进而确定出第二神经网络模型,之后训练设备可以训练该第二神经网络模型,以得到目标神经网络模型。
应理解,用户也可以在脚本程序中规定多个子权重矩阵的尺寸,例如,线性层算子API可以为:LinearNew(in_dim,out_dim,bias=True,dim_list),其中,in_dim为输入维度,out_dim为输出维度,即W是一个维度为(in_dim,out_dim)的参数矩阵,dim_list规定了多个子权重矩阵的尺寸,比如dim_list=[a1,a2]则LinearNew返回这样一个数学描述的算子:F_new(x)=X*w1*w2*w3+b,其中w1的维度为(in_dim,a1),w2的维度为(a1,a2),w3的维度为(a2,out_dim)。
示例性的,可以参照图4,图4为本申请实施例提供的一种模型训练的流程示意,如图4所示,用户可以输入预先编写好的脚本程序,该脚本程序可以表达出待训练的第一神经网络模型的模型架构以及第一神经网络模型中待训练的参数的尺寸大小等等,进而训练设备中的计算图优化模组可以获取到脚本,并判断用户是否通过API来指定替换规则(替换规则可以为用户规定的矩阵拆分尺寸),若用户通过API来指定替换规则,则生成替换后的神经网络模型的计算图和程序,并基于计算图和程序在目标硬件平台上训练模型。若用户未通过API来指定替换规则,则计算图性能优化搜索模块可以进行矩阵拆分尺寸的搜索,具体的,可以按照图3对应的实施例中步骤302中目标矩阵拆分尺寸的确定方式来搜索,在搜索满足搜索条件之后,可以生成替换后的神经网络模型的计算图和程序,并基于计算图和程序在目标硬件平台上训练模型。
303、对所述第二神经网络模型进行模型训练,得到目标神经网络模型。
本申请实施例中,在对第二神经网络模型进行模型训练以及对上述候选的神经网络模型进行评测的过程中,需要神经网络模型计算对应的计算图。例如用户通过API在第一神经网络模型中定义了一个仅有一个线性层且无偏置量b的第一算子为:A=WX;则在深度学习框架中的计算图可以如图6所示,若第二神经网络模型或候选的神经网络模型中将第一算子替换为A=W1*W2*X,则计算图将被替换为如图7所示的计算图,在深度学习框架中,计算图的生成可以由自动微分模块自动进行,在得到第二神经网络模型的计算图之后,可以基于该计算图在对应的硬件平台上训练第二神经网络模型,以得到目标神经网络模型。
在一种可能的实现中,训练设备还可以向终端设备发送所述目标神经网络模型。
在一种可能的实现中,所述目标神经网络模型包括训练后的第二算子,所述训练后的第二算子用于将输入数据与训练好的多个子权重矩阵进行乘积运算;训练设备还可以将所述训练后的多个子权重矩阵的乘积结果作为第二权重矩阵,以生成第三神经网络模型,所述第三神经网络模型包括第三算子,所述第三算子用于将输入数据与所述第二权重矩阵进行乘积运算;向终端设备发送所述第三神经网络模型。
具体的,可以为用户提供是否保存权重矩阵拆分结果的选择,也就是为用户提供是否将多个子权重矩阵的乘积结果作为第二权重矩阵,以返回第三神经网络模型的选择,若用户选择不保存权重矩阵拆分结果,则训练设备可以将所述训练好的多个子权重矩阵的乘积结果作为第二权重矩阵,以生成第三神经网络模型,所述第三神经网络模型包括第三算子,所述第三算子用于将输入数据与所述第二权重矩阵进行乘积运算;向用户的终端设备发送所述第三神经网络模型,若用户选择保存权重矩阵拆分结果,则训练设备可以向用户的终端设备发送所述目标神经网络模型。
具体的,可以如图8所示,若用户选择保存原始模型(也就是选择不保存权重矩阵拆分结果),则将所述训练好的多个子权重矩阵的乘积结果作为第二权重矩阵W(W=W1*W2*W3…),以生成第三神经网络模型,所述第三神经网络模型包括第三算子,所述第三算子用于将输入数据与所述第二权重矩阵进行乘积运算;向用户发送所述第三神经网络模型,进而用户可以将第三神经网络模型保存至本地存储。若用户选择不保存原始模型(也就是选择保存权重矩阵拆分结果),则可以向用户发送所述目标神经网络模型(包括多个子权重矩阵W1*W2*W3…),进而用户可以将目标神经网络模型保存至本地存储。
本申请实施例中,处理相同数量的训练数据时,所述第一神经网络模型所需的时间大于所述第二神经网络模型所需的时间,也就是说在对所述第一神经网络模型进行模型训练的情况下,所述第一神经网络模型处理预设数量的训练数据所需的时间大于在对所述第二神经网络模型进行模型训练的过程中,所述第二神经网络模型处理所述预设数量的训练数据所需的时间。针对于一个较大的目标权重矩阵,训练设备在进行输入数据与目标权重矩阵的乘积运算所需的时间较大,本申请实施例中,将目标权重矩阵拆分为多个子权重矩阵的乘积,使得训练设备在进行输入数据与多个子权重矩阵的乘积运算所需的时间较小。
本申请实施例提供了一种模型训练方法,包括:获取待训练的第一神经网络模型,所述第一神经网络模型包括第一算子,所述第一算子用于将输入数据与目标权重矩阵进行乘积运算;将所述第一神经网络模型中的所述第一算子替换为第二算子,以得到第二神经网络模型,其中,所述第二算子用于将输入数据与多个子权重矩阵进行乘积运算,所述多个子权重矩阵为对所述目标权重矩阵进行矩阵分解得到的;对所述第二神经网络模型进行模型训练,得到目标神经网络模型,通过上述方式,将目标权重矩阵拆分为多个子权重矩阵的乘积,使得训练设备在进行输入数据与多个子权重矩阵的乘积运算所需的时间较小,进而减少了模型训练时间。
在图1至图8所对应的实施例的基础上,为了更好的实施本申请实施例的上述方案, 下面还提供用于实施上述方案的相关设备。具体参阅图9,图9为本申请实施例提供的模型训练装置900的一种结构示意图,模型训练装置900可以是终端设备或服务器,模型训练装置900包括:
获取模块901,用于获取待训练的第一神经网络模型,所述第一神经网络模型包括第一算子,所述第一算子用于将输入数据与目标权重矩阵进行乘积运算;
算子替换模块902,用于将所述第一神经网络模型中的所述第一算子替换为第二算子,以得到第二神经网络模型,其中,所述第二算子用于将输入数据与多个子权重矩阵进行乘积运算,所述多个子权重矩阵为对所述目标权重矩阵进行矩阵分解得到的;
模型训练模块903,用于对所述第二神经网络模型进行模型训练,得到目标神经网络模型。
在一种可能的实现中,处理相同数量的训练数据时,所述第一神经网络模型所需的时间大于所述第二神经网络模型所需的时间。
在一种可能的实现中,所述多个子权重矩阵包括第一子权重矩阵和第二子权重矩阵,在将输入数据与多个子权重矩阵进行乘积运算的过程中,所述第一子权重矩阵和所述第二子权重矩阵为所述多个子权重矩阵中任意两个相乘的矩阵,所述第一子权重矩阵的列的尺寸和所述第二子权重矩阵的行的尺寸相同。
在一种可能的实现中,所述多个子权重矩阵包括矩阵1、矩阵2、…、矩阵N-1以及矩阵N,所述第二算子用于进行如下运算:M*矩阵1*矩阵2*…*矩阵N-1*矩阵N,其中,所述M表示输入数据,所述*表示相乘;
所述目标权重矩阵的行的尺寸和所述矩阵1的行的尺寸相同,所述目标权重矩阵的列的尺寸和所述矩阵N的列的尺寸相同。
在一种可能的实现中,所述多个子权重矩阵中每个子权重矩阵的行的尺寸小于或等于所述目标权重矩阵的行的尺寸,所述多个子权重矩阵中每个子权重矩阵的列的尺寸小于或等于所述目标权重矩阵的列的尺寸。
在一种可能的实现中,所述获取模块901,用于:
获取目标矩阵拆分尺寸,所述目标矩阵拆分尺寸表示所述多个子权重矩阵中每个子权重矩阵的行的尺寸和/或列的尺寸;根据所述目标矩阵拆分尺寸和所述目标权重矩阵,确定所述多个子权重矩阵。
在一种可能的实现中,所述目标矩阵拆分尺寸包括a1、a2、…、an-1以及an,所述目标权重矩阵的尺寸为P*Q,相应的,所述多个子权重矩阵的尺寸为P*a1、a1*a2、…、an-1*an以及an*Q。
在一种可能的实现中,所述获取模块901,用于:
获取多个候选的矩阵拆分尺寸;
根据所述多个候选的矩阵拆分尺寸和所述目标权重矩阵,确定多组候选的子权重矩阵,每组候选的子权重矩阵为基于一个候选的矩阵拆分尺寸和所述目标权重矩阵得到的;
所述算子替换模块,用于基于所述多组候选的子权重矩阵,获取多个候选的神经网络 模型;其中,每个候选的神经网络模型包括与所述第一算子对应的候选算子,每个所述候选算子包括一组候选的子权重矩阵;
对所述多个候选的神经网络模型进行训练,并从所述多个候选的神经网络模型中选择数据处理精度满足预设条件,且在进行训练时处理相同数量的训练数据所需的时间最小的候选的神经网络模型作为所述第二神经网络模型。
在一种可能的实现中,所述目标权重矩阵的尺寸为P*Q,所述多个候选的矩阵拆分尺寸中任意一个矩阵拆分尺寸包括b1、b2、…、bn-1以及bn,所述任意一个候选矩阵拆分尺寸对应的一组候选的子权重矩阵为P*b1、b1*b2、…、bn-1*bn以及bn*Q。
在一种可能的实现中,所述获取模块,用于:
获取多个候选的矩阵拆分尺寸;
对所述待训练的第一神经网络模型进行单发one-shot模型的模型训练,以得到目标one-shot模型,所述目标one-shot模型包括所述目标权重矩阵对应的第一权重矩阵,所述第一权重矩阵的尺寸与所述目标权重矩阵相同;
根据所述多个候选的矩阵拆分尺寸和所述第一权重矩阵,确定多组候选的子权重矩阵,每组候选的子权重矩阵为基于一个候选的矩阵拆分尺寸和所述第一权重矩阵得到的;
所述算子替换模块,用于基于所述多组候选的子权重矩阵,获取多个候选的神经网络模型;其中,每个候选的神经网络模型包括与所述第一算子对应的候选算子,每个所述候选算子包括一组候选的子权重矩阵;
对所述多个候选的神经网络模型进行训练,并从所述多个候选的神经网络模型中选择数据处理精度满足预设条件,且在进行训练时处理相同数量的训练数据所需的时间最小的候选的神经网络模型作为所述第二神经网络模型。
在一种可能的实现中,所述第一算子还用于将所述输入数据与所述目标权重矩阵进行乘积运算的结果与偏置值相加;所述第二算子还用于将所述输入数据与所述多个子权重矩阵的乘积结果进行乘积运算的结果与所述偏置值相加。
在一种可能的实现中,所述装置还包括:
发送模块904,用于向终端设备发送所述目标神经网络模型。
在一种可能的实现中,所述目标神经网络模型包括训练后的第二算子,所述训练后的第二算子用于将输入数据与训练后的多个子权重矩阵进行乘积运算;所述装置还包括:
发送模块904,用于将所述训练后的多个子权重矩阵的乘积结果作为第二权重矩阵,以生成第三神经网络模型,所述第三神经网络模型包括第三算子,所述第三算子用于将输入数据与所述第二权重矩阵进行乘积运算;
向终端设备发送所述第三神经网络模型。
接下来介绍本申请实施例提供的一种执行设备,请参阅图10,图10为本申请实施例提供的执行设备的一种结构示意图,执行设备1000具体可以表现为虚拟现实VR设备、手机、平板、笔记本电脑、智能穿戴设备、监控数据处理设备或服务器等,此处不做限定。具体的,执行设备1000包括:接收器1001、发射器1002、处理器1003和存储器1004(其中执行设备1000中的处理器1003的数量可以一个或多个,图10中以一个处理器为例),其中,处理器1003可以包括应用处理器10031和通信处理器10032。在本申请的一些实施例中,接收器1001、发射器1002、处理器1003和存储器1004可通过总线或其它方式连接。
存储器1004可以包括只读存储器和随机存取存储器,并向处理器1003提供指令和数据。存储器1004的一部分还可以包括非易失性随机存取存储器(non-volatile random access memory,NVRAM)。存储器1004存储有处理器和操作指令、可执行模块或者数据结构,或者它们的子集,或者它们的扩展集,其中,操作指令可包括各种操作指令,用于实现各种操作。
处理器1003控制执行设备的操作。具体的应用中,执行设备的各个组件通过总线系统耦合在一起,其中总线系统除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都称为总线系统。
上述本申请实施例揭示的方法可以应用于处理器1003中,或者由处理器1003实现。处理器1003可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1003中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1003可以是通用处理器、数字信号处理器(digital signal processing,DSP)、微处理器或微控制器,还可进一步包括专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。该处理器1003可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1004,处理器1003读取存储器1004中的信息,结合其硬件完成上述方法的步骤。
接收器1001可用于接收输入的数字或字符信息,以及产生与执行设备的相关设置以及功能控制有关的信号输入。发射器1002可用于通过第一接口输出数字或字符信息;发射器1002还可用于通过第一接口向磁盘组发送指令,以修改磁盘组中的数据;发射器1002还可以包括显示屏等显示设备。
本申请实施例中,在一种情况下,处理器1003,用于运行图3训练得到的目标神经网路模型。
本申请实施例还提供了一种训练设备,请参阅图11,图11是本申请实施例提供的训练设备一种结构示意图,训练设备1100上可以部署有图9对应实施例中所描述的模型训练装 置,具体的,训练设备1100由一个或多个服务器实现,训练设备1100可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)1111(例如,一个或一个以上处理器)和存储器1132,一个或一个以上存储应用程序1142或数据1144的存储介质1130(例如一个或一个以上海量存储设备)。其中,存储器1132和存储介质1130可以是短暂存储或持久存储。存储在存储介质1130的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对训练设备中的一系列指令操作。更进一步地,中央处理器1111可以设置为与存储介质1130通信,在训练设备1100上执行存储介质1130中的一系列指令操作。
训练设备1100还可以包括一个或一个以上电源1126,一个或一个以上有线或无线网络接口1150,一个或一个以上输入输出接口1158;或,一个或一个以上操作系统1141,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
本申请实施例中,中央处理器1111,用于执行图9对应实施例中的模型训练装置执行的模型训练方法。
本申请实施例中还提供一种包括计算机程序产品,当其在计算机上运行时,使得计算机执行如前述执行设备所执行的步骤,或者,使得计算机执行如前述训练设备所执行的步骤。
本申请实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有用于进行信号处理的程序,当其在计算机上运行时,使得计算机执行如前述执行设备所执行的步骤,或者,使得计算机执行如前述训练设备所执行的步骤。
本申请实施例提供的执行设备、训练设备或终端设备具体可以为芯片,芯片包括:处理单元和通信单元,所述处理单元例如可以是处理器,所述通信单元例如可以是输入/输出接口、管脚或电路等。该处理单元可执行存储单元存储的计算机执行指令,以使执行设备内的芯片执行上述实施例描述的数据处理方法,或者,以使训练设备内的芯片执行上述实施例描述的数据处理方法。可选地,所述存储单元为所述芯片内的存储单元,如寄存器、缓存等,所述存储单元还可以是所述无线接入设备端内的位于所述芯片外部的存储单元,如只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)等。
具体的,请参阅图12,图12为本申请实施例提供的芯片的一种结构示意图,所述芯片可以表现为神经网络处理器NPU 1200,NPU 1200作为协处理器挂载到主CPU(Host CPU)上,由Host CPU分配任务。NPU的核心部分为运算电路1203,通过控制器1204控制运算电路1203提取存储器中的矩阵数据并进行乘法运算。
在一些实现中,运算电路1203内部包括多个处理单元(Process Engine,PE)。在一些实现中,运算电路1203是二维脉动阵列。运算电路1203还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算电路1203是通用的矩阵处理器。
举例来说,假设有输入矩阵A,权重矩阵B,输出矩阵C。运算电路从权重存储器1202中取矩阵B相应的数据,并缓存在运算电路中每一个PE上。运算电路从输入存储器1201 中取矩阵A数据与矩阵B进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累加器(accumulator)1208中。
统一存储器1206用于存放输入数据以及输出数据。权重数据直接通过存储单元访问控制器(Direct Memory Access Controller,DMAC)1205,DMAC被搬运到权重存储器1202中。输入数据也通过DMAC被搬运到统一存储器1206中。
BIU为Bus Interface Unit即,总线接口单元1210,用于AXI总线与DMAC和取指存储器(Instruction Fetch Buffer,IFB)1209的交互。
总线接口单元1210(Bus Interface Unit,简称BIU),用于取指存储器1209从外部存储器获取指令,还用于存储单元访问控制器1205从外部存储器获取输入矩阵A或者权重矩阵B的原数据。
DMAC主要用于将外部存储器DDR中的输入数据搬运到统一存储器1206或将权重数据搬运到权重存储器1202中或将输入数据数据搬运到输入存储器1201中。
向量计算单元1207包括多个运算处理单元,在需要的情况下,对运算电路的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。主要用于神经网络中非卷积/全连接层网络计算,如Batch Normalization(批归一化),像素级求和,对特征平面进行上采样等。
在一些实现中,向量计算单元1207能将经处理的输出的向量存储到统一存储器1206。例如,向量计算单元1207可以将线性函数;或,非线性函数应用到运算电路1203的输出,例如对卷积层提取的特征平面进行线性插值,再例如累加值的向量,用以生成激活值。在一些实现中,向量计算单元1207生成归一化的值、像素级求和的值,或二者均有。在一些实现中,处理过的输出的向量能够用作到运算电路1203的激活输入,例如用于在神经网络中的后续层中的使用。
控制器1204连接的取指存储器(instruction fetch buffer)1209,用于存储控制器1204使用的指令;
统一存储器1206,输入存储器1201,权重存储器1202以及取指存储器1209均为On-Chip存储器。外部存储器私有于该NPU硬件架构。
其中,上述任一处提到的处理器,可以是一个通用中央处理器,微处理器,ASIC,或一个或多个用于控制上述程序执行的集成电路。
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本申请提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可 以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本申请而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、U盘、移动硬盘、ROM、RAM、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,训练设备,或者网络设备等)执行本申请各个实施例所述的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、训练设备或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、训练设备或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的训练设备、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。
Claims (28)
- 一种模型训练方法,其特征在于,所述方法包括:获取待训练的第一神经网络模型,所述第一神经网络模型包括第一算子,所述第一算子用于将输入数据与目标权重矩阵进行乘积运算;将所述第一神经网络模型中的所述第一算子替换为第二算子,以得到第二神经网络模型,其中,所述第二算子用于将输入数据与多个子权重矩阵进行乘积运算,所述多个子权重矩阵为对所述目标权重矩阵进行矩阵分解得到的;对所述第二神经网络模型进行模型训练,得到目标神经网络模型。
- 根据权利要求1所述的方法,其特征在于,处理相同数量的训练数据时,所述第一神经网络模型所需的时间大于所述第二神经网络模型所需的时间。
- 根据权利要求1或2所述的方法,其特征在于,所述多个子权重矩阵包括第一子权重矩阵和第二子权重矩阵,在将输入数据与多个子权重矩阵进行乘积运算的过程中,所述第一子权重矩阵和所述第二子权重矩阵为所述多个子权重矩阵中任意两个相乘的矩阵,所述第一子权重矩阵的列的尺寸和所述第二子权重矩阵的行的尺寸相同。
- 根据权利要求3所述的方法,其特征在于,所述多个子权重矩阵包括矩阵1、矩阵2、…、矩阵N-1以及矩阵N,所述第二算子用于进行如下运算:M*矩阵1*矩阵2*…*矩阵N-1*矩阵N,其中,所述M表示输入数据,所述*表示相乘;所述目标权重矩阵的行的尺寸和所述矩阵1的行的尺寸相同,所述目标权重矩阵的列的尺寸和所述矩阵N的列的尺寸相同。
- 根据权利要求1至4任一所述的方法,其特征在于,所述多个子权重矩阵中每个子权重矩阵的行的尺寸小于或等于所述目标权重矩阵的行的尺寸,所述多个子权重矩阵中每个子权重矩阵的列的尺寸小于或等于所述目标权重矩阵的列的尺寸。
- 根据权利要求1至5任一所述的方法,其特征在于,所述方法还包括:获取目标矩阵拆分尺寸,所述目标矩阵拆分尺寸表示所述多个子权重矩阵中每个子权重矩阵的行的尺寸和/或列的尺寸;根据所述目标矩阵拆分尺寸和所述目标权重矩阵,确定所述多个子权重矩阵。
- 根据权利要求6所述的方法,其特征在于,所述目标矩阵拆分尺寸包括a1、a2、…、an-1以及an,所述目标权重矩阵的尺寸为P*Q,相应的,所述多个子权重矩阵的尺寸为P*a1、a1*a2、…、an-1*an以及an*Q。
- 根据权利要求6或7所述的方法,其特征在于,所述获取目标矩阵拆分尺寸,包括:获取多个候选的矩阵拆分尺寸;所述根据所述目标矩阵拆分尺寸和所述目标权重矩阵,确定所述多个子权重矩阵包括:根据所述多个候选的矩阵拆分尺寸和所述目标权重矩阵,确定多组候选的子权重矩阵,每组候选的子权重矩阵为基于一个候选的矩阵拆分尺寸和所述目标权重矩阵得到的;所述将所述第一神经网络模型中的所述第一算子替换为第二算子,以得到第二神经网络模型包括:基于所述多组候选的子权重矩阵,获取多个候选的神经网络模型;其中,每个候选的神经网络模型包括与所述第一算子对应的候选算子,每个所述候选算子包括一组候选的子权重矩阵;对所述多个候选的神经网络模型进行训练,并从所述多个候选的神经网络模型中选择数据处理精度满足预设条件,且在进行训练时处理相同数量的训练数据所需的时间最小的候选的神经网络模型作为所述第二神经网络模型。
- 根据权利要求8所述的方法,其特征在于,所述目标权重矩阵的尺寸为P*Q,所述多个候选的矩阵拆分尺寸中任意一个矩阵拆分尺寸包括b1、b2、…、bn-1以及bn,所述任意一个候选矩阵拆分尺寸对应的一组候选的子权重矩阵为P*b1、b1*b2、…、bn-1*bn以及bn*Q。
- 根据权利要求8或9所述的方法,其特征在于,所述获取目标矩阵拆分尺寸,包括:获取多个候选的矩阵拆分尺寸;所述根据所述目标矩阵拆分尺寸和所述目标权重矩阵,确定所述多个子权重矩阵包括:对所述待训练的第一神经网络模型进行单发one-shot模型的模型训练,以得到目标one-shot模型,所述目标one-shot模型包括所述目标权重矩阵对应的第一权重矩阵,所述第一权重矩阵的尺寸与所述目标权重矩阵相同;根据所述多个候选的矩阵拆分尺寸和所述第一权重矩阵,确定多组候选的子权重矩阵,每组候选的子权重矩阵为基于一个候选的矩阵拆分尺寸和所述第一权重矩阵得到的;所述将所述第一神经网络模型中的所述第一算子替换为第二算子,以得到第二神经网络模型包括:基于所述多组候选的子权重矩阵,获取多个候选的神经网络模型;其中,每个候选的神经网络模型包括与所述第一算子对应的候选算子,每个所述候选算子包括一组候选的子权重矩阵;对所述多个候选的神经网络模型进行训练,并从所述多个候选的神经网络模型中选择数据处理精度满足预设条件,且在进行训练时处理相同数量的训练数据所需的时间最小的候选的神经网络模型作为所述第二神经网络模型。
- 根据权利要求1至10任一所述的方法,其特征在于,所述第一算子还用于将所述输入数据与所述目标权重矩阵进行乘积运算的结果与偏置值相加;所述第二算子还用于将所述输入数据与所述多个子权重矩阵的乘积结果进行乘积运算的结果与所述偏置值相加。
- 根据权利要求1至11任一所述的方法,其特征在于,所述方法还包括:向终端设备发送所述目标神经网络模型。
- 根据权利要求1至11任一所述的方法,其特征在于,所述目标神经网络模型包括训练后的第二算子,所述训练后的第二算子用于将输入数据与训练后的多个子权重矩阵进行乘积运算;所述方法还包括:将所述训练后的多个子权重矩阵的乘积结果作为第二权重矩阵,以生成第三神经网络模型,所述第三神经网络模型包括第三算子,所述第三算子用于将输入数据与所述第二权重矩阵进行乘积运算;向终端设备发送所述第三神经网络模型。
- 一种模型训练装置,其特征在于,所述装置包括:获取模块,用于获取待训练的第一神经网络模型,所述第一神经网络模型包括第一算子,所述第一算子用于将输入数据与目标权重矩阵进行乘积运算;算子替换模块,用于将所述第一神经网络模型中的所述第一算子替换为第二算子,以得到第二神经网络模型,其中,所述第二算子用于将输入数据与多个子权重矩阵进行乘积运算,所述多个子权重矩阵为对所述目标权重矩阵进行矩阵分解得到的;模型训练模块,用于对所述第二神经网络模型进行模型训练,得到目标神经网络模型。
- 根据权利要求14所述的装置,其特征在于,处理相同数量的训练数据时,所述第一神经网络模型所需的时间大于所述第二神经网络模型所需的时间。
- 根据权利要求14或15所述的装置,其特征在于,所述多个子权重矩阵包括第一子权重矩阵和第二子权重矩阵,在将输入数据与多个子权重矩阵进行乘积运算的过程中,所述第一子权重矩阵和所述第二子权重矩阵为所述多个子权重矩阵中任意两个相乘的矩阵,所述第一子权重矩阵的列的尺寸和所述第二子权重矩阵的行的尺寸相同。
- 根据权利要求16所述的装置,其特征在于,所述多个子权重矩阵包括矩阵1、矩阵2、…、矩阵N-1以及矩阵N,所述第二算子用于进行如下运算:M*矩阵1*矩阵2*…*矩阵N-1*矩阵N,其中,所述M表示输入数据,所述*表示相乘;所述目标权重矩阵的行的尺寸和所述矩阵1的行的尺寸相同,所述目标权重矩阵的列的尺寸和所述矩阵N的列的尺寸相同。
- 根据权利要求14至17任一所述的装置,其特征在于,所述多个子权重矩阵中每个子权重矩阵的行的尺寸小于或等于所述目标权重矩阵的行的尺寸,所述多个子权重矩阵中每个子权重矩阵的列的尺寸小于或等于所述目标权重矩阵的列的尺寸。
- 根据权利要求14至18任一所述的装置,其特征在于,所述获取模块,用于:获取目标矩阵拆分尺寸,所述目标矩阵拆分尺寸表示所述多个子权重矩阵中每个子权重矩阵的行的尺寸和/或列的尺寸;根据所述目标矩阵拆分尺寸和所述目标权重矩阵,确定所述多个子权重矩阵。
- 根据权利要求19所述的装置,其特征在于,所述目标矩阵拆分尺寸包括a1、a2、…、an-1以及an,所述目标权重矩阵的尺寸为P*Q,相应的,所述多个子权重矩阵的尺寸为P*a1、a1*a2、…、an-1*an以及an*Q。
- 根据权利要求19或20所述的装置,其特征在于,所述获取模块,用于:获取多个候选的矩阵拆分尺寸;根据所述多个候选的矩阵拆分尺寸和所述目标权重矩阵,确定多组候选的子权重矩阵,每组候选的子权重矩阵为基于一个候选的矩阵拆分尺寸和所述目标权重矩阵得到的;所述算子替换模块,用于基于所述多组候选的子权重矩阵,获取多个候选的神经网络模型;其中,每个候选的神经网络模型包括与所述第一算子对应的候选算子,每个所述候选算子包括一组候选的子权重矩阵;对所述多个候选的神经网络模型进行训练,并从所述多个候选的神经网络模型中选择数据处理精度满足预设条件,且在进行训练时处理相同数量的训练数据所需的时间最小的候选的神经网络模型作为所述第二神经网络模型。
- 根据权利要求21所述的装置,其特征在于,所述目标权重矩阵的尺寸为P*Q,所述多个候选的矩阵拆分尺寸中任意一个矩阵拆分尺寸包括b1、b2、…、bn-1以及bn,所述任意一个候选矩阵拆分尺寸对应的一组候选的子权重矩阵为P*b1、b1*b2、…、bn-1*bn以及bn*Q。
- 根据权利要求21或22所述的装置,其特征在于,所述获取模块,用于:获取多个候选的矩阵拆分尺寸;对所述待训练的第一神经网络模型进行单发one-shot模型的模型训练,以得到目标one-shot模型,所述目标one-shot模型包括所述目标权重矩阵对应的第一权重矩阵,所述第一权重矩阵的尺寸与所述目标权重矩阵相同;根据所述多个候选的矩阵拆分尺寸和所述第一权重矩阵,确定多组候选的子权重矩阵,每组候选的子权重矩阵为基于一个候选的矩阵拆分尺寸和所述第一权重矩阵得到的;所述算子替换模块,用于基于所述多组候选的子权重矩阵,获取多个候选的神经网络模型;其中,每个候选的神经网络模型包括与所述第一算子对应的候选算子,每个所述候选算子包括一组候选的子权重矩阵;对所述多个候选的神经网络模型进行训练,并从所述多个候选的神经网络模型中选择数据处理精度满足预设条件,且在进行训练时处理相同数量的训练数据所需的时间最小的 候选的神经网络模型作为所述第二神经网络模型。
- 根据权利要求14至23任一所述的装置,其特征在于,所述第一算子还用于将所述输入数据与所述目标权重矩阵进行乘积运算的结果与偏置值相加;所述第二算子还用于将所述输入数据与所述多个子权重矩阵的乘积结果进行乘积运算的结果与所述偏置值相加。
- 根据权利要求14至24任一所述的装置,其特征在于,所述装置还包括:发送模块,用于向终端设备发送所述目标神经网络模型。
- 根据权利要求14至24任一所述的装置,其特征在于,所述目标神经网络模型包括训练后的第二算子,所述训练后的第二算子用于将输入数据与训练后的多个子权重矩阵进行乘积运算;所述装置还包括:发送模块,用于将所述训练后的多个子权重矩阵的乘积结果作为第二权重矩阵,以生成第三神经网络模型,所述第三神经网络模型包括第三算子,所述第三算子用于将输入数据与所述第二权重矩阵进行乘积运算;向终端设备发送所述第三神经网络模型。
- 一种模型训练装置,其特征在于,所述装置包括存储器和处理器;所述存储器存储有代码,所述处理器被配置为获取所述代码,并执行如权利要求1至13任一所述的方法。
- 一种计算机存储介质,其特征在于,所述计算机存储介质存储有一个或多个指令,所述指令在由一个或多个计算机执行时使得所述一个或多个计算机实施权利要求1至13任一所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP21874284.9A EP4206957A4 (en) | 2020-09-30 | 2021-09-18 | MODEL TRAINING METHOD AND APPARATUS |
US18/192,211 US20230274144A1 (en) | 2020-09-30 | 2023-03-29 | Model training method and related device |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011063706.4A CN112541159A (zh) | 2020-09-30 | 2020-09-30 | 一种模型训练方法及相关设备 |
CN202011063706.4 | 2020-09-30 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US18/192,211 Continuation US20230274144A1 (en) | 2020-09-30 | 2023-03-29 | Model training method and related device |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2022068623A1 true WO2022068623A1 (zh) | 2022-04-07 |
Family
ID=75013530
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2021/119274 WO2022068623A1 (zh) | 2020-09-30 | 2021-09-18 | 一种模型训练方法及相关设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230274144A1 (zh) |
EP (1) | EP4206957A4 (zh) |
CN (1) | CN112541159A (zh) |
WO (1) | WO2022068623A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116306856A (zh) * | 2023-05-17 | 2023-06-23 | 之江实验室 | 一种基于搜索的深度学习模型部署方法及装置 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112541159A (zh) * | 2020-09-30 | 2021-03-23 | 华为技术有限公司 | 一种模型训练方法及相关设备 |
CN113128670B (zh) * | 2021-04-09 | 2024-03-19 | 南京大学 | 一种神经网络模型的优化方法及装置 |
CN115221101B (zh) * | 2021-04-16 | 2023-12-19 | 中科寒武纪科技股份有限公司 | 用于优化片上系统的矩阵乘操作的方法和相关产品 |
CN113656563A (zh) * | 2021-07-15 | 2021-11-16 | 华为技术有限公司 | 一种神经网络搜索方法及相关设备 |
CN114298280A (zh) * | 2021-12-29 | 2022-04-08 | 杭州海康威视数字技术股份有限公司 | 一种数据处理、网络训练方法、电子设备及存储介质 |
CN114722751B (zh) * | 2022-06-07 | 2022-09-02 | 深圳鸿芯微纳技术有限公司 | 运算单元的构架选择模型训练方法和构架选择方法 |
CN117540774A (zh) * | 2022-07-28 | 2024-02-09 | 华为技术有限公司 | 数据处理方法及装置 |
CN114997397B (zh) * | 2022-08-01 | 2022-10-21 | 北京健康有益科技有限公司 | 一种模型转换方法、装置、终端设备及存储介质 |
CN117350354A (zh) * | 2023-09-21 | 2024-01-05 | 摩尔线程智能科技(北京)有限责任公司 | 大模型的训练方法、装置、电子设备和存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107944556A (zh) * | 2017-12-12 | 2018-04-20 | 电子科技大学 | 基于块项张量分解的深度神经网络压缩方法 |
US20180260703A1 (en) * | 2016-11-22 | 2018-09-13 | Massachusetts Institute Of Technology | Systems and methods for training neural networks |
CN108629412A (zh) * | 2017-03-15 | 2018-10-09 | 中国科学院声学研究所 | 一种基于无网格最大互信息准则的神经网络训练加速方法 |
CN110263913A (zh) * | 2019-05-23 | 2019-09-20 | 深圳先进技术研究院 | 一种深度神经网络压缩方法及相关设备 |
CN110751265A (zh) * | 2019-09-24 | 2020-02-04 | 中国科学院深圳先进技术研究院 | 一种轻量型神经网络构建方法、系统及电子设备 |
CN112541159A (zh) * | 2020-09-30 | 2021-03-23 | 华为技术有限公司 | 一种模型训练方法及相关设备 |
-
2020
- 2020-09-30 CN CN202011063706.4A patent/CN112541159A/zh active Pending
-
2021
- 2021-09-18 WO PCT/CN2021/119274 patent/WO2022068623A1/zh unknown
- 2021-09-18 EP EP21874284.9A patent/EP4206957A4/en active Pending
-
2023
- 2023-03-29 US US18/192,211 patent/US20230274144A1/en active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180260703A1 (en) * | 2016-11-22 | 2018-09-13 | Massachusetts Institute Of Technology | Systems and methods for training neural networks |
CN108629412A (zh) * | 2017-03-15 | 2018-10-09 | 中国科学院声学研究所 | 一种基于无网格最大互信息准则的神经网络训练加速方法 |
CN107944556A (zh) * | 2017-12-12 | 2018-04-20 | 电子科技大学 | 基于块项张量分解的深度神经网络压缩方法 |
CN110263913A (zh) * | 2019-05-23 | 2019-09-20 | 深圳先进技术研究院 | 一种深度神经网络压缩方法及相关设备 |
CN110751265A (zh) * | 2019-09-24 | 2020-02-04 | 中国科学院深圳先进技术研究院 | 一种轻量型神经网络构建方法、系统及电子设备 |
CN112541159A (zh) * | 2020-09-30 | 2021-03-23 | 华为技术有限公司 | 一种模型训练方法及相关设备 |
Non-Patent Citations (1)
Title |
---|
See also references of EP4206957A4 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116306856A (zh) * | 2023-05-17 | 2023-06-23 | 之江实验室 | 一种基于搜索的深度学习模型部署方法及装置 |
CN116306856B (zh) * | 2023-05-17 | 2023-09-05 | 之江实验室 | 一种基于搜索的深度学习模型部署方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
EP4206957A4 (en) | 2024-03-06 |
EP4206957A1 (en) | 2023-07-05 |
US20230274144A1 (en) | 2023-08-31 |
CN112541159A (zh) | 2021-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2022068623A1 (zh) | 一种模型训练方法及相关设备 | |
CN112418392A (zh) | 一种神经网络构建方法以及装置 | |
CN114997412A (zh) | 一种推荐方法、训练方法以及装置 | |
WO2022012668A1 (zh) | 一种训练集处理方法和装置 | |
CN113240079A (zh) | 一种模型训练方法及装置 | |
CN113449859A (zh) | 一种数据处理方法及其装置 | |
WO2023246819A1 (zh) | 一种模型训练方法及相关设备 | |
CN113065633A (zh) | 一种模型训练方法及其相关联设备 | |
CN115879508A (zh) | 一种数据处理方法及相关装置 | |
CN114925320B (zh) | 一种数据处理方法及相关装置 | |
CN115238909A (zh) | 一种基于联邦学习的数据价值评估方法及其相关设备 | |
CN113407820B (zh) | 利用模型进行数据处理的方法及相关系统、存储介质 | |
CN114169393A (zh) | 一种图像分类方法及其相关设备 | |
WO2023197857A1 (zh) | 一种模型切分方法及其相关设备 | |
WO2023273934A1 (zh) | 一种模型超参数的选择方法及相关装置 | |
CN116739154A (zh) | 一种故障预测方法及其相关设备 | |
CN111652349A (zh) | 一种神经网络的处理方法及相关设备 | |
CN114707070A (zh) | 一种用户行为预测方法及其相关设备 | |
CN113065638A (zh) | 一种神经网络压缩方法及其相关设备 | |
WO2023045949A1 (zh) | 一种模型训练方法及其相关设备 | |
WO2022171027A1 (zh) | 一种模型训练方法及装置 | |
WO2023051236A1 (zh) | 一种偏微分方程求解方法及其相关设备 | |
WO2024061123A1 (zh) | 一种图像处理方法及其相关设备 | |
CN116882472A (zh) | 一种训练数据评估方法及其相关设备 | |
CN116992435A (zh) | 一种后门检测方法以及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 21874284 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2021874284 Country of ref document: EP Effective date: 20230328 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |