尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

【DL】transformer|Multi-Head Attention

【DL】transformer|Multi-Head Attention 一、为什么需要 Transformer因为单独的 Attention 虽然能够解决序列中远距离信息交互的问题但一个完整的神经网络还需要解决“位置信息、特征变换、信息稳定传递、多种关系同时建模”等问题。Transformer 就是把 Self-Attention、位置编码、前馈网络、残差连接、LayerNorm 等组件组合起来形成一个完整的序列建模架构。可以这样理解Attention 是一种机制Transformer 是一个完整的网络架构。二、Attention 和 Transformer 到底是什么关系Attention 一个重要的零件 Transformer 使用 Attention 其他零件 组成的一整台机器只有 Self-Attention 有什么问题只是把词向量丢给attention它需要额外的信息来区分位置因为self-attention本身并不知道顺序。怎么告诉 Transformer 每个词的位置通过 Positional Encoding位置编码把位置信息加入词的表示中。词的信息 位置信息 ↓ Transformer 输入位置编码到底加在哪里假设embediding得到X,然后得到PE这里为什么相加呢因为Embedding 和 position encoding具有相同的维度可以直接相加这样一个向量里面同时包含词的语义和词的位置注意位置编码不是替代词向量而是和词向量结合。经典 Transformer 的位置编码三、现在进入 Transformer 的核心结构一个Transformer encoder layer可以理解为Input ↓ ┌───────────────┐ │ Self-Attention│ └───────────────┘ ↓ Add Norm ↓ ┌───────────────┐ │ Feed Forward │ └───────────────┘ ↓ Add Norm ↓ Output为什么 Self-Attention 后面还需要 Feed ForwardSelf-Attention 主要负责让不同位置之间进行信息交互而 Feed Forward NetworkFFN主要负责对每个位置得到的信息进行进一步的非线性特征变换。x↓Linear↓激活函数↓Linear↓输出通过升维 → 非线性变换 → 降维让网络能够学习更复杂的特征变换,FFN并不是简单的再算一次而是对Attention得到的信息进行进一步加工Add Norm 是什么Transformer 不直接把这个输出作为下一层输入。而是加入Residual Connection(Residual Connection 就是把模块的输入直接绕过模块与模块输出相加)x原始输入F(x)Attention 或 FFN 的输出Layer Normalization:对神经网络中的特征进行归一化让训练更加稳定.Residual LayerNorm Add Norm流程输入 x ↓ Self-Attention ↓ 得到 Attention(x) ↓ x Attention(x) ↓ LayerNorm ↓ 输出四.Multi-Head Attention模型可能难以同时捕获这么多不同类型的关系,所以需要Multi-Head Attention。Multi-Head Attention 就是同时使用多个不同的 Attention Head让模型从不同的表示子空间学习不同类型的关系然后把这些 Head 的结果拼接并再次变换。简单理解一个 Attention 只用一种“视角”观察句子 Multi-Head Head 1 → 关注语法 Head 2 → 关注指代 Head 3 → 关注语义 Head 4 → 关注其他关系一个大 Attention ↓ 拆成多个小 Attention ↓ 不同 Head 学习不同关系 ↓ 拼起来 ↓ 再次变换完整的Transformer Encodertransformer的一部分深层TransformerInput ↓ Transformer Block ↓ Transformer Block ↓ Transformer Block ↓ ... ↓ Output五、原始 Transformer 为什么有 Encoder 和 Decoder原始transformer主要解决 机器翻译English ↓ Encoder(Encoder 负责理解输入序列产生上下文表示。) ↓ 表示 ↓ Decoder(Decoder 根据已有信息一步一步生成输出序列。) ↓ ChineseGPT 使用 Decoder-only Transformer,模型根据概率来选择下一个token它不能直接看到未来的词因为 GPT 是自回归语言模型训练时需要让当前位置只能看到当前位置以及之前的信息不能偷看未来答案。它使用的是Attention MaskCausal Mask自回归生成 文本 ↓ Tokenization ↓ Token Embedding ↓ Position Information ↓ Transformer Decoder Blocks ↓ Self-Attention ↓ FFN ↓ LayerNorm / Residual ↓ 输出 Logits ↓ Softmax ↓ Token 概率 ↓ 选择下一个 TokenGPT和RNN 的区别RNNGPT / Transformer序列处理逐步递归Attention记忆方式Hidden StateAttention长距离依赖较困难更容易并行训练较差很强核心机制RecurrenceSelf-Attention生成方式可自回归可自回归
返回列表