CN113297860A - 机器翻译模型的优化方法、系统、电子设备和存储介质 - Google Patents
机器翻译模型的优化方法、系统、电子设备和存储介质 Download PDFInfo
- Publication number
- CN113297860A CN113297860A CN202110702102.8A CN202110702102A CN113297860A CN 113297860 A CN113297860 A CN 113297860A CN 202110702102 A CN202110702102 A CN 202110702102A CN 113297860 A CN113297860 A CN 113297860A
- Authority
- CN
- China
- Prior art keywords
- matrix
- machine translation
- translation model
- operators
- splicing
- 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
- 238000013519 translation Methods 0.000 title claims abstract description 86
- 238000000034 method Methods 0.000 title claims abstract description 77
- 239000011159 matrix material Substances 0.000 claims abstract description 166
- 238000004364 calculation method Methods 0.000 claims abstract description 63
- 230000008569 process Effects 0.000 claims abstract description 41
- 230000009466 transformation Effects 0.000 claims abstract description 35
- 238000005457 optimization Methods 0.000 claims abstract description 32
- 230000004927 fusion Effects 0.000 claims abstract description 29
- 238000004590 computer program Methods 0.000 claims description 9
- 238000007499 fusion processing Methods 0.000 claims description 7
- 230000006870 function Effects 0.000 description 20
- 238000010586 diagram Methods 0.000 description 7
- 239000013598 vector Substances 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000017105 transposition Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000011056 performance test Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/40—Processing or translation of natural language
- G06F40/58—Use of machine translation, e.g. for multi-lingual retrieval, for server-side translation for client devices or for real-time translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Medical Informatics (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Machine Translation (AREA)
Abstract
本发明公开了一种机器翻译模型的优化方法、系统、电子设备和存储介质,涉及模型优化领域。所述优化方法包括:对模型中涉及的初始算子进行融合,减少模型中的算子数量,进而得到模型的最终算子,融合后的最终算子减少了计算模块算子之间来回调用、启动所带来的时间开销,提高了运算效率;对模型中融合后的部分算子进行计算逻辑顺序调整,减少算子调用的同时,又减少了乘法操作,进一步进行运算融合和计算逻辑优化;对至少两个计算过程矩阵,采用矩阵列变换、矩阵乘法实现内存拼接,进而实现矩阵拼接运算,减少内存拷贝,实现内存拼接优化,提高运算性能。
Description
技术领域
本发明涉及模型优化领域,尤其涉及一种机器翻译模型的优化方法、系统、电子设备和存储介质。
背景技术
机器翻译是通过计算机将一种自然语言的句子翻译成另一种自然语言的句子的翻译方式,现有机器翻译模型,主要是基于Transformer(一种机器模型)结构,可分为Embedding(嵌入)、Encode(编码)和Decode(解码)等部分组成,模型初始以Tensorflow API(Application Programming Interface,应用程序编程接口)实现各个算子运算过程。Decode的总体耗时占用最大,同时存在解码速度慢、不能很好地满足实时响应等难题,因此针对机器翻译模型解码(Decode)的优化成为模型优化的关键,Transformer模型结构存在着大量的矩阵运算(算子),计算与存储的优化更是成为一个待解决的难题,在机器翻译模型的运算过程中,需要进行大量的算子调用,算子的启动和运算都占用了大量内存空间,内存拷贝又会增大时间消耗,也会导致整体计算性能下降。
发明内容
本发明要解决的技术问题是为了克服现有技术中机器翻译模型的运算过程中,需要进行大量的算子调用,算子的启动和运算都占用了大量内存空间,整体计算性能较低的缺陷,提供一种机器翻译模型的优化方法、系统、电子设备和存储介质。
本发明是通过下述技术方案来解决上述技术问题:
第一方面,提供一种机器翻译模型的优化方法,所述优化方法包括:
一种机器翻译模型的优化方法,所述优化方法包括:
确定所述机器翻译模型所采用的初始算子;
对所述机器翻译模型所采用的n个初始算子中的全部或者部分算子进行算子融合处理,得到m个融合算子,其中,n>m;
对m个融合算子中的部分算子进行计算逻辑顺序调整,将经过计算逻辑顺序调整的m个融合算子作为所述机器翻译模型的最终算子。
较佳地,所述部分算子包括与计算相对位置编码相关的算子。
较佳地,机器翻译模型的优化方法还包括:
对至少两个计算过程矩阵,进行直接内存拼接,得到中间矩阵;其中,所述两个计算过程矩阵是根据所述机器翻译模型的输入参数得到;
使用列变换矩阵与中间矩阵进行矩阵乘法运算,实现对所述至少两个计算过程矩阵的矩阵内存拼接。
较佳地,所述列变换矩阵是与所述中间矩阵的列数相同的单位矩阵,用于实现中间矩阵数据的列变换。
第二方面,提供一种机器翻译模型的优化系统,包括:
确定模块,用于对所述机器翻译模型进行解析,以确定所述机器翻译模型所采用的初始算子;
融合模块,用于对所述机器翻译模型所采用的n个初始算子中的全部或者部分算子进行算子融合处理,得到m个融合算子,其中,n>m;
调整模块,用于对m个融合算子中的部分算子进行计算逻辑顺序调整,将经过计算逻辑顺序调整的m个融合算子作为所述机器翻译模型的最终算子。
较佳地,机器翻译模型的优化系统中调整模块的部分算子包括与计算相对位置编码相关的算子。
较佳地,所述初始算子包括矩阵拼接算子,所述系统还包括:
拼接模块,用于对至少两个计算过程矩阵,进行直接内存拼接,得到中间矩阵;其中,所述两个计算过程矩阵是根据所述机器翻译模型的输入参数得到;
运算模块,用于使用列变换矩阵与中间矩阵进行矩阵乘法运算,实现对所述至少两个计算过程矩阵的矩阵内存拼接。
较佳地,所述列变换矩阵是与所述中间矩阵的列数相同的单位矩阵,用于实现中间矩阵数据的列变换。
第三方面,提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述任一项所述机器翻译模型的方法。
第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现上述任一所述机器翻译模型的方法的步骤。
本发明的积极进步效果在于:
通过对机器翻译模型的算子进行融合以及计算逻辑顺序的调整,实现了对机器翻译模型的优化,在使用该机器翻译模型进行语言翻译时,可以减少各个算子之间来回调用、启动所带来的时间开销,提高了运算效率;通过计算逻辑顺序的调整,减少函数调用的同时,又减少了乘法操作。
附图说明
图1为本发明一示例性实施例提供的一种机器翻译模型的优化方法的流程图;
图2为本发明一示例性实施例提供的机器翻译模型的优化方法中实现矩阵拼接运算的流程图;
图3为本发明一示例性实施例提供的一种机器翻译模型未优化前,原模型Tensorflow的tf.concat矩阵拼接过程示意图;
图4为本发明一示例性实施例提供的一种机器翻译模型的优化方法中使用矩阵乘法进行矩阵拼接的过程示意图;
图5为本发明一示例性实施例提供的机器翻译模型的优化系统的结构示意图;
图6位本发明一示例性实施例提供的一种电子设备结构示意图。
具体实施方式
下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
图1是本发明一示例性实施例提供的一种机器翻译模型的优化方法的流程图,该方法包括以下步骤:
步骤101、确定所述机器翻译模型所采用的初始算子。
在一个实施例中,机器翻译模型可以但不限于是基于Transformer结构的模型,借助开发人员提供的机器翻译模型的开发信息确定机器翻译模型所采用的初始算子。
其中,基于Transformer结构的模型,该机器翻译模型,以Tensorflow API(Application Programming Interface,应用程序编程接口)实现各个算子的运算,模型初始运行时,获取模型中的算子,算子包括:矩阵转置算子(transpose)、矩阵乘法算子(matmul、multiply)、平滑算子(layer_norm)、维度变换算子(reshape)、矩阵加法算子(add)、矩阵拼接算子(concat)、归一化指数算子(softmax)及整流线性单位算子(relu)、计算相对位置编码相关的算子等。通过各个算子的运算,实现机器翻译模型的整体运行。
对于机器翻译模型,首先需要利用词嵌入技术(embedding algrithm),将句子(机器翻译模型的输入参数)中的每一个词映射为一个向量,两者之间一一对应,比如可以是一个长度为512的行向量,那么对于一个含有n个单词的句子,就是一个由n个行向量组成的列表(也可以认为是一个n×512的矩阵),为了后续的计算方便,将n设为训练集中最长句子的长度。
可是仅仅这样还不够,因为一个单词除了它本身的含义外,它在句子中的位置也同样会对翻译造成影响,因此需要在词向量中加入位置信息,在这里采用的是位置编码的方法,得到了关于位置信息的矩阵,该位置矩阵与具体的单词无关,对于相同长度的句子,其位置矩阵相同。将位置矩阵加到句子矩阵中,就可以得到包含位置信息的句子矩阵,即相对位置编码矩阵。
步骤102、对所述机器翻译模型所采用的n个初始算子中的全部或者部分算子进行算子融合处理,得到m个融合算子,其中,n>m。
在一个实施例中,通过算子改写实现对机器翻译模型的算子的融合。算子改写可以但不限于采用CUDA Kernel(一种函数),即以CUDA Kernel的形式实现各个算子的数学计算过程。
下面以对机器翻译模型的部分算子,例如计算相对位置编码相关的算子,进行算子融合处理为例,简单介绍采用CUDA Kernel实现算子融合的过程。
在Transformer模型的编码机制中,同时包括了语义信息(Multi-HeadAttention)和位置信息(Positional Encoding),模型中每个词的位置先后顺序对应位置编码,而未对每个词的位置先后顺序进行建模。为克服这一缺点文中引入位置编码,其具体操作时在Embedding对应位加上位置编码。
采用CUDA进行计算加速,使用C++对除矩阵拼接(concat)以外的其余算子均进行CUDA Kernel改写,即以CUDA Kernel的形式实现各个算子的数学计算过程。
CUDA的软件架构由网格(Grid)、线程块(Block)和线程(Thread)组成,相当于把GPU上的计算单元分为若干个网格,每个网格内包含若干个线程块(即GPU每个Block最多是1024个Thread),每个线程块包含若干个线程。
Kernel在CUDA中指的是一个函数,一个Kernel对应一个网格;一个网格由多个线程块组成,可以表示成一维,二维,三维线程块;一个线程块包含很多线程;当一个Kernel被调用的时候,GPU会同时启动很多个线程来执行这一个Kernel,这样就实现了并行化。
基于CUDA Kernel对各个子算子改写中,使得部分函数的线程块的维度保持在其最大值(即1024维,也是线程块所能支持的最大线程数),充分利用GPU计算资源的计算性能,网格内的线程块并行及线程块内的线程并行均加速了整体计算性能。
算子是一个函数空间到函数空间上的映射,广义的讲,对任何函数进行某一项操作都可以认为是一个算子。
使用Tensorflow API获取计算相对位置编码矩阵相关的算子,使用tf.range函数初始化相对位置值,使用tf.clip_by_value函数获取算子矩阵中对应各个位置的相对位置编码值,使用CUDA Kernel改写,将前述两个函数合并改写为一个get_position_matrixcuda函数,在函数内实现以上两种计算,即通过将2个算子融合为1个算子,在使用的过程中,减少了算子之间来回调用、启动所带来的开销。
通过将多个函数运算融合为一个(如:前述“计算相对位置矩阵”,使用CUDAKernel改写,将两个tf.range函数和tf.clip_by_value函数融合成一个get_position_matrix cuda函数),减少了各个计算模块函数内算子之间来回调用、启动所带来的时间开销,提高了运算效率。
步骤103、对m个融合算子中的部分算子进行计算逻辑顺序调整,将经过计算逻辑顺序调整的m个融合算子作为所述机器翻译模型的最终算子。
在一个实施例中,可以但不限于通过Cublas实现调整算子的计算逻辑顺序。Cublas是CUDA中使用广泛的一个编程库,主要用于解决线性代数运算,Cublas API提供多种函数运算。对融合后的算子,可以调整计算逻辑顺序,减少算子调用的同时,又减少了乘法操作,进一步进行运算融合。
下面详细介绍对与计算相对位置编码相关的算子进行计算逻辑顺序调整的实现方式。
加法运算相对于乘法运算,计算时间会更短,故尽可能减少乘法运算的次数,可进一步加速计算性能。在“相对位置编码”的CUDA实现过程中,原始实现是“先乘后加”,可修改为“先加后乘”。q*k与相对位置编码两个过程融合,由“2次乘法1次加法”变为“1次加法1次乘法”,从而减少了乘法次数,现进一步优化加速。其中,q与k分别表示2个矩阵。
下面以矩阵q(1,2,128,64)、矩阵k(1,12,256,64)、矩阵embedding_key(1,256,64)为例,介绍算子的计算逻辑顺序调整过程。
原始相对位置编码过程:
1)首先进行q与k的乘法
attention_score=q*kT
即:(1,2,128,64)*(1,12,64,256)=(1,12,128,256);
其中,kT表示k的转置矩阵。
2)q转置及维度变换获得qT_r,维度为(128,12,64);
其中qT表示q的转置矩阵。
3)相对位置编码:relative=qT_r*embedding_keyT
即:(128,12,64)*(1,64,256)=(128,12,256)
其中embedding_keyT是embedding_key的转置矩阵。
4)经转置及维度变换获得与relative_rT,其维度为(1,12,128,256)
最终结果为:
attention_score=attention_score+relative_rT,
即:(1,12,128,256)+(1,12,128,256)=(1,12,128,256)
其中relative_rT是relative_r的转置矩阵。
优化后:
1)先进行k与embedding_key的加法k=k+embedding_key
即:(1,12,256,64)+(1,256,64)=(1,12,256,64)
2)再进行矩阵乘法attention_score=q*kT
即:(1,12,128,256)*(1,12,64,256)=(1,12,128,256)
实现q与k乘法的同时,也完成了相对位置编码。
如上所示,计算逻辑优化后的相对位置编码,既去掉了转置及维度变换运算,又减少了一半的乘法运算,实现计算逻辑优化。
在原始模型实现时,引入了大量的转置及维度转换操作,虽然适应了计算过程不同维度的要求,但却带来了不必要的额外延迟。在CUDA改写中,Cublas提供了可以通过指针索引抽取矩阵块进行矩阵乘法的API,故可实现计算过程中对不同维度的数据的计算处理,从而减少转置及维度转换操作,进一步降低了延迟。
在一个实施例中,优化方法还包括:对机器翻译模型中的至少两个计算过程矩阵,使用矩阵乘法运算实现矩阵拼接(concat)运算,结合图2,具体包括以下步骤:
201、对至少两个计算过程矩阵,进行直接内存拼接,得到中间矩阵;其中,所述两个计算过程矩阵是根据所述机器翻译模型的输入参数得到。
模型获取的输入参数,即输入模型中的待翻译语言。语言在计算机内存中体现为不同地址中存放的矩阵数据,该矩阵数据称为计算过程矩阵。
矩阵数据存放在计算机内存中,各个矩阵数据对应各自相应的内存地址,每个矩阵数据其自身的内存地址是连续的,不同的矩阵,存放的内存地址各不相同,对两个计算过程矩阵进行直接内存拼接,是指将两个计算过程矩阵各自对应的内存地址,直接存储在地址相邻的内存中,使其在计算机内存中整体地址连续。
举例来说,假设两个计算过程矩阵是矩阵A和B,采用直接内存拼接,拼接后形成中间矩阵C',直接内存拼接得到的矩阵C',其在内存中的存储方式,与机器翻译模型优化前直接应用Tensorflow的矩阵拼接算子tf.concat运算结果并不相同,因此,需要对矩阵C'进行列变换,以列变换矩阵D与矩阵C'进行相乘,列变换矩阵D是与中间矩阵C'列数相同的单位矩阵,应用CUDA中Cublas高性能的矩阵乘法库,实现中间矩阵C'与列变换矩阵D的矩阵乘法,得到目标矩阵C,最终得出与Tensorflow的矩阵拼接算子tf.concat运算结果相同的矩阵C。在直接内存拼接的基础上,结合矩阵列变换,使用CUDA中的Cublas API进行运算,得到所需的目标矩阵数值,实现内存拼接,进而实现矩阵拼接运算。
如图3所示,优化前的机器翻译模型基于Tensorflow的矩阵拼接算子tf.concat,其适应了Tensorflow平台及Python语言的矩阵按列存储格式,对应于内存中其实现过程如下:
全1矩阵A,其维度为(1,12,128,64),其于物理内存中的存储方式为:以(128,64)为存储单元,按照batch的方式将矩阵A分为1*12个batch,依次对应前两维(0,0),(0,1),(0,2),……,(0,10)、(0,11),而对于(128,64)的存储单元,其存储以64为单位,以128为batch依次进行,从而实现对矩阵A的存储。全0矩阵B,其维度为(1,12,128,64),存储方式与A相同。
对矩阵A与矩阵B进行tf.concat运算,以第三维进行矩阵拼接,获得矩阵C,其维度为(1,12,256,64)。矩阵C的存储格式与A、B均相同,以第三维进行拼接,为“分段拼接”进行,即针对一个存储单元(256,64),其前128*64个矩阵元素来自于矩阵A,全为1,即(0:128,0:64)部分为1,而后128*64个矩阵元素来自于矩阵B,全为0,即(128:256,0:64)部分为0。整体实现过程如图3所示。
计算得到的矩阵A和B,如果采用直接内存拼接,并不能得到与tf.concat相匹配的结果,如图4中“直接内存拼接”所示。
如图4所示,对于直接拼接得到的矩阵C',其维度为(1,12,256,64),在其物理内存中,前1*12*128*64个矩阵元素为1,即(0,0:6,0:256,0:64)值为1,后1*12*128*64个矩阵元素为0,即(0,6:12,0:256,0:64)值为0。
202、使用列变换矩阵与中间矩阵进行矩阵乘法运算,实现对所述至少两个计算过程矩阵的矩阵内存拼接。
为了实现与tf.concat相匹配的存储结果,需要对矩阵进行矩阵变换,即以设计的列变换矩阵与C'进行矩阵乘法,以获得所需的结果。首先,将C'由1*12*256*64的四维矩阵,视为(128*64)*24的二维矩阵,应用Cublas高性能的batch矩阵乘法库,进行矩阵乘法,乘以24*24的列变换矩阵,得到与tf.concat结果一致的矩阵C,其过程如图4所示。
以下为矩阵列变换的相关描述,设M为q*p的矩阵,N为p*s的矩阵,则矩阵M与矩阵N的乘积为q*s的矩阵,其第i行第j列的元素可表示如下:
矩阵列变换,即矩阵右乘列变换矩阵,得到所需的列变换结果。列变换矩阵则可基于单位矩阵获得。如下所示,矩阵M由数字1-9组成3*3的矩阵,单位阵I的维度也是3*3,则有MI=M。交换单位矩阵I的第2列和第3列,得到I’,则有MI’=M’,M’与M相比较,也交换了第2列和第3列,如下所示:
对除矩阵拼接(concat)以外的其余算子均进行CUDA Kernel改写,使用直接内存拼接、矩阵列变换,结合CUDA Cublas API矩阵乘法运算进行的内存拼接方式,实现的矩阵拼接运算,结合前述实施例中的计算顺序调整,可以减少内存拷贝的时间,减少乘法次数,进一步的提高运算性能。
相比于直接使用CUDA Kernel,应用内存拷贝进行直接内存拼接,对机器翻译模型涉及的矩阵拼接算子(concat)进行融合改写,实现矩阵拼接运算相比,本发明实施例使用的对除矩阵拼接(concat)以外的其余算子均进行CUDA Kernel改写,使用直接内存拼接、矩阵列变换,结合CUDA Cu blas API矩阵乘法运算进行的内存拼接方式,实现的矩阵拼接运算,能够获得进一步的5%到10%的运算性能提升,证明矩阵列变换、矩阵乘法实现矩阵拼接的有效性。
在计算逻辑的优化调整中,针对“相对位置编码”的优化,以“先加后乘”替换“先乘后加”计算逻辑,实现q*k与相对位置编码的融合,该部分可实现进一步的1.6倍的计算加速。
对基于Transformer结构的机器翻译模型进行以上整体方案优化(包括改写融合、列变换内存拼接、计算逻辑顺序调整优化),与Tensorflow实现的原模型对比,使用相同的测试数据集进行性能测试,结果如表一所示:
表一 机器翻译模型优化前后延迟对比
解码token长度 | Tensorflow原模型(ms) | CUDA优化后的模型(ms) |
9 | 185 | 100 |
17 | 249 | 191 |
由表一可以看出,经优化后的模型,在数据延迟明显降低,证明了本发明——一种机器翻译模型的优化方法的有效性。
与前述机器翻译模型的优化方法实施例相对应,本发明还提供了机器翻译模型的优化系统的实施例。
图5为本发明一示例性实施例提供的机器翻译系统的结构示意图,该系统包括:
确定模块51,用于对所述机器翻译模型进行解析,以确定所述机器翻译模型所采用的初始算子;
融合模块52,用于对所述机器翻译模型所采用的n个初始算子中的全部或者部分算子进行算子融合处理,得到m个融合算子,其中,n>m;
调整模块53,用于对m个融合算子中的部分算子进行计算逻辑顺序调整,将经过计算逻辑顺序调整的m个融合算子作为所述机器翻译模型的最终算子。
可选地,所述调整模块,用于对m个融合算子中的与计算相对位置编码相关的算子进行计算逻辑顺序调整,将经过计算逻辑顺序调整的m个融合算子作为所述机器翻译模型的最终算子。
可选地,所述优化系统还包括拼接模块和计算模块;
所述拼接模块54,用于对至少两个计算过程矩阵,进行直接内存拼接,得到中间矩阵;其中,所述两个计算过程矩阵是根据所述机器翻译模型的输入参数得到;
运算模块55,用于使用列变换矩阵与中间矩阵进行矩阵乘法运算,实现对所述至少两个计算过程矩阵的矩阵内存拼接。
可选地,所述拼接模块中的列变换矩阵,是与中间矩阵的列数相同的单位矩阵,用于实现中间矩阵数据的列变换。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
图6是本发明一示例实施例示出的一种电子设备的结构示意图,示出了适于用来实现本发明实施方式的示例性电子设备60的框图。图6显示的电子设备60仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图6所示,电子设备60可以以通用计算设备的形式表现,例如其可以为服务器设备。电子设备60的组件可以包括但不限于:上述至少一个处理器61、上述至少一个存储器62、连接不同系统组件(包括存储器62和处理器61)的总线63。
总线63包括数据总线、地址总线和控制总线。
存储器62可以包括易失性存储器,例如随机存取存储器(RAM)621和/或高速缓存存储器622,还可以进一步包括只读存储器(ROM)623。
存储器62还可以包括具有一组(至少一个)程序模块624的程序工具625(或实用工具),这样的程序模块624包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
处理器61通过运行存储在存储器62中的计算机程序,从而执行各种功能应用以及数据处理,例如上述任一实施例所提供的方法。
电子设备60也可以与一个或多个外部设备64通信。这种通信可以通过输入/输出(I/O)接口65进行。并且,模型生成的电子设备60还可以通过网络适配器66与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器66通过总线63与电子设备60的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备60使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID(磁盘阵列)系统、磁带驱动器以及数据备份存储系统等。
应当注意,尽管在上文详细描述中提及了电子设备的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一实施例所提供的方法。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。
Claims (10)
1.一种机器翻译模型的优化方法,其特征在于,所述优化方法包括:
确定所述机器翻译模型所采用的初始算子;
对所述机器翻译模型所采用的n个初始算子中的全部或者部分算子进行算子融合处理,得到m个融合算子,其中,n>m;
对m个融合算子中的部分算子进行计算逻辑顺序调整,将经过计算逻辑顺序调整的m个融合算子作为所述机器翻译模型的最终算子。
2.根据权利要求1所述的机器翻译模型的优化方法,其特征在于,所述部分算子包括与计算相对位置编码相关的算子。
3.根据权利要求1所述的机器翻译模型的优化方法,其特征在于,所述优化方法还包括:
对至少两个计算过程矩阵,进行直接内存拼接,得到中间矩阵;其中,所述两个计算过程矩阵是根据所述机器翻译模型的输入参数得到;
使用列变换矩阵与中间矩阵进行矩阵乘法运算,实现对所述至少两个计算过程矩阵的矩阵内存拼接。
4.根据权利要求3所述的机器翻译模型的优化方法,其特征在于,
所述列变换矩阵是与所述中间矩阵的列数相同的单位矩阵,用于实现中间矩阵数据的列变换。
5.一种机器翻译模型的优化系统,其特征在于,包括:
确定模块,用于对所述机器翻译模型进行解析,以确定所述机器翻译模型所采用的初始算子;
融合模块,用于对所述机器翻译模型所采用的n个初始算子中的全部或者部分算子进行算子融合处理,得到m个融合算子,其中,n>m;
调整模块,用于对m个融合算子中的部分算子进行计算逻辑顺序调整,将经过计算逻辑顺序调整的m个融合算子作为所述机器翻译模型的最终算子。
6.根据权利要求5所述的机器翻译模型的优化系统,其特征在于,所述部分算子包括与计算相对位置编码相关的算子。
7.根据权利要求5所述的机器翻译模型的优化系统,其特征在于,所述初始算子包括矩阵拼接算子;所述优化系统还包括:
拼接模块,用于对至少两个计算过程矩阵,进行直接内存拼接,得到中间矩阵;其中,所述两个计算过程矩阵是根据所述机器翻译模型的输入参数得到;
运算模块,用于使用列变换矩阵与中间矩阵进行矩阵乘法运算,实现对所述至少两个计算过程矩阵的矩阵内存拼接。
8.根据权利要求7所述的机器翻译模型的优化系统,其特征在于,
所述列变换矩阵是与所述中间矩阵的列数相同的单位矩阵,用于实现中间矩阵数据的列变换。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4中任一项所述机器翻译模型的优化方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4任一所述的机器翻译模型的优化方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110702102.8A CN113297860A (zh) | 2021-06-24 | 2021-06-24 | 机器翻译模型的优化方法、系统、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110702102.8A CN113297860A (zh) | 2021-06-24 | 2021-06-24 | 机器翻译模型的优化方法、系统、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113297860A true CN113297860A (zh) | 2021-08-24 |
Family
ID=77329402
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110702102.8A Pending CN113297860A (zh) | 2021-06-24 | 2021-06-24 | 机器翻译模型的优化方法、系统、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113297860A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115905236A (zh) * | 2022-11-30 | 2023-04-04 | 深圳计算科学研究院 | 一种数据处理方法、装置、设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110378470A (zh) * | 2019-07-19 | 2019-10-25 | Oppo广东移动通信有限公司 | 神经网络模型的优化方法、装置以及计算机存储介质 |
CN110490309A (zh) * | 2019-08-14 | 2019-11-22 | 北京中科寒武纪科技有限公司 | 一种用于神经网络的算子融合方法及其相关产品 |
CN110659728A (zh) * | 2019-09-24 | 2020-01-07 | 上海寒武纪信息科技有限公司 | 神经网络优化方法、装置、计算机设备及存储介质 |
CN111401538A (zh) * | 2019-09-24 | 2020-07-10 | 上海寒武纪信息科技有限公司 | 一种数据处理方法、装置、计算机设备及存储介质 |
CN111401511A (zh) * | 2019-09-24 | 2020-07-10 | 上海寒武纪信息科技有限公司 | 一种数据处理方法、装置、计算机设备及存储介质 |
CN112506523A (zh) * | 2020-12-21 | 2021-03-16 | 上海携旅信息技术有限公司 | Bert模型的优化方法及系统、电子设备及存储介质 |
-
2021
- 2021-06-24 CN CN202110702102.8A patent/CN113297860A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110378470A (zh) * | 2019-07-19 | 2019-10-25 | Oppo广东移动通信有限公司 | 神经网络模型的优化方法、装置以及计算机存储介质 |
CN110490309A (zh) * | 2019-08-14 | 2019-11-22 | 北京中科寒武纪科技有限公司 | 一种用于神经网络的算子融合方法及其相关产品 |
CN110659728A (zh) * | 2019-09-24 | 2020-01-07 | 上海寒武纪信息科技有限公司 | 神经网络优化方法、装置、计算机设备及存储介质 |
CN111401538A (zh) * | 2019-09-24 | 2020-07-10 | 上海寒武纪信息科技有限公司 | 一种数据处理方法、装置、计算机设备及存储介质 |
CN111401511A (zh) * | 2019-09-24 | 2020-07-10 | 上海寒武纪信息科技有限公司 | 一种数据处理方法、装置、计算机设备及存储介质 |
CN112506523A (zh) * | 2020-12-21 | 2021-03-16 | 上海携旅信息技术有限公司 | Bert模型的优化方法及系统、电子设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
唐子惠: "《医学人工智能导论》", 30 April 2020 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115905236A (zh) * | 2022-11-30 | 2023-04-04 | 深圳计算科学研究院 | 一种数据处理方法、装置、设备及存储介质 |
CN115905236B (zh) * | 2022-11-30 | 2023-08-22 | 深圳计算科学研究院 | 一种数据处理方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112633419B (zh) | 小样本学习方法、装置、电子设备和存储介质 | |
CN112200300B (zh) | 卷积神经网络运算方法及装置 | |
KR102479264B1 (ko) | 트랜스포머 기반 생성 작업들에 대한 추론 시스템을 위한 동적 배칭 | |
US20220253672A1 (en) | Sparse attention neural networks | |
CN113222159B (zh) | 一种量子态的确定方法及装置 | |
CN114138231B (zh) | 执行矩阵乘法运算的方法、电路及soc | |
CN113297860A (zh) | 机器翻译模型的优化方法、系统、电子设备和存储介质 | |
CN114861907A (zh) | 数据计算方法、装置、存储介质和设备 | |
US20230359697A1 (en) | Tensor processing | |
CN113222160B (zh) | 一种量子态的转换方法及装置 | |
KR102498595B1 (ko) | 트랜스포머 기반 생성 작업들에 대한 추론 시스템을 위한 선택적 배칭 | |
CN115759098B (zh) | 一种航天文本数据的中文实体和关系联合抽取方法、系统 | |
CN113505838A (zh) | 一种图像聚类方法、装置、电子设备及存储介质 | |
CN113887721A (zh) | 一种语音识别任务中的训练后量化压缩方法及系统 | |
CN113760407A (zh) | 信息处理方法、装置、设备及存储介质 | |
CN113849592B (zh) | 文本情感分类方法及装置、电子设备、存储介质 | |
Liu et al. | Separable Binary Convolutional Neural Network on Embedded Systems | |
KR20230062008A (ko) | 트랜스포머 모델을 이용한 추론 방법 및 그 추론 방법을 수행하는 전자 장치 | |
CN115130471A (zh) | 摘要生成模型的训练方法、装置、设备及存储介质 | |
CN118520950A (zh) | 超长词元模型推理方法、装置、电子设备及存储介质 | |
CN116775293A (zh) | 数据处理方法、计算设备和存储介质 | |
KR20240129068A (ko) | 게이트형 어텐션 유닛을 갖는 어텐션 신경망 | |
CN118229509A (zh) | 一种适用dsp的图像处理优化方法、系统、设备及介质 | |
Thompson et al. | A CUDA implementation of the continuous space language model | |
CN116542325A (zh) | 神经网络模型的编译方法、推理方法、装置、设备和介质 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210824 |