0
点赞
收藏
分享

微信扫一扫

STL之list篇(下)(从底层分析实现list容器,逐步剥开list的外表)

在这里插入图片描述

https://www.cnblogs.com/gogoSandy/p/14386998.html

新感悟:

  1. transformer的mask主要有两种,一种使padding_mask, 一种使future_mask. padding_mask是将实际不存在的内容mask掉,future_mask是让时序推理的时候让在预测T+1的token时只会用到T及T以前的信息

  2. positional embedding, 对输入的位置顺序有要求的时候需要用到,比如文本理解,如果对于位置顺序要求不高的任务,positional embedding可以不用。另外positonal embedding需要满足以下要求:
    举个🌰
    句1: Dog sit on chair
    句2: Cat is sleeping on floor
    要想全面的表达位置信息,transformer需要满足以下4个条件

  3. 相对距离: on和chair,on和floor, sit 和on, sleeping和on的相对距离都是1,它们之间的相对距离相同,且和绝对位置以及句子长度无关

  4. 绝对位置:dog和cat都是句子的第一个词,它们的绝对位置相同, encoding需要一致

  5. 句子长度:encoding需要能够generalize到训练样本中unseen的句子长度
    在这里插入图片描述
    在这里插入图片描述

为什么这么设计呢?

positional encoding是直接加在word embedding上作为输出,之后会在计算attention的过程中在两两向量内积时被使用,可能会表达类似相对距离越近attention权重越高之类的信息。因此这里表达位置和距离是依赖encoding做向量乘法,而使用sin/cos的好处在于位移和绝对位置无关

https://timodenk.com/blog/linear-relationships-in-the-transformers-positional-encoding/
在这里插入图片描述

举报

相关推荐

0 条评论