2026/3/21 6:22:19
网站建设
项目流程
山西做网站推广,wordpress自媒体插件,农产品网络营销推广方案,网站怎么做 凡科目的
为避免一学就会、一用就废#xff0c;这里做下笔记
说明
本文内容紧承前文-注意力机制#xff0c;欲渐进#xff0c;请循序本文先整体介绍Transformer架构#xff0c;细节部分后续分章节介绍
一、是什么
1. Transformer的定义
Transformer是一种完全基于注意力机…目的为避免一学就会、一用就废这里做下笔记说明本文内容紧承前文-注意力机制欲渐进请循序本文先整体介绍Transformer架构细节部分后续分章节介绍一、是什么1. Transformer的定义Transformer是一种完全基于注意力机制的序列处理架构于2017年由Google在论文《Attention Is All You Need》中首次提出。它彻底摒弃了传统的循环神经网络RNN和卷积神经网络CNN仅使用自注意力机制和前馈神经网络来处理序列数据。2. 整体架构全景下图展示了Transformer的完整架构这是论文中的原始图示为方便理解这里先从简化后的架构图讲解架构核心组件分解左侧编码器Encoder堆栈- 处理输入序列右侧解码器Decoder堆栈- 生成输出序列中间注意力连接- 编码器与解码器之间的信息传递。传递的数据是矩阵K和矩阵V注意力机制中的三要素中的两个它们承载了编码器对输入序列的理解3. 编码器堆栈Encoder StackInput即原始文本用作编码器堆栈的输入。如要用模型汉译英翻译“我爱中国的山川湖海”这里的“我爱中国的山川湖海”几个字就是InputEmbedding Encoding这里实现中文的嵌入和编码。从结果看就是将“我爱中国的山川湖海”这个中文序列转化为一组模型能够处理的向量数据即一个矩阵或一个张量。拆开来讲是先分词再编码最后嵌入其实还有位置编码这里先不讲。分词Tokenize将“我爱中国的山川湖海”拆分成[“我”,“爱”,“中国”,“的”,“山”,“川”,“湖”,“海”]编码Encoding将分词后的每个词对照词表(类似机器能理解的新华字典)一个个翻译成机器能处理的数字编码如1代表中文的“我”71代表中文的“爱”编码后形成[1,71,102,99,210,211,212,213]这样的序列嵌入Embedding嵌入是为了将数据向量化。向量化本质是通过嵌入模型用高维向量如1024维充分表征每个词的语义如“我”的多重含义、“我”的词性是名词、“我”一般用作主语或宾语等且语义相似的两个向量余弦距离也更近。编码后的序列经向量化后是一个二维矩阵矩阵1024列代表嵌入模型的维度矩阵8行代表token的个数Encoder编码器块(encoder block) 用于理解输入语句的含义。这里使用多个Encoder确保对语句含义的理解足够充分。如第一层Encoder理解了语言结构第二层Encoder在第一层基础上理解了这句话的基本含义第三层Encoder在第二层基础上理解了这句话中的爱国情感。Encoder对输入内容的理解仍然使用矩阵或张量存储。最后一层Encoder的输出矩阵Z包含了对输入语句最丰富的理解最后一层Encoder将输出矩阵Z经转换后转换为注意力机制中的K和V共享给多个解码器供后续解码使用转换的操作就是图中间的三根连线实际只转换1次供后续的3个解码器共享而不是转换3次4. 解码器堆栈Decoder StackOutput即解码器堆栈的最终输出也是整个模型的最终输出。如[BOS“I”, , “love”, , “the”, , “mountains”, “,”, , “rivers”, “,”, , “lakes”, , “and”, , “seas”, , “of”, , “China”, EOS]。这里BOS和EOS分别代表一句话的开头和结尾Target是Output错位后的序列即解码器的输出会作为下一个时间步的输入。最开始是[BOS]待Output输出[BOS,“I”]之后Target也随之变成[BOS,“I”]。解码器堆栈将Target作为输入是为了进行如下思考我前面已经输出了[BOS,“I”]后面需要一个动词、形容词结合编码器对原始输入的理解K、V这个动词跟“爱”相关英文中跟“爱”相同语义的动词中这里选择一个最常用的loveEmbedding Encoding作用和编码器堆栈的嵌入层相同都是将人能理解的语言符号转变成模型能理解的矩阵Decoder解码器块decoder block,它结合当前输出目标、已输出的内容和对原始输入的理解决定下一个时间步要输出什么矩阵格式的数据。图中使用了三层Decoder级联和多个Encoder相似三层Decoder分别实现不同的解码逻辑大致是第一层生成句法结构第二层在第一层基础上进行语义内容填充第三层在第二层基础上进行纠错和风格调整。注意每一层的职能并非人为设定的而是在训练阶段训练出来的但从层次上符合深度神经网络中层级越高、理解越完整深入的规律。Generate Output格式化输出层用于将解码器输出的矩阵格式的内容转换成自然语言格式这里是英语格式的内容二、为什么Transformer的革命性意义1. 解决RNN的核心痛点并行化困境的突破传统RNN的顺序计算特性导致严重效率问题训练时必须按时间步顺序计算无法充分利用GPU并行能力长序列处理1000个token需要1000步顺序计算内存限制需要存储所有时间步的中间状态Transformer的全连接注意力实现完全并行一次性处理所有位置同时计算注意力矩阵运算将序列处理转化为矩阵乘法GPU友好充分发挥现代硬件的并行计算能力长距离依赖的彻底解决RNN在处理长序列时面临信息衰减问题梯度消失/爆炸信息在多层传递中逐渐丢失或放大信息瓶颈隐藏状态成为信息压缩的瓶颈早期信息丢失1000词文本中第10个词的信息很难传递到最后Transformer的全局注意力机制任意位置直连序列中任意两个位置可以直接交互信息无衰减注意力权重直接建立远距离连接上下文完整每个位置都能看到整个序列的完整信息2. 注意力机制的优势可视化下图展示了注意力机制的工作原理这是理解Transformer的关键注意力机制的三大优势全局上下文感知传统模型词A → 词B → 词C → 词D顺序传递 Transformer词A ←→ 词B ←→ 词C ←→ 词D全连接动态权重分配相关词获得高权重在苹果公司中苹果和公司相互高关注无关词获得低权重在长文档中无关段落获得极小注意力多对多关系一个词可以同时关注多个相关词可解释性注意力权重可视化显示模型关注的位置帮助理解模型决策过程便于调试和优化3. 计算效率的质的飞跃训练时间对比相同硬件条件下处理10,000个序列长度512 RNN/LSTM≈ 50小时顺序计算瓶颈 Transformer≈ 5小时完全并行快10倍 主要原因 1. 矩阵乘法代替循环 2. 批量处理优化 3. GPU利用率接近100%三、怎么办训练与推理过程训练阶段以翻译为例编码器处理源序列I love machine learning → 编码器表示解码器训练给定目标序列我 爱 机器 学习右移一位教师强制无论解码器输出什么下一步都输入正确答案损失计算预测序列与目标序列的交叉熵损失推理阶段自回归生成步骤1输入I love machine learning到编码器 步骤2解码器输入起始符START 步骤3解码器输出第一个词的概率分布 → 选择我 步骤4解码器输入START 我 → 输出第二个词 → 选择爱 步骤5重复直到生成结束符END四、Transformer的变体与发展1. 仅编码器架构BERT系列特点双向上下文同时看到左右两侧的上下文预训练任务掩码语言建模MLM 下一句预测NSP应用场景文本分类、命名实体识别、问答系统2. 仅解码器架构GPT系列特点单向上下文只能看到左侧的上下文自回归预训练任务下一个词预测应用场景文本生成、对话系统、代码生成3. 编码器-解码器架构原始Transformer、T5特点完整序列转换适用于需要转换格式的任务预训练任务多种文本到文本任务应用场景机器翻译、文本摘要、风格转换五、Transformer的局限性1. 计算复杂度问题注意力矩阵的O(n²)复杂度序列长度n512需要计算512×512262,144个注意力分数 序列长度n2048需要计算2048×20484,194,304个注意力分数增长16倍 导致问题 1. 长序列处理困难 2. 内存消耗大 3. 训练成本高2. 位置编码的局限性外推能力弱训练时最大长度512推理时难以处理更长序列相对位置信息有限原始位置编码主要提供绝对位置方向性不足注意力机制本身是无向的3. 数据依赖性需要海量数据才能发挥其强大表示能力小数据表现差容易过拟合预训练成为必需从零开始训练成本极高六、Transformer的影响与未来1. 革命性影响NLP范式转变从任务特定模型到预训练微调范式跨领域应用从NLP扩展到CV、语音、生物等大模型时代开启千亿参数模型的研发竞赛AI民主化通过API提供强大的语言理解能力2. 未来发展方向效率优化稀疏注意力、模型压缩、蒸馏技术多模态融合统一处理文本、图像、语音推理能力提升逻辑推理、数学计算、常识理解可解释性增强让注意力机制更加透明可信