【极速版 -- 大模型入门到进阶】Transformer: Attention Is All You Need -- 第二弹


🌊 Transformer 模块概述 – 简化版本

【1. Tokenization】把文字变成 Token ❄️

  • https://platform.openai.com/tokenizer

【2. Input Layer】理解每个 Token (从语义和位置上) 🔥

  • 意思相近的 Token 会有接近的 Embedding,除了语义,位置上也包含有信息

【3. Attention】考虑 Token 上下文 – contextuallized token embedding

  • 如下图的例子,同一个 token – 在不同的上下文中应该具有不同的理解
  • 步骤一:先找出相关的 token,利用相关性计算程式;可能有不同的相关性存在,所以实际大多使用多个 (16个) 计算相关的程式,也就是常说的 multi-head attention
  • 步骤二:集合相关的资讯

【4. Feed Forward】整合思考

  • 把 multi-head attention 的结果进行汇总,得到一个 embedding 的结果

【3 & 4 Transformer Block】反复思考

  • Attention + Feed Forward 操作,构成一个 Transformer Block
  • 构建网络时,会叠加多个 Transformer Block 进行反复思考

【5 Ouput Layer】输出概率


🌊 Transformer 模块详解 – 原始版本

经过简化版本,我们已经梳理清楚了 transformer 的核心思想,接下来,你会更容易理解 Transformer 模块详解

  • Transformer :seq2Seq model with self-attention
    • 注意,对于 transformer 输出序列的长度是由模型自主决定的
  • Transformer → \to 【知名应用】BERT (unsupervised trained Transformer)

Self-attention 是 Attention变体,擅长捕获数据/特征的内部相关性
Self-attention 组成 Multi-head Self-attention
Multi-head Self-attention 反复利用组成Transforme

所以 … 后续会主要说明 self-attention

  • 【Seq】Sequence:考虑分别用 RNN 和 CNN 处理

    .....
    • 【左图】RNN: hard to parallel (需要序列输入进去处理)
    • 【右图】CNN: replace RNN (单层覆盖范围有限,需要叠多层来扩展覆盖范围)
  • 【replace CNN】Self-attention Layer: 类似双向RNN的作用,但是可并行化

    • 【STEP-1】计算 qkv: q:query, k:key, v:value
      .....
    • 【STEP-2】每一个 q 对每一个 k 做 attention: 如 scaled dot-product attention
      α i , j = q i ⋅ k j / d , d is the dim of q and k \alpha_{i,j}=q^i \cdot k^j / \sqrt{d}, \text{d is the dim of q and k} αi,j=qikj/d ,d is the dim of q and k
    • 【STEP-3】经过 softmax layer:
      α ^ i , j = exp ⁡ α i , j ∑ k exp ⁡ α i , k \hat{\alpha}_{i, j}=\exp{\alpha_{i, j}}\sum_k \exp{\alpha_{i,k}} α^i,j=expαi,jkexpαi,k
    • 【STEP-4】计算输出 b:
      b i = ∑ j α ^ i , j v j b^i = \sum_j \hat{\alpha}_{i,j}v^j bi=jα^i,jvj

  • 矩阵计算版本总结
    在这里插入图片描述

  • 拓展:
    • multi-head Self-attention: 多组 qkv 来关注不同信息
  • positional encoding: α i \alpha^i αi += e i e^i ei, 可以引入位置信息 e i e^i ei

参考资料:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值