AI快车道PaddleNLP系列直播课4|文本生成任务的高性能加速

目录

1 文本生成介绍

1.1 什么是机器翻译 

2 transformer性能瓶颈分析和优化

计算量最大的地方就是在encoder和decoder中,transformer中的self-attention的计算

        通过减少GPU的空闲时间,优化transformer的性能。也就是尽可能的把要计算的东西融合起来。​ ​

 解码策略1:贪心搜索,直接选概率最大的词​

 解码策略2:beam search,每次解码选择累积概率最高的两个,对当前结果打分,进入下一步解码,累积得分最高的两个会被留下,不断迭代每轮最后得到两个得分最高的,其实也是贪心,但是搜索空间变大了​

 解码策略3:T2T beam search,​

 因为decoder时间占比很大,所以需要进一步优化

 优化策略总结​

3 PaddleNLP机器翻译应用示例

 效果

用法 


       本课以机器翻译为例介绍整个文本到文本生成预测的优化工作,其中很常用的transformer结构,transformer参数量越大效果越好,这也使基于transformer的模型规模越来越大,但QPS(每秒处理句子的个数)却上不去。其中self-attention性能瓶颈在于在具体的计算(kernel)之前,会有API调用算子,算子调用cuda kernel的过程,因为是CPU在调用,所以GPU处于空闲状态。

        通过减少GPU的空闲时间,优化transformer的性能。也就是尽可能的把要计算的kernel融合起来。

transformer性能优化上的一个工作fastertransformer的做法:

  • 解码:融合了decoder、融合了embedding,position encoding、融合了beam search,sampling解码策略。
  • encoder融合:将除去GEMM矩阵乘法的计算部分,进行了最大程度的融合,在一些配置下性能提升一倍以上。共计调用38个算子
  • decoder融合:decoder比encoder多一层multi-head attention,同样将除去GEMM矩阵乘法的计算部分,进行了最大程度的融合。共计调用63个算子。faster transformer已经支持pre-normalization,PaddleNLP扩展又使其能支持post-normalization。(pre-normalization的结构能在一定程度上消除post-normalization在训练中的不稳定性)支持多种解码策略

介绍了三种生成解码策略:

如何使用这个性能加速:

  • 数据准备:分词,转化为id
  • 模型准备
  • 使用PaddleNLP调用fastertransformer的api,需要提供一些超参数
  • just in time自动编译
  • 载入checkpoint
  • 实现预测加速

        且支持多种结构,encoder-decoder,单向结构,encoder,双向编码,单向解码生成等

 

1 文本生成介绍

本课是文本到文本的生成,以机器翻译为例介绍整个预测的优化工作

1.1 什么是机器翻译 

平行语料:两种语言的同时出现,则可对应起来

 转成向量+隐藏状态,序列依赖的

 编码部分:先向量化表示,encoder中会进行self-attention(将输入线性变换后得到qkv,求一个w,权重越大注意力越高,然后得到输出),encoder会得到输出其中已经编码了位置信息,且容易学到长程依赖

 

 

 transformer的参数量越大越好,但是LSTM不是,因为transformer的这个特性,很多基于transformer的模型的规模越来越大

 但是规模越来越大,QPS上不去。QPS:每秒处理句子的个数。也就难以用到产业级

2 transformer性能瓶颈分析和优化

计算量最大的地方就是在encoder和decoder中,transformer中的self-attention的计算

 self-attention的实现在pp中调用了20个左右的基本算子

        在具体的计算之前,会有API调用算子,算子调用cuda kernel的过程,也就是白色部分,因为是CPU在调用,所以GPU处于空闲状态。

        通过减少GPU的空闲时间,优化transformer的性能。也就是尽可能的把要计算的东西融合起来。 

 如fastertransformer所做的,将两个GEMM之间的计算尽可能的全部融合成了一个kernel。如下图

  

 

 

 

 解码策略1:贪心搜索,直接选概率最大的词

 解码策略2:beam search,每次解码选择累积概率最高的两个,对当前结果打分,进入下一步解码,累积得分最高的两个会被留下,不断迭代每轮最后得到两个得分最高的,其实也是贪心,但是搜索空间变大了

 解码策略3:T2T beam search,

 因为decoder时间占比很大,所以需要进一步优化

 

 优化策略总结

3 PaddleNLP机器翻译应用示例

 

 

 

 效果

 

 

用法 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值