Quote

  • Transformer 是一种**基于注意力机制(Attention)**的新型简单网络架构。
  • 采用编码器-解码器架构
  • 架构
      • Embedding: 输入转向量
      • Positional Encoding: 位置向量到词向量中,蕴含位置信息
      • Encoder(L)
        • 多头注意力机制
          • 注意力:实现根据上下文微调词义并建立联系
          • 多头:如何审视上下文(黑箱,可类比语法、指代……)
          • 过程: 得到 Attention Score, 归一化、最后 得到加权求和的微调结果
          • 并行:多个头并行完成,最后由原始的 Embedding 加上各个变化得到(Add & Norm)
        • Add & Norm
        • Feed Forward
          • 通常包括一个线性层升维,一个 ReLU,一个线性层降维
          • 注重理解,特征转换
        • Nx:串行堆叠 N 次,蕴含更丰富的含义(n_layers)
      • Decoder(R)
        • 掩码(自)注意力层:生成时只有前文影响后文,防止模型在训练时偷看未来的答案
        • 注意力层(通常为交叉注意力):连接编码器和解码器,对齐原始的输入序列
          • Q 来自 Decoder,K、V 来自 Encoder
  • 解决问题
    • RNN 的长距离信息易丢失:Attention 保留 的顺序操作次数,比起 RNN 的 更优
    • 并行度

fwd: 3b1b

  • Transformer 其实就是“续写”,根据算出来的概率分布,根据初始文本选择下一个单词
  • Embedding 是将词变成向量的过程,这个向量是多维的,每个维度可能有独特的意思,有趣的是:这些维度上的方向向量可能也含有特定的含义。
  • Attention 过程涉及到了一些矩阵的运算,这个过程本质上的目标是根据上下文更深入的微调词义 例如,一个名词有可能更会注意前面的形容词
    • Wq 对嵌入的 token 做了到 Q 的投影,他的作用就像是,针对不同的词问出不同的问题,并且每个问题还根据词语的不同有对应的权重
    • Wk 更像是对每一个问题的回答
    • 我们求点积就可以得到二者的“匹配程度”,也就是我们更应该关注谁,这就是 Attention Score
    • Softmax 是一种归一化方法,且可以接纳负数,因为我们算出来的不一定是合理的概率分布(和为1),得到的归一化网格就是 Attention Pattern
    • 为什么需要概率分布?我们需要根据概率量化地调整每一个原始 Token 的含义,例如白色的向量就是将 fluffy 作用到 creature 之后,我们希望的词义变化
    • Wv 矩阵就是将概率映射到调整向量的投影,也就是 “如果这个词需要调整含义,那么为了反映某个分布代表的更改,需要对传入 token 加上什么向量呢?”
    • 对每一列都做这样的调整,我们就根据上下文丰富了每个 token 的内涵
  • Temprature 是一个超参数,衡量了生成的随机性。