《7-3 NiuTrans 多国语机器翻译系统.pdf》由会员分享,可在线阅读,更多相关《7-3 NiuTrans 多国语机器翻译系统.pdf(69页珍藏版)》请在三个皮匠报告上搜索。
1、NiuTrans多国语机器翻译系统杜权 小牛翻译 CTO|01背景介绍02多语言机器翻译构建方法03高性能机器翻译构建方法04模型压缩技术实践目录 CONTENT|01背景介绍机器翻译的发展历程|SMT vs NMT|统计机器翻译神经机器翻译训练时间训练数据推断时间CPU/GPU利用磁盘空间MoreMoreMoreMoreMoreLessLessLessLessLess其他特点翻译过程可以理解翻译过程不可解释译文忠于原文可能出现跑飞翻译复杂句子译文质量差译文流畅,可读性好机制以句子为单位以词、短语为单位注意力机制,编码-解码,网络优化统计分析,概率论机器翻译应用:文本翻译|u应用形式应用形式n
2、办公软件插件:Office/WPS.n文档翻译:word/ppt/excel/PDF.nCAT插件:memoQ/Trados/Tmxmall.n网页翻译插件:Google Chrome.机器翻译应用:文本翻译|辅助翻译人员辅助翻译人员嵌入其他应用嵌入其他应用新闻实事社交媒体游戏娱乐商务活动商务活动论文翻译会议材料翻译国际商务交流专利信息翻译辅助译员翻译辅助小语种翻译教育培训提供参考翻译机器翻译应用:多模态|视频字幕同传u处理对象处理对象:语音/图像数据u应用场景应用场景:n商务:国际会议、商务谈判.n教育:外语学习、课堂辅助交流.n娱乐:影视字幕、社交视频.n旅游:商场购物、餐馆点餐.n客服:
3、语音实时交流.会议实时翻译系统国际课堂交流旅游出行 机器翻译应用:多领域模型|通用基础大数据基础核心技术领域适应调优技术垂直领域小数据通用通用模型模型垂直垂直领域领域模型模型国际工程国际工程装备制造装备制造电力能源电力能源运输物流运输物流 航空航天航空航天金融证券金融证券新闻媒体新闻媒体文学出海文学出海在线客服在线客服出国旅游出国旅游跨境贸易跨境贸易社交平台社交平台5机器翻译应用:多种应用产品|模型庞大(2G/3G.)翻译效果最好需大量计算资源运行能耗高模型小巧(100M/50M.)翻译效果略逊一筹所需计算资源少,部署灵活运行能耗低适用芯片适用芯片模型大小模型大小应用产品应用产品全量模型压缩模
4、型各种小型智能设备各种小型智能设备各种各种CPU/NPU两大两大GPU各种云服务各种云服务|02多语言机器翻译构建方法动态课程学习|u静态课程学习n只需要计算一次难度u存在的问题n简单的难度准则无法准确衡量样本的难度n训练过程是动态的d4d3d2d1d1d2d1d4d3d2d1d3d2d1训练数据第1轮第2轮第3轮第4轮Dynamic Curriculum Learning for Low-Resource Neural Machine Translation.COLING2020.动态课程学习Dynamic Curriculum Learning for Low-Resource Neura
5、l Machine Translation.COLING2020.u动态课程学习n每个阶段基于当前模型重新衡量样本难度训练数据第1轮第2轮第3轮第4轮划分难度d4d3d2d1d4d3d2d1d1d2d1d3d2d1d4d3d2d1d4d3d2d1d4d3d2d1|动态课程学习样本难度|u样本难度n损失下降速度(;,1)=(;)=1(;1)(;)(;1)2n联合当前阶段和上一阶段综合衡量n样本的预测损失下降越快,模型越容易在未来将它学得更好n预测损失没有下降空间的样本不会被重复学习Dynamic Curriculum Learning for Low-Resource Neural Machin
6、e Translation.COLING2020.动态课程学习模型能力|u模型能力n基于校验集BLEU值的动态模型能力计算()=min(1,BLEUBLEU(1 0)+0)n0:初始的模型能力n:第t轮模型在校验集的BLEUn:标准NMT模型在校验集上的最佳性能n:控制课程进度的系数,越小则进度越快Dynamic Curriculum Learning for Low-Resource Neural Machine Translation.COLING2020.动态课程学习实验结果|u动态课程学习方法的收敛速度更快u富资源数据集收敛更快,但随着训练步数增多差距减小u困难样本的训练次数少,但更加
7、高效Dynamic Curriculum Learning for Low-Resource Neural Machine Translation.COLING2020.动态课程学习实验结果|Dynamic Curriculum Learning for Low-Resource Neural Machine Translation.COLING2020.MethodTh-EnZh-EnEn-Ja50K100K300K4.5MAvgBaseline18.7120.6412.339.2117.5623.8433.4917.05Length+Sqrt18.8920.5111.908.1616.67
8、23.8632.9616.67Rarity+Sqrt18.9220.6512.788.8316.5824.2333.1717.00Loss+DMC18.3420.7612.598.4617.0624.3533.3016.93Decline+DMC19.1321.1413.2410.6517.8924.3533.5217.73+Batching+Batching19.3221.2013.4712.9018.4424.45/18.3018.30u静态课程学习方法Length+Sqrt、Rarity+Sqrtu动态课程学习方法Loss+DMC、Decline+DMCu基于样本难度构造batch(+B
9、atching)无监督双语词典归纳|u无监督双语词典归纳法是通过两种语言word embedding去寻找互译词典的任务。u方法大多基于初始化和自学习。n初始化首先从word embedding构造词典。n然后refining源语词到目标语词的映射,再induction双语词典,如此交替进行。我 0.1,-0.3,0.5你-0.2,0.1,0.8好-0.9,-0.4,0.6and 0.2,-0.8,0.1I 0.3,0.4,0.7you-0.6,0.4,-0.6我-I你-youRefiningDictionaryInductionRefiningWord EmbeddingsInitializ
10、ationSourceTargetMappingA Simple and Effective Approach to Robust Unsupervised Bilingual Dictionary Induction.COLING2020.无监督双语词典归纳问题|u在两种相似语言上进行双语词典归纳取得很好的效果(如:英语-西班牙语)u在两种语言差距较大上进行双语词典归纳则难以接受甚至准确率0%(如:英语-日语)n初始化相似度与最小相似度之间的差距意味着在差距较大的两种语言上会失败。A Simple and Effective Approach to Robust Unsupervised B
11、ilingual Dictionary Induction.COLING2020.无监督双语词典归纳解决方法|u通过降维来简化embedding,从而减少初始化相似度与最小相似度之间的差距。uPCA只保留了影响方差最大的元素。uembedding应该均匀地分布在整个空间中,而在失败语言上则聚集在最高特征值附近u最简单的解决办法是丢弃最高特征值。A Simple and Effective Approach to Robust Unsupervised Bilingual Dictionary Induction.COLING2020.无监督双语词典归纳解决方法|u降维会导致信息丢失u提出了迭代
12、降维(IDR)算法u利用低维embedding初始化A Simple and Effective Approach to Robust Unsupervised Bilingual Dictionary Induction.COLING2020.无监督双语词典归纳实验结果|u相似语言n基线方法都表现良好n我们方法不会降低性能u差距较大语言n基线方法表现很差n我们方法取得了更好的结果A Simple and Effective Approach to Robust Unsupervised Bilingual Dictionary Induction.COLING2020.|03高性能机器翻译构
13、建方法训练更深的网络结构动态线性层聚合|u模型容量越大,性能越好u提升模型的方式变宽、变深DeepBaseBig(wide)u深层网络已经被证明是非常有效的Learning Deep Transformer Models for Machine Translation.ACL2019.训练更深的网络结构动态线性层聚合|Layer NormWeight Aggerate.X1123123Encoderu动态线性层聚合(动态线性层聚合(DLCL)n分别在编码端与解码端加入记忆网络存储中间层状态n第层网络输入不仅仅依赖于第 1层输出,而是动态地利用之前所有层表示Learning Deep Trans
14、former Models for Machine Translation.ACL2019.训练更深的网络结构动态线性层聚合|uTransformer-DLCLConventionalInitial weightlearning weightuConventional Transformern=1n=01n平均初始化各层n对于当前层,前面每层的贡献动态调整Learning Deep Transformer Models for Machine Translation.ACL2019.训练更深的网络结构动态线性层聚合|uTransformer-DLCLn在Pre-Norm和Post-Norm两种
15、情况下,当L=6时,DLCL均略优于基线n在Pre-Norm和Post-Norm两种情况下,DLCL可以训练更深的模型BaseBaseBLEUBLEU27.5028.81BigBigPost-NormPost-NormDLCL-6DLCL-6DLCL-25DLCL-2529.20BaseBaseBLEUBLEU27.1028.7027.31BigBigPre-NormPre-NormDLCL-6DLCL-6DLCL-30DLCL-3029.31Base-20Base-2028.90Base-20Base-20failedfailed27.60Learning Deep Transformer
16、Models for Machine Translation.ACL2019.深层网络训练加速由浅入深的训练|u模型加深或者数据量变大,都对训练造成极大代价。u动态线性层聚合(DLCL)减慢了训练速度例如,一个48层的带有DLCL的Transformer model变慢了1.87倍Shallow-to-Deep Training for Neural Machine Translation.EMNLP2020.深层网络训练加速由浅入深的训练|u浅层模型的特征表示更分散u随着深度的增加而模型各层的特征表示更近似u相邻层具有较高的相似性u层数越高越接近全局表示(a)(,0)=1=1(),0()(b
17、)(,+1)=1=1(),+1()(c)()=1=1(),)=1=1()Shallow-to-Deep Training for Neural Machine Translation.EMNLP2020.深层网络训练加速由浅入深的训练|:Encoder:Decoder:Copy operationstep1 step2 step3 step4 Model AModel BModel CFinal Modelstandardu复用较低层的学习参数u训练层的初始model au前层的参数从model A复制到model B,并将最上面的参数从A复制到Bu我们像往常一样继续训练模型B,并重复这个过程
18、Shallow-to-Deep Training for Neural Machine Translation.EMNLP2020.|=1=2=4:Layer:Block=u将每层组成一个Block,并在Block之间建立连接u当=时,就是标准Transformeru当=1时,就是标准Transformer-DLCLu可以用来平衡性能和速度深层网络训练加速由浅入深的训练Shallow-to-Deep Training for Neural Machine Translation.EMNLP2020.深层网络训练加速由浅入深的训练|=0.5 _ _1.5=0.5 _0.5u在训练叠加的新模型时,
19、将学习速率重置为最大值u然后根据每次堆叠中的当前训练步长递减u加快了训练速度,提高了精确度Shallow-to-Deep Training for Neural Machine Translation.EMNLP2020.深层网络训练加速由浅入深的训练TransformerTransformer-BigTransformerTraining TimeBLEUBaselineSDT24L24L-RPR48L48L-RPR8.666.166.719.8016.3811.7510.8519.5828.9529.3930.2129.4429.6029.3929.0230.03BaselineSDT24
20、L24L-RPR48L48L-RPRWMT En-De29.9029.9330.4030.4637.4118.3138.8018.5124L-RPR24LWMT En-De48.4333.8155.3237.5990.8555.35116.9264.4642.4042.6742.7542.8242.6942.4243.2943.08WMT En-FruSDT与从头训练的基线对比性能相当甚至更好,同时大幅度加速训练Shallow-to-Deep Training for Neural Machine Translation.EMNLP2020.训练更强的翻译模型ODE Transformer|u
21、从从Ensemble的角度解释:的角度解释:n残差连接可以被解释为不同子网络的聚合u从动力系统的角度解释:从动力系统的角度解释:n残差连接等价于常微分方程(ODE)中求解目标解析解的一阶欧拉方法nODE方程是一种用来描述函数与其导数之间关系的数学方程。与通常的代数代数方程的解不同,它的解不是数,而是符合方程关系的函数。sublayer1sublayer2sublayer3sublayer1sublayer1sublayer2sublayer1()=(),)残差网络是连续变换的欧拉离散化ODE Transformer:An Ordinary Differential Equation-Inspi
22、red Model for Sequence Generation.ACL2022.训练更强的翻译模型ODE Transformer|u如何建立残差连接与如何建立残差连接与Euler方法之间的联系:方法之间的联系:nPre-Norm的Transformer网络表示为:+1=+(),),其中(,)=(),),这里()是关于()与()的复合函数n和可以看作为关于的连续函数,当时间步发生变化时:我们可以得到(+)=()+(),()n指代了时间步的变化,这里我们称之为“step size”,当趋于0时,可以得到lim0(+)()=(),()n我们知道lim0(+)()=(),从而建立起()=(),()
23、关系建立起基于Pre-Norm的Transformer模型与一阶欧拉方法之间的关系ODE Transformer:An Ordinary Differential Equation-Inspired Model for Sequence Generation.ACL2022.u一阶一阶Euler方法并不完美:方法并不完美:nEuler方法的每一步解的近似是存在截断误差(Truncation Error),=(+1),这里指ODE方法的阶n显性建模方式层层堆叠会导致误差的累计Total=1,我们称之为全局误差n一个自然的想法是否可以通过减少每一个块的截断误差进而减少误差累计训练更强的翻译模型OD
24、E Transformer|全局误差截断误差1截断误差2截断误差6截断误差3截断误差1全局误差截断误差2n其中1 1,2 2,因此Total(=13)1亿13千万BLEU和人工评价下降5%10%GPU支持支持不支持/NPU翻译速度受限1000词/秒510词/秒提高翻译速度提高翻译速度提高翻译品质提高翻译品质模型结构分析|u95%以上的时间损耗在矩阵运算主要包括矩阵加法、矩阵乘法、矩阵点乘以及Softmax等操作u80%时间损耗在矩阵乘法矩阵乘法中CPU+GPUNiuTrans.NMTNiuTensorMatMal()支持设备类型机器翻译框架深度学习框架矩阵乘法函数CPU+GPUFairseqP
25、ytorchtorch.matmul()CPU+GPUTensor2TensorTensorflowtf.matmul()模型结构分析|160ms80ms720ms120ms0.03ms0.34ms(每层20ms)(每层120ms)以小设备芯片为例以小设备芯片为例隐层维度256FFN维度1024encoder层数6decoder层数6模型结构分析|注意力运算约占总时间的35%45%Encoder自注意力占总时间的8%12%Decoder自注意力占总时间的10%13%以小设备芯片为例以小设备芯片为例隐层维度256FFN维度1024encoder层数6decoder层数6Encoder-Decod
26、er注意力占总时间的17%20%矩阵运算速度优化模型存储与运算方式|32-bit float(S=1,E=8,M=23)8-bit fixed (S=0,E=0,M=8)Range:10381038Range:02551 0 1 0 0 1 0 0 0 1 1 0 1 0 0 1 0 0 0 1 0 1 0 1 1 0 1 1 1 0 1 10 1 0 0 1 0 016-bit float(S=1,E=5,M=10)Range:6.1 105655041 0 1 0 0 1 1 1 0 1 0 0 1 0 0 0FP32FP16INT8存储速度精度0矩阵运算速度优化FP16矩阵乘法|GEMM
27、inputoutputHGEMMinputoutput转换转换FP32FP16FP16FP32nFP32(float)转FP16(u_int16):如果x65504,y=65504否则标志位不变,指数减0 x70,尾数右移13位nFP16(u_int16)转FP32(float):标志位不变,指数加0 x70,尾数左移13位u模型大小减少50%u内存节约30%u速度提高1倍倍u翻译质量没有下降矩阵运算速度优化INT8的应用|模型训练权重量化后训练量化部分INT8推断全流程INT8推断反量化CPUNPUn对称量化:n非对称量化:量化:=(/)反量化:=量化:=(/)+反量化:=()矩阵运算速度优
28、化INT8矩阵乘法|GEMMinputoutputI8I32GEMMinputoutput量化反量化FP32INT8INT32FP32u模型大小减少75%u内存节约60%u速度提高1.5倍倍u翻译质量下降5%训练时每步将模型参数限制在-1,1对超出范围的部分进行截断weight.data.clamp_(-1,1)翻译质量下降0.5%矩阵运算速度优化CPU上全流程INT8推断|u面临的问题面临的问题nScale 不兼容l我们不能在单个操作中使用相同的FP32-to-INT8映射来处理INT8张量nINT8计算计算 不兼容l复杂网络中的一些函数不支持 INT8 类型计算,在这种情况下我们不得不求助
29、于 FP32 计算x1=Q(r1,s1)x2=Q(r2,s2)x1+x2 (r1+r2)s1 (r1+r2)s2 x1+x2=r1s1+r2s2l当输入是 INT8 值时,无法输出 INT8 值的结果Scale Propagation Integer Propagation Towards Fully 8-bit Integer Inference for the Transformer Model.IJCAI2020.矩阵运算速度优化CPU上全流程INT8推断|nScale Propagation l校准校准操作为给定的FP32计算同时操作INT8张量和对应的缩放因子scalel一旦为 IN
30、T8 操作定义了这个协议,INT8前向传播的过程就和FP32一样简单u解决方案(解决方案(Scale不兼容)x1+x2=(r1+r2)x1+x2 (r1+r2)s1 (r1+r2)s2 x1=Q(r1,s1)x2=Q(r2,s2)x1=Q(r1,s1)x2=Q(r2,s2)s更接近理想的INT8计算过程Towards Fully 8-bit Integer Inference for the Transformer Model.IJCAI2020.矩阵运算速度优化CPU上全流程INT8推断|nPolynomial Attentionl选择 ReLU 作为指数函数的替代方案l不仅作为指数函数产生
31、正结果,而且与INT8兼容u解决方案(解决方案(INT8计算计算不兼容)ixxiieexS)max(oftTowards Fully 8-bit Integer Inference for the Transformer Model.IJCAI2020.矩阵运算速度优化CPU上全流程INT8推断|nbase&big设置都获得了和FP32可比的性能n使用 INT8 能够达到约 4 倍倍的存储量压缩和平均 3.5 倍倍的推断速度提升u实验结果实验结果Towards Fully 8-bit Integer Inference for the Transformer Model.IJCAI2020.注
32、意力机制加速SAN|u相邻层之间的注意力权重相邻层之间的注意力权重比较相似u相邻层之间注意力权重可以共享,从而减少注意力操作的执行次数 这个过程称为共享注意共享注意力网络力网络(Shared Attention Network;SAN)Sharing Attention Weights for Fast Transformer.IJCAI2019.注意力机制加速SAN|u共享注意力网络可以显著改善解码速度,可平均加速1.34倍倍u在译文质量上BLEU几乎不下降几乎不下降,对性能影响并不明显baselineour methodEn-Despeedup1.001.40En-Despeedup1.0
33、01.39De-Enspeedup1.001.39En-Fispeedup1.001.38Fi-Enspeedup1.001.38En-Lvspeedup1.001.39Lv-Enspeedup1.001.38En-Ruspeedup1.001.26Ru-Enspeedup1.001.25Zh-Enspeedup1.001.20Sharing Attention Weights for Fast Transformer.IJCAI2019.注意力机制加速CAN|uSelf-attention和Cross-attention输出比较相似u我们并行化子层已得到更浅的解码器这个过程称为压缩注意力网络
34、压缩注意力网络(Compressed Attention Network;CAN)An Efficient Transformer Decoder with Compressed Sub-layers.AAAI2021.注意力机制加速CAN|u我们的深编码器-浅解码器(Balanced)基线与标准基线具有几乎相同的性能,但其速度平均快速度平均快 2 倍倍u相比于SAN 和 AAN 的加速效果(1 16%),CAN可以提供更大的加速度更大的加速度(27 42%)baselineCANEn-Despeedup 1.002.78De-Enspeedup 1.002.82En-Frspeedup 1.
35、002.52Fr-Enspeedup 1.002.52An Efficient Transformer Decoder with Compressed Sub-layers.AAAI2021.Transformer网络层数优化|6-63-32-22-14-210-228.8428.6428.5026.9475.9M53.8M46.5M42.3M1x2x3x5xBLEU参数量加速比28.7151.7M2.5x29.1274.2M1.5x搜索策略优化Softmax优化|隐层输出softmax=,0 softmax=,0 Beam Searchargmax=|:()()softmax=,0 Gree
36、dy Searchu使用Greedy Search替代Beam Searchu将softmax替换为argmax,速度提升约10%提高翻译质量知识蒸馏|知识蒸馏(Knowledge Distillation)属于模型压缩的一种常用方法,使用的是Teacher-Student模型,目的是提升小模型的翻译质量提升小模型的翻译质量。Kim et al.,EMNLP 2016提高翻译质量基于组内置换的知识蒸馏|u适用于Teacher模型训练阶段,扰乱Teacher模型组内的信息流u序列级知识蒸馏:(Src,SKDTgt)代替(Src,Tgt)u从每组中随机选择一层初始化Student模型Learnin
37、g Light-Weight Translation Models from Deep Transformer.AAAI2021.提高翻译质量基于组内置换的知识蒸馏|u实验结果实验结果nGPKD应用于编码端应用于编码端l在多个数据集上对比SKD均取得了一致的性能提升lGPKD后的模型几乎与Teacher模型表现相当29.3930.0329.9127.627.629.2128.529.0129.4729.3329.6829.882626.52727.52828.52929.53030.5Deep-RPR-24LDeep-RPR-48LBig-RPR-12LBLEUDeep ModelBase M
38、odelSKDGPKDWMT En-De52.6752.8753.4550.9550.9551.9751.5851.5452.4352.452.6453.2449.55050.55151.55252.55353.554Deep-RPR-24LDeep-RPR-48LBig-RPR-12LBLEUDeep ModelBase ModelSKDGPKDNIST Zh-EnLearning Light-Weight Translation Models from Deep Transformer.AAAI2021.提高翻译质量随机子层跳跃|u随机的跳过自注意力子层或前馈神经网络子层,类似于垂直的Dr
39、opoutn使用不同的Dropout概率:Dropout概率随着子层深度的增加而变大l底层的网络更倾向于保留,顶层的网络更容易被丢弃 是编码端的整体深度,由于编码端每一层有两个子层,因此子层的整体深度是2.n在推断时,对所有子层的输出分布根据丢弃概率进行缩放Learning Light-Weight Translation Models from Deep Transformer.AAAI2021.提高翻译质量随机子层跳跃|u引入随机子层跳跃后ppl明显改善27.6030.0330.63WMT Zh-En Test17-1926.5027.6028.00Deep-RPR-48L+Skippin
40、g Sub-layerBase-RPRNIST Zh-En MT04-08WMT En-De 50.8152.9053.61n在三个翻译任务的48层网络上均取得了一致的性能提升Learning Light-Weight Translation Models from Deep Transformer.AAAI2021.提高翻译质量权重蒸馏|u通过参数生成器参数生成器将教师网络的所有权重传递给学生网络uWeight ClassuWeight Transformation 首先将这个子集中的所有权重矩阵堆叠到一起。然后使用三个可学习的权重矩阵WI,WO,WL进行矩阵间的维度变换。Weight Di
41、stillation:Transferring the Knowledge in Neural Network Parameters.ACL2021.提高翻译质量权重蒸馏|u实验结果实验结果n在所有三个任务和不同规模的学生网络中,WD 均优于均优于 KDn仅需一半的参数就可以获得与基线相近的性能,并且速度提高速度提高 2.57 2.80 倍倍Weight Distillation:Transferring the Knowledge in Neural Network Parameters.ACL2021.速度与品质的优化效果|优化方式对比优化结果对比服务器版模型(beam=4):70.7模型基线优化后encoder层数620decoder层数62隐层维度256256FFN维度10241024/512优化策略DLCL+CAN+KD无数据类型FP32INT8模型参数量内存翻译速度口语BLEU值基线优化后25.9M15.2M100M30M7.2词/秒21.5词/秒67.670.1|其他方向u面向语音、图文的多模态机器翻译面向语音、图文的多模态机器翻译u面向多行业、多领域的机器翻译面向多行业、多领域的机器翻译u面向面向CPU设备的高性能机器翻译设备的高性能机器翻译u面向国产面向国产GPU、NPU芯片的机器翻译芯片的机器翻译05非常感谢您的观看|让世界语言交流无障碍