从零认识 Transformer:原理、组件与应用
一、基础定位最初用于机器翻译核心分为编码器、解码器两大模块编码器解析原文语义将文本转换为语义向量解码器参照编码信息逐词生成目标译文可视化学习地址https://poloclub.github.io/transformer-explainer/翻译示例我有一只猫→分词补位成6个Token→编码器生成768维语义向量→解码器从起始符开始逐词输出英文译文【OpenAI】获取OpenAI API Key的多种方式全攻略从入门到精通再到详解教程二、输入处理1.分词Token将文字拆分为最小语义单元短句补充占位符统一序列长度计算机仅识别数字向量。2.词嵌入Input Embedding每个Token转换为固定768维向量构成「序列长度×768」矩阵。3.位置编码Positional Encoding作用Transformer采用并行计算无天然时序感知用于区分词汇相同、语序不同的语句原理通过正余弦函数生成同维度位置向量与词向量相加融合时序信息计算公式偶数维度P ( p o s , 2 i ) sin ( p o s 10000 2 i d m o d e l ) P(pos,2i)\sin\left(\frac{pos}{10000^{\frac{2i}{d_{model}}}}\right)P(pos,2i)sin(10000dmodel2ipos)奇数维度P ( p o s , 2 i 1 ) cos ( p o s 10000 2 i d m o d e l ) P(pos,2i1)\cos\left(\frac{pos}{10000^{\frac{2i}{d_{model}}}}\right)P(pos,2i1)cos(10000dmodel2ipos)基础参数d m o d e l 768 d_{model}768dmodel768pos代表词语位置i为维度分组序号特性具备周期性与长文本泛化能力高低维度分别捕捉远近语义关系三、核心基础组件1.残差连接层归一化 AddNorm残差连接y f ( x ) x yf(x)xyf(x)x留存原始输入信息缓解深层网络梯度消失、梯度爆炸问题层归一化规整数值范围避免数值极值影响运算x ^ i x i − μ σ 2 ϵ \hat{x}_i\frac{x_i-\mu}{\sqrt{\sigma^2\epsilon}}x^iσ2ϵxi−μ2.注意力机制固定参数模型总维度768共12个注意力头单头维度768 ÷ 12 64 768\div1264768÷12641自注意力 Self-Attention向量来源Q、K、V均取自同一段文本核心作用建立句内词汇关联理解上下文语义Self-Attn ( Q , K , V ) softmax ( Q K T d k ) V \text{Self-Attn}(Q,K,V)\text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)VSelf-Attn(Q,K,V)softmax(dkQKT)V2交叉注意力 Cross-Attention向量来源Q取自解码器生成内容K、V取自编码器原文核心作用生成内容对齐原文语义避免语义偏移两类注意力对比对比项自注意力交叉注意力关联对象文本内部词汇生成内容与原文词汇向量来源全部源自同一文本Q来自译文K、V来自原文分布位置编码器、解码器均存在仅解码器独有3.前馈网络 FFN依靠线性层完成特征变换先升维扩容768→3072挖掘深层特征再降维还原维度。4.Softmax函数把任意数值换算为0~1区间概率所有结果总和为1以此判定信息权重σ ( z i ) e z i ∑ j 1 n e z j \sigma(z_i)\frac{e^{z_i}}{\sum_{j1}^n e^{z_j}}σ(zi)∑j1nezjezi应用场景计算注意力权重、模型最终选词输出5.掩码 Mask解码器专属机制屏蔽尚未生成的后续词汇训练过程中阻止模型提前获取答案。6.注意力运算三步流程点积运算Q与K矩阵相乘得出词汇间关联分数缩放掩码压缩数值区间遮挡无效位置信息Softmax转换分数转为概率分布加权融合语义特征四、Transformer衍生模型GPT系列纯解码器架构适配对话、文案创作等文本生成场景BERT系列纯编码器架构适配文本分类、阅读理解等语义理解场景ViT视觉模型采用编码器结构图像切块模拟文本Token实现图像识别多模态模型融合图文编码能力支持图片、文字联动交互