transformer 解码_碎碎念:Transformer的解码加速

本文探讨了Transformer模型在预测时的解码加速问题,介绍了Attention Cache、Average Attention Network (AAN) 和 Share Attention Networks (SAN) 三种优化策略。Attention Cache通过缓存K和V提高解码速度;AAN用平均注意力替换softmax,但可能影响精度;而SAN通过权重共享在不牺牲太多精度的情况下实现加速。
摘要由CSDN通过智能技术生成

Transformer 模型舍弃了 step by step 的时序循环,依靠 self-attention 的并行结构获得了远超同量级 LSTM 网络的训练速度。加入 target-mask 后的 decoder,可以做到像 encoder 一样的“完全并行”。

但是,在预测的时候,还是避免不了 auto-regressive —— 只有前一个词完全解码出来后,才能进行下一个词的预测。也就是说,“并行”的只是训练过程,由于网络结构复杂,预测过程反而比 LSTM 慢多了。

在进行上线部署前,解码端的加速就变成了一个必须要面对的问题。在不过分损失精度的前提下,有几种便于实施的方案,值得尝试。需要说明的是,这里不涉及编码端的优化。

1. Attention Cache

Attention Cache 是一种工程式的优化,不损失精度,不改变网络,因此可以看作是“必选项”。在官方代码 tensor2tensor 的 multihead_attention() 函数有一个“cache”输入参数,注释中这样说明:The caching works by saving all the previous key andvalue values so that you are able to send just the last query location to this attention function. I.e. if the cache dict is provided it assumes the query is of the shape [batch_size, 1, hidden_dim] rather than the full memory.

也就是说,把 self-attention 层的 K 和 V,缓存起来

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值