ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

transformer理解

transformer理解 1.transformer概览transformer主要是为了之前训练过程中的一些痛点具体我会给出一个视频链接方便大家结合视频和文档进行学习。https://www.bilibili.com/video/BV1Pyta66EDh?spm_id_from333.788.player.switchvd_sourcef2c6f95328c7aaa4322be5f8263e73e5transformer主要解决的就是注意力问题原来机器学习的过程中ngram只是基于文字进行猜词没见过的词他就不认识后来演化成了词向量用一个向量来表示一个词你好-token-词向量。这是一切的基础有了向量我们可以表达词与词之间的语义关系。基于这个我们继续进行训练演化出了前馈神经网络你-你好-你好啊。就是这样进行训练但是这样也有问题前面的token会不断被稀释后面的token无法找到与自己相关的后来出现了一个向量专门来保存一些重要的词。这样后面的token可以读到一些重要的信息。但是也有问题。只读不舍弃不行所以出现了一个FF的话他会保存重要的词舍弃不重要的词。这个过程也是通过训练表示的。但是也有问题啊他是线性的。在transformer之前所有的训练都无法完整的表达一句话任意词之间的关系这是一个非常大的痛点。下面介绍transformer。计算机不直接理解文字所以先把每个词转换成一串数字即词向量Embedding。此外还要加入位置信息因为 Transformer 本身并不知道词的先后顺序\[ x_i \text{词向量}_i \text{位置编码}_i \]词向量在transformer会包含QKV三种语义Q是查询K是关键词(类比我们搜索CF出现穿越火线类似)V(表达的值)。这三个值都保存在同一个词向量通过线性变换可以从原始的词向量得到QKVQueryQ我在寻找什么KeyK我具有什么特征ValueV如果你关注我我能提供什么信息\(\text{Attention}(Q,K,V) \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V\)苹果↓x [0.2, -0.5, 0.8, ...]Q x × WqK x × WkV x × Wv苹果Q [ ... ] ← 一个向量K [ ... ] ← 一个向量V [ ... ] ← 一个向量┌── Wq ──→ Qtoken → 向量 x ──┼── Wk ──→ K└── Wv ──→ V每一个token都会和其他的token进行计算我 → Q1 K1 V1喜欢 → Q2 K2 V2吃 → Q3 K3 V3苹果 → Q4 K4 V4如果处理Q2Q2·K1Q2·K2Q2·K3Q2·K4代表了“喜欢”应该关注“我”多少 “喜欢”应该关注自己多少 “喜欢”应该关注“吃”多少 “喜欢”应该关注“苹果”多少output_喜欢 a1 V1 a2 V2 a3 V3 a4 V4Q1 → 和 K1 K2 K3 K4 算Q2 → 和 K1 K2 K3 K4 算Q3 → 和 K1 K2 K3 K4 算Q4 → 和 K1 K2 K3 K4 算我 喜欢 吃 苹果我 0.3 0.2 0.1 0.4喜欢 0.2 0.1 0.2 0.5吃 0.1 0.2 0.2 0.5苹果 0.2 0.3 0.3 0.2进行矩阵计算这是一个单头但是一句话往往会表达很多意思不同维度来解读都不同所以即使同一个词向量在不同的维度下线性运算得到的QKV可能都不一样一个维度相当于一个专家类比专家1专门看指代关系专家2专门看语法关系专家3专门看位置关系专家4专门看语义关系所以我们把这种进行一次计算得到的结果就叫一次transformer我们会通过很多层transformer文字↓Tokenizer↓token id↓Embedding↓每个 token 变成一个 hidden state↓进入 Transformer Block↓Self-Attention↓Residual Norm↓FFN↓Residual Norm↓重复很多个 Block↓得到最后一层 hidden states↓Linear / LM Head↓变成整个词表上的概率↓预测下一个 token学到这里我有问题啊既然transformer是让input每一个token都有合适的表达那么这个时候每一个token向量表示都已经涵盖了上下文的语义所以我们可以通过拿最后一个词向量预测下一个词向量就可以了。transformer的整体流程文字↓Tokenizer↓Token IDs↓Embedding↓Hidden States↓┌────────────────────┐│ Transformer Block ││ ││ Attention ││ token之间交流 ││ ↓ ││ Residual / Norm ││ ↓ ││ FFN ││ token内部加工 ││ ↓ ││ Residual / Norm │└────────────────────┘↓重复 N 层↓Final Hidden State↓LM Head↓词表 logits↓下一个 token
返回列表