CN112506523A - Bert模型的优化方法及系统、电子设备及存储介质 - Google Patents
Bert模型的优化方法及系统、电子设备及存储介质 Download PDFInfo
- Publication number
- CN112506523A CN112506523A CN202011517527.3A CN202011517527A CN112506523A CN 112506523 A CN112506523 A CN 112506523A CN 202011517527 A CN202011517527 A CN 202011517527A CN 112506523 A CN112506523 A CN 112506523A
- Authority
- CN
- China
- Prior art keywords
- layer
- bert model
- model
- operator
- optimization
- 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.)
- Pending
Links
- 238000005457 optimization Methods 0.000 title claims abstract description 58
- 238000000034 method Methods 0.000 title claims abstract description 44
- 238000012545 processing Methods 0.000 claims abstract description 11
- 230000008569 process Effects 0.000 claims abstract description 9
- 230000006870 function Effects 0.000 claims description 53
- 230000004913 activation Effects 0.000 claims description 31
- 239000011159 matrix material Substances 0.000 claims description 24
- 230000007246 mechanism Effects 0.000 claims description 24
- 238000004364 calculation method Methods 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 9
- 238000007499 fusion processing Methods 0.000 abstract description 2
- 239000010410 layer Substances 0.000 description 77
- 238000005259 measurement Methods 0.000 description 9
- 238000004458 analytical method Methods 0.000 description 7
- 230000009466 transformation Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000003058 natural language processing Methods 0.000 description 6
- 238000010606 normalization Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 230000004927 fusion Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000013136 deep learning model Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000007334 memory performance Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000002356 single layer Substances 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000004821 distillation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000013138 pruning Methods 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- 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
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开了一种BERT模型的优化方法及系统、电子设备及存储介质,提供了一种BERT模型的优化方法,所述优化方法包括:将所述BERT模型每个层包含的所有算子分别合并为一个对应的层算子,所述层算子的数量和所述BERT模型的层数相同;每个层算子分别用于所述BERT模型中对应层的运算。本发明通过对BERT模型的各个层进行算子融合处理优化了模型处理处理过程,在不改变模型结构和模型精度的前提下加快了模型的推理速度,提高了BERT模型的处理效率。
Description
技术领域
本发明涉及人工智能技术领域,尤其涉及一种BERT模型的优化方法及系统、电子设备及存储介质。
背景技术
BERT(BidirectionalEncoder Representations from Transformer,来自变换器的双向编码器表征量)语言模型是谷歌公司于2018年末发布的一种新型语言模型,其开发目标是利用大规模无标注语料训练获得目标文本的语义表示,然后将文本的语义表示在特定NLP(Nature Language Procession,自然语言处理)任务中作微调后最终应用于该NLP任务。BERT基于多层编码器实现,摈弃传统的循环神经网络和卷积神经网络结构,在机器翻译和自然语言处理领域效果非常好。标准的BERT模型由多层编码转换器构成,其中包括多头注意力机制层(Multi-head Self-Attention)、归一化层(Layer Normalization)以及前向反馈层(Feed Forward)等主要模块。
由于BERT模型的计算量和计算复杂度较高,实践中需要根据部署和应用的具体环境和要求优化模型的推理速度。和其他深度学习模型一样,BERT模型的常用推理优化方法是对其进行模型压缩,即模型量化、模型剪枝和模型蒸馏等,但是模型压缩优化很可能影响模型的精度,需要重新训练而造成较大的资源付出。
发明内容
本发明要解决的技术问题是为了克服现有技术中对BERT模型优化程度不足导致推理速度不够,或者是模型压缩优化导致影响模型精度的缺陷,提供一种基于系统层级的BERT模型的优化方法。
本发明是通过下述技术方案来解决上述技术问题:
本发明提供了一种BERT模型的优化方法,所述优化方法包括:
将所述BERT模型每个层包含的所有算子分别合并为一个对应的层算子,所述层算子的数量和所述BERT模型的层数相同;每个层算子分别用于所述BERT模型中对应层的运算。
较佳地,所述优化方法还包括:将所有的层算子合并为一个总算子。
较佳地,所述BERT模型包括多头自注意力机制层,所述优化方法还包括:在多头自注意力机制层中调用批量矩阵乘法,所述批量矩阵乘法用于对目标字向量、上下文向量和上下文值向量进行处理以获得所述多头自注意力机制层的输出结果。
较佳地,所述优化方法还包括:将所述BERT模型的任一层的激活函数设置为高斯误差线性单元函数:
其中,x为使用所述激活函数的层的输入值,erf表示误差函数。
本发明还提供了一种BERT模型的优化系统,所述优化系统包括:
层算子合并模块,用于将所述BERT模型的每个层包含的所有算子分别合并为一个对应的层算子,所述层算子的数量和所述BERT模型的层数相同;每个层算子分别用于所述BERT模型中对应层的运算。
较佳地,所述优化系统还包括:
总算子合并模块,用于将所有的层算子合并为一个总算子。
较佳地,所述BERT模型包括多头自注意力机制层,所述优化系统还包括:
输出计算模块,用于在多头自注意力机制层中调用批量矩阵乘法,所述批量矩阵乘法用于对目标字向量、上下文向量和上下文值向量进行处理以获得所述多头自注意力机制层的输出结果。
较佳地,所述优化系统还包括:
激活函数设置模块,用于将所述BERT模型的任一层的激活函数设置为高斯误差线性单元函数:
其中,x为使用所述激活函数的层的输入值,erf表示误差函数。
本发明还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述BERT模型的优化方法。
本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述BERT模型的优化方法的步骤。
本发明的积极进步效果在于:通过对BERT模型的各个层进行算子融合处理优化了模型处理处理过程,在不改变模型结构和模型精度的前提下加快了模型的推理速度,提高了BERT模型的处理效率。
附图说明
图1为本发明的实施例1的BERT模型的优化方法的流程示意图。
图2为本发明的实施例1的BERT模型的部分结构示意图。
图3为本发明的实施例的BERT模型原有的运算过程示意图。
图4为本发明的实施例的BERT模型优化后的运算过程示意图。
图5为本发明的实施例2的BERT模型的优化系统的模块示意图。
图6为本发明的实施例3的电子设备的结构框图。
具体实施方式
下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
对于BERT模型的优化前提是对其进行瓶颈定位和分析。以x86硬件平台和Linux操作系统为例即存在多种有效的性能分析工具,包括开源的perf(性能分析工具)和IntelVtune Amplifier(商业分析软件)等。针对深度学习模型,tensorflow(一个基于数据流编程的符号数学系统,应用于各类机器学习算法的编程实现)框架提供了timeline(性能分析工具)进行性能分析。本实施例中使用perf和timeline工具首先对BERT模型的推理运行过程进行系统完整的分析,以高性能计算为指标获取各项性能参数,包括CPU(CentralProcessing Unit,中央处理器)的利用率、内存带宽使用率、缓存命中率以及从CPU单核到多核的扩展性等。由于BERT模型属于计算密集型应用,因此CPU的利用率直接关乎模型的推理性能。经过分析发现CPU利用率偏低,仅为50%左右,且内存访问延迟较大,这表明内存访问或内存拷贝的开销过多,导致CPU核心运算能力没有被充分利用。在针对BERT模型进行具体的算法改进之前,首先从硬件层面以及编译和运行时的处理着手改进。
首先,x86硬件平台大都是NUMA(Non-Uniform Memory Access,非一致内存访问)架构,数据访问会存在相对于两个CPU芯片的近端内存访问和远端内存访问,对于计算密集型应用远端内存访问延迟较大,会极大影响计算速度。因此需要进行NUMA绑定即保证所使用的8个CPU核心都在同一CPU芯片从而保证数据访问都是近端内存访问,本地环境中最直接有效的方法是使用命令“numactl”进行设置,在线部署需要根据实际情况来调整,最终效果是一样的。
其次,针对不同的编译器和编译优化选项编译生成的程序往往具有不同的性能表现,因为编译器会根据编译选项生成不同的汇编代码,去除冗余计算,进行必要的循环展开,进行函数内联,减少函数调用开销,自动使用硬件平台的高级指令集等,使得代码运行的效率大大提供,速度得到明显提升。使用Intel C++Compiler编译器,将编译优化选项设置为“-qopt-zmm-usage=low,-fp-model fast=2,-O3–xAVX2”。
再次,对运行时进行优化。BERT模型主要耗时计算是矩阵乘法,调用MKL数学库的实测性能最佳,同时采用OpenMP多线程并行技术。这两者同时需要配合相应的运行时优化方式,分别通过设置环境变量得到最佳的性能,具体如下:
设置OpenMP线程同步等待的时间:
KMP_BLOCKTIME=0。
进行线程亲源性设置减少线程迁移:
KMP_AFFINITY=granularity=fine,warnings,compact,1,0。
设置OpenMP线程数,MKL使用线程数的上限设置:
OMP_NUM_THREADS=8。
指定MKL使用的指令集:
MKL_ENABLE_INSTRUCTIONS=AVX2。
设置算子内部的线程数:
intra_op_parallelism_threads=8。
设置算子之间的线程数:
inter_op_parallelism_threads=1。
实施例1
针对BERT模型的主要改进在于重构内存管理代码。本实施例中,主要从算子融合、设置批量矩阵乘法和设置激活函数等途径对内存管理代码进行了重构。
如图1所示,BERT模型的优化方法包括步骤S1:将BERT模型每个层包含的所有算子分别合并为一个对应的层算子,层算子的数量和BERT模型的层数相同;每个层算子分别用于BERT模型中对应层的运算。
作为一种较佳的实施方式,BERT模型的优化方法还包括步骤S2:将所有层算子合并为一个总算子。
具体地,由于BERT模型需要面向各自应用场景和用户,因此设计的原始算子非常细化,即每一层都包含了大量的零散算子,例如图2中的BERT模型中包括了前向反馈层、多头自注意力机制层、归一化层,这些层均包括了大量的零散算子,使得其在实际线上应用时,预测时长较高。为了减少数据访问开销,可以将单层的零散算子合并成一个大的python(高级语言)算子,例如将多头自注意力机制层中的大量零散算子进行融合,从而对于同样的计算操作,算子融合后所需要加载的线程数大为减少。
甚至,各个层合并算子还可以再合并为一个总的算子,可以减少存储开销,将计算进行合并后重写,减少BERT中零散算子的耗时开销,提升模型的推理计算速度。
在一个具体的实施方式中,BERT模型包括多头自注意力机制层(Multi-headedself-attention Layer),在多头自注意力机制层中调用批量矩阵乘法,批量矩阵乘法用于对目标字向量、上下文向量和上下文值向量进行处理以获得多头自注意力机制层的输出结果。
多头自注意力机制其本质可被描述为一个目标字向量(Query)到一系列的上下文向量(key)-上下文值向量(value)对的映射。计算注意力时主要分为三步,第一步是将Query和每个key进行相似度计算得到权重,常用的相似度函数有点积,拼接,感知机等;第二步对这些权重进行归一化;最后将权重和相应的键值value进行加权求和得到最后的注意力输出值。目前在自然语言处理中,key和value常常都是同一个。
对于BERT模型,最核心也是最耗时的计算模块之一就是多头自注意力机制,因为其中包含了大量的矩阵乘法计算。根据算法原理,需要进行矩阵乘法计算的涉及Query、key和value的获取;Query和key点乘等等。
更重要的是,当前的tensorflow提供的算法实现包含了大量的行列变换操作(transpose),由此带来大量的内存访问开销。
参见图3-4所示,本实施例中对于多矩阵乘法通过批量矩阵乘法(Batched MatrixMultiply)操作实现以提升计算效率带来运行速度的提升。图中T(a)表示张量a的行列式变换形式。例如针对自注意力机制原始的实现流程中包含的三次冗余行列式变换操作,通过对内存重构可以避免这三次行列式变换操作,优化后的计算流程不包含行列式变换,节省了较大的内存访问开销。
作为一种较佳的实施方式,BERT模型的优化方法包括:将原来基于tanh的激活函数修改为基于erf的激活函数,原来的函数实现方式如下:
现将BERT模型的任一层的激活函数设置为高斯误差线性单元(GELU)函数:
其中,x为使用激活函数的层的输入值,erf表示误差函数。
由于内存性能的热点之一是集中在激活函数的选择上,使用高斯误差线性单元函数可以有效地提高性能。在一个例子中,在多头自注意力机制层和归一化层中使用上述基于erf的GELU激活函数;又如在另一个例子中,在前向反馈层中使用上述基于erf的GELU激活函数,均起到了加速BERT模型推理速度的效果。
表1:BERT模型应用实测速度对比表
本实施例以表1中的硬件配置为例,对BERT模型运行时的延迟进行实测,实测结果可以表征BERT模型的推理计算速度。实测结果表明,通过设置以上的优化方法使BERT模型的加速比达到了两倍。
本实施例提供的BERT模型的优化方法通过算子融合、设置批量矩阵乘法以及激活函数等方式进行了模型优化,提升了BERT模型的推理速度。该优化方法可以适用于所有BERT模型的应用场景和其他类似的模型,并可在智能客服平台等实用场景中较好地提升用户体验。
实施例2
本实施例提供了一种BERT模型的优化系统,通过设置层算子合并模块、总算子合并模块、输出计算模块和激活函数设置模块对现有的BERT模型的内存进行重构以提高推理速度。
如图5所示,首先,设置了层算子合并模块1,用以将BERT模型每个层包含的所有算子分别合并为一个对应的层算子,层算子的数量和BERT模型的层数相同;每个层算子分别用于BERT模型中对应层的运算。
作为一种较佳的实施方式,通过设置总算子合并模块2,将所有的层算子合并为一个总算子。
具体地,由于BERT模型需要面向各自应用场景和用户,因此设计的原始算子非常细化,即每一层都包含了大量的零散算子,例如图2中的BERT模型中包括了前向反馈层、多头自注意力机制层、归一化层,以上各层均包括了大量的算子,使得其在实际线上应用时,预测时长较高。为了减少数据访问开销,可以将单层的零散算子合并成一个大的python算子,例如将多头自注意力机制层中的大量零散算子进行融合,从而对于同样的计算操作,算子融合后所需要加载的线程数大为减少。
各个层合并算子还可以再合并为一个总的算子,可以减少存储开销,将计算进行合并后重写,减少BERT中零散算子的耗时开销,提升模型的推理计算速度。
本实施例中,BERT模型包括多头自注意力机制层,在多头自注意力机制层中调用批量矩阵乘法,批量矩阵乘法用于对目标字向量、上下文向量和上下文值向量进行处理以获得多头自注意力机制层的输出结果。
多头自注意力机制其本质可被描述为一个目标字向量(Query)到一系列的上下文向量(key)-上下文值向量(value)对的映射。计算注意力时主要分为三步,第一步是将Query和每个key进行相似度计算得到权重,常用的相似度函数有点积,拼接,感知机等;第二步对这些权重进行归一化;最后将权重和相应的键值value进行加权求和得到最后的注意力输出值。目前在自然语言处理中,key和value常常都是同一个。
对于BERT模型,最核心也是最耗时的计算模块之一就是多头自注意力机制,因为其中包含了大量的矩阵乘法计算。根据算法原理,需要进行矩阵乘法计算的涉及Query、key和value的获取;Query和key点乘等等。
更重要的是,当前tensorflow提供的算法实现包含了大量的行列式变换操作(transpose),由此带来大量的内存访问开销。
本实施例中,设置输出计算模块3对于多矩阵乘法通过批量矩阵乘法实现以提升计算效率带来运行速度的提升。例如针对自注意力机制原始的实现流程中包含的三次冗余行列式变换操作,参见图3-4所示,通过对内存重构可以避免这三次行列式变换操作,优化后的计算流程不包含行列式变换,节省了较大的内存访问开销。图中的T(a)表示张量a的行列式变换形式。
作为一种较佳的实施方式,BERT模型优化系统包括激活函数设置模块4,激活函数设置模块4将原来基于tanh的激活函数修改为基于erf的激活函数,原来的函数实现方式如下:
现将BERT模型的任一层的激活函数设置为高斯误差线性单元函数:
其中,x为使用激活函数的层的输入值,erf表示误差函数。
由于内存性能的热点之一是集中在激活函数的选择上,使用高斯误差线性单元函数可以有效地提高性能。在一个例子中,在多头自注意力机制层中和归一化层中使用上述基于erf的GELU激活函数;又如在另一个例子中,在前向反馈层中使用上述基于erf的GELU激活函数,均起到了加速BERT模型推理速度的效果。
表2:BERT模型应用实测速度对比表
本实施例以表2中的硬件配置为例,对BERT模型运行时的延迟进行实测,实测结果可以表征BERT模型的推理计算速度。实测结果表明,通过设置以上的优化系统使BERT模型的加速比达到了两倍。
本实施例提供的BERT模型的优化系统通过设置层算子合并模块、输出计算模块以及激活函数设置模块,实现了在BERT模型处理过程中通过算子融合、设置批量矩阵乘法以及优选激活函数等方式进行模型优化,再辅以前期的硬件层结构优化,提升了BERT模型的推理速度。该优化系统可以适用于所有BERT模型的应用场景和其他类似的模型,并可在智能客服平台等实用场景中较好地提升用户体验。
实施例3
图6为本发明实施例3提供的一种电子设备的结构示意图。电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现实施例1中的BERT模型的优化方法。图6显示的电子设备30仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图6所示,电子设备30可以以通用计算设备的形式表现,例如其可以为服务器设备。电子设备30的组件可以包括但不限于:上述至少一个处理器31、上述至少一个存储器32、连接不同系统组件(包括存储器32和处理器31)的总线33。
总线33包括数据总线、地址总线和控制总线。
存储器32可以包括易失性存储器,例如随机存取存储器(RAM)321和/或高速缓存存储器322,还可以进一步包括只读存储器(ROM)323。
存储器32还可以包括具有一组(至少一个)程序模块324的程序/实用工具325,这样的程序模块324包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
处理器31通过运行存储在存储器32中的计算机程序,从而执行各种功能应用以及数据处理,例如本发明实施例1中的BERT模型的优化方法。
电子设备30也可以与一个或多个外部设备34(例如键盘、指向设备等)通信。这种通信可以通过输入/输出(I/O)接口35进行。并且,模型生成的设备30还可以通过网络适配器36与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图6所示,网络适配器36通过总线33与模型生成的设备30的其它模块通信。应当明白,尽管图中未示出,可以结合模型生成的设备30使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID(磁盘阵列)系统、磁带驱动器以及数据备份存储系统等。
应当注意,尽管在上文详细描述中提及了电子设备的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
实施例4
本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,程序被处理器执行时实现实施例1中的BERT模型的优化方法中的步骤。
其中,可读存储介质可以采用的更具体可以包括但不限于:便携式盘、硬盘、随机存取存储器、只读存储器、可擦拭可编程只读存储器、光存储器件、磁存储器件或上述的任意合适的组合。
在可能的实施方式中,本发明还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行实现实施例1中的BERT模型的优化方法中的步骤。
其中,可以以一种或多种程序设计语言的任意组合来编写用于执行本发明的程序代码,程序代码可以完全地在用户设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户设备上部分在远程设备上执行或完全在远程设备上执行。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。
Claims (10)
1.一种BERT模型的优化方法,其特征在于,所述优化方法包括:
将所述BERT模型每个层包含的所有算子分别合并为一个对应的层算子,所述层算子的数量和所述BERT模型的层数相同;每个层算子分别用于所述BERT模型中对应层的运算。
2.如权利要求1所述的BERT模型的优化方法,其特征在于,所述优化方法还包括:将所有的层算子合并为一个总算子。
3.如权利要求1所述的BERT模型的优化方法,其特征在于,所述BERT模型包括多头自注意力机制层,所述优化方法还包括:在多头自注意力机制层中调用批量矩阵乘法,所述批量矩阵乘法用于对目标字向量、上下文向量和上下文值向量进行处理以获得所述多头自注意力机制层的输出结果。
5.一种BERT模型的优化系统,其特征在于,所述优化系统包括:
层算子合并模块,用于将所述BERT模型的每个层包含的所有算子分别合并为一个对应的层算子,所述层算子的数量和所述BERT模型的层数相同;每个层算子分别用于所述BERT模型中对应层的运算。
6.如权利要求5所述的BERT模型的优化系统,其特征在于,所述优化系统还包括:
总算子合并模块,用于将所有的层算子合并为一个总算子。
7.如权利要求5所述的BERT模型的优化系统,其特征在于,所述BERT模型包括多头自注意力机制层,所述优化系统还包括:
输出计算模块,用于在多头自注意力机制层中调用批量矩阵乘法,所述批量矩阵乘法用于对目标字向量、上下文向量和上下文值向量进行处理以获得所述多头自注意力机制层的输出结果。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1-4中任一项所述的BERT模型的优化方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-4中任一项所述的BERT模型的优化方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011517527.3A CN112506523A (zh) | 2020-12-21 | 2020-12-21 | Bert模型的优化方法及系统、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011517527.3A CN112506523A (zh) | 2020-12-21 | 2020-12-21 | Bert模型的优化方法及系统、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112506523A true CN112506523A (zh) | 2021-03-16 |
Family
ID=74922679
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011517527.3A Pending CN112506523A (zh) | 2020-12-21 | 2020-12-21 | Bert模型的优化方法及系统、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112506523A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113297860A (zh) * | 2021-06-24 | 2021-08-24 | 上海携旅信息技术有限公司 | 机器翻译模型的优化方法、系统、电子设备和存储介质 |
CN113900923A (zh) * | 2021-08-16 | 2022-01-07 | 中国人民解放军战略支援部队信息工程大学 | 一种跨指令集架构的二进制函数相似性检查系统及方法 |
CN116362316A (zh) * | 2023-05-29 | 2023-06-30 | 成都阿加犀智能科技有限公司 | 一种模型转换方法、装置、存储介质及电子设备 |
CN116401502A (zh) * | 2023-06-09 | 2023-07-07 | 之江实验室 | 一种基于NUMA系统特性优化Winograd卷积的方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013030940A (ja) * | 2011-07-27 | 2013-02-07 | Sharp Corp | 送信装置、受信装置、および通信システム |
CN109697500A (zh) * | 2018-12-29 | 2019-04-30 | 北京中科寒武纪科技有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN110956252A (zh) * | 2018-09-27 | 2020-04-03 | 第四范式(北京)技术有限公司 | 执行多个神经网络的计算的方法和计算装置 |
CN111931917A (zh) * | 2020-08-20 | 2020-11-13 | 浙江大华技术股份有限公司 | 前向计算的实现方法及装置、存储介质、电子装置 |
-
2020
- 2020-12-21 CN CN202011517527.3A patent/CN112506523A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013030940A (ja) * | 2011-07-27 | 2013-02-07 | Sharp Corp | 送信装置、受信装置、および通信システム |
CN110956252A (zh) * | 2018-09-27 | 2020-04-03 | 第四范式(北京)技术有限公司 | 执行多个神经网络的计算的方法和计算装置 |
CN109697500A (zh) * | 2018-12-29 | 2019-04-30 | 北京中科寒武纪科技有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN111931917A (zh) * | 2020-08-20 | 2020-11-13 | 浙江大华技术股份有限公司 | 前向计算的实现方法及装置、存储介质、电子装置 |
Non-Patent Citations (6)
Title |
---|
DAN HENDRYCKS等: ""GAUSSIAN ERROR LINEARUNITS"", 《HTTPS://ARXIV.ORG/PDF/1606.08415V4.PDF》 * |
DAN HENDRYCKS等: ""GAUSSIAN ERROR LINEARUNITS"", 《HTTPS://ARXIV.ORG/PDF/1606.08415V4.PDF》, 8 July 2020 (2020-07-08), pages 1 - 2 * |
姜卫平: "《GNSS基准站网数据处理方法与应用》", 30 March 2017, 武汉大学出版社, pages: 65 - 69 * |
新智元: ""Pytorch 1.1.0驾到!小升级大变动,易用性更强,支持自定义RNN"", 《HTTPS://MP.WEIXIN.QQ.COM/S/_87NZE16YXDWAOV0QLTGUW》 * |
新智元: ""Pytorch 1.1.0驾到!小升级大变动,易用性更强,支持自定义RNN"", 《HTTPS://MP.WEIXIN.QQ.COM/S/_87NZE16YXDWAOV0QLTGUW》, 2 May 2019 (2019-05-02) * |
高扬: "《人工智能与机器人先进技术丛书 智能摘要与深度学习》", 31 July 2019, 北京理工大学出版社, pages: 48 - 54 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113297860A (zh) * | 2021-06-24 | 2021-08-24 | 上海携旅信息技术有限公司 | 机器翻译模型的优化方法、系统、电子设备和存储介质 |
CN113900923A (zh) * | 2021-08-16 | 2022-01-07 | 中国人民解放军战略支援部队信息工程大学 | 一种跨指令集架构的二进制函数相似性检查系统及方法 |
CN116362316A (zh) * | 2023-05-29 | 2023-06-30 | 成都阿加犀智能科技有限公司 | 一种模型转换方法、装置、存储介质及电子设备 |
CN116362316B (zh) * | 2023-05-29 | 2023-12-12 | 成都阿加犀智能科技有限公司 | 一种模型转换方法、装置、存储介质及电子设备 |
CN116401502A (zh) * | 2023-06-09 | 2023-07-07 | 之江实验室 | 一种基于NUMA系统特性优化Winograd卷积的方法及装置 |
CN116401502B (zh) * | 2023-06-09 | 2023-11-03 | 之江实验室 | 一种基于NUMA系统特性优化Winograd卷积的方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112506523A (zh) | Bert模型的优化方法及系统、电子设备及存储介质 | |
EP3754495B1 (en) | Data processing method and related products | |
Jankov et al. | Declarative recursive computation on an rdbms, or, why you should use a database for distributed machine learning | |
Catanzaro et al. | A map reduce framework for programming graphics processors | |
Liu et al. | Speculative segmented sum for sparse matrix-vector multiplication on heterogeneous processors | |
Dai et al. | Reveal training performance mystery between TensorFlow and PyTorch in the single GPU environment | |
Zhou et al. | {PetS}: A unified framework for {Parameter-Efficient} transformers serving | |
CN113168583A (zh) | 在量子计算仿真中用于测量的门融合 | |
Wang et al. | Deep learning at scale and at ease | |
Gu et al. | Improving execution concurrency of large-scale matrix multiplication on distributed data-parallel platforms | |
Gadiyar et al. | Artificial intelligence software and hardware platforms | |
KR20230084089A (ko) | 트랜스포머 기반 생성 작업들에 대한 추론 시스템을 위한 동적 배칭 | |
CN114995994A (zh) | 任务处理方法及系统 | |
Sun et al. | Stronghold: fast and affordable billion-scale deep learning model training | |
Sun et al. | Evaluating performance, power and energy of deep neural networks on CPUs and GPUs | |
Hou et al. | RVTensor: a light-weight neural network inference framework based on the RISC-V architecture | |
Dai et al. | Liger Kernel: Efficient Triton Kernels for LLM Training | |
KR102498595B1 (ko) | 트랜스포머 기반 생성 작업들에 대한 추론 시스템을 위한 선택적 배칭 | |
He et al. | HOME: A holistic GPU memory management framework for deep learning | |
Wang et al. | Auto-MAP: A DQN framework for exploring distributed execution plans for DNN workloads | |
Stratikopoulos et al. | Transparent acceleration of Java-based deep learning engines | |
Rahmani et al. | RTLB_Sched: Real Time Load Balancing Scheduler for CPU-GPU Heterogeneous Systems | |
Zhang et al. | Benchmarking and In-depth Performance Study of Large Language Models on Habana Gaudi Processors | |
Bai et al. | Gtco: Graph and tensor co-design for transformer-based image recognition on tensor cores | |
Zhang et al. | EdgeNN: Efficient Neural Network Inference for CPU-GPU Integrated Edge Devices |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210316 |
|
RJ01 | Rejection of invention patent application after publication |