核心内容摘要
学霸同款2026 TOP8 AI论文写作软件:自考毕业论文全攻略
目的为避免一学就会、一用就废这里做下笔记说明本文内容紧承前文-注意力机制欲渐进请循序本文先整体介绍Transformer架构细节部分后续分章节介绍
是什么
Transformer的定义Transformer是一种完全基于注意力机制的序列处理架构于2017年由Google在论文《Attention Is All You Need》中首次提出。
它彻底摒弃了传统的循环神经网络RNN和卷积神经网络CNN仅使用自注意力机制和前馈神经网络来处理序列数据。
整体架构全景下图展示了Transformer的完整架构这是论文中的原始图示为方便理解这里先从简化后的架构图讲解架构核心组件分解左侧编码器Encoder堆栈- 处理输入序列右侧解码器Decoder堆栈- 生成输出序列中间注意力连接- 编码器与解码器之间的信息传递。
传递的数据是矩阵K和矩阵V注意力机制中的三要素中的两个它们承载了编码器对输入序列的理解
编码器堆栈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次
解码器堆栈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格式化输出层用于将解码器输出的矩阵格式的内容转换成自然语言格式这里是英语格式的内容