一、背景介绍

论文地址:https://arxiv.org/pdf/1706.03762

模型优势

1. 能够实现并行计算,提高模型训练效率

2.更好的特征提取能力

发展进程:

ANN人工神经网络   -> RNN循环神经网络   -> LSTM/GRU   -> Seq2Seq 模型框架 ->

                    Seq2Seq + 注意力机制 -> Transformer   -> GPT、BERT、DeepSeek、Qwen等

绝大多数大模型底层的原理都是Transformer

二、框架结构

1. Seq2Seq 与 Transformer

2.四大部分                                           

① 输入部分      ② 编码器部分      ③ 解码器部分    ④ 输出部分

                    

==============================  通用部分 ===================================

Positional Encoding:位置编码

作用:给词向量增加位置信息。transformer框架本身是不明白词和词之间的顺序关系。所以需要额外告诉它,位置不同,词的含义也不同。

例如:小龙女想 过过 过过 过过 的生活,3个过过 含义完全不一样。

Feed Forward: 前馈神经网络/前馈全连接层

作用: 对每个位置的词向量进行信息增强,经过注意力机制处理后的数据,再使用前馈网络加工一下,给每个词添加更多的额外信息。

Add & Norm: 残差连接 和 层归一化/规范化层

作用:Add残差连接,是把注意力机制计算结果和原始结果进行求和

           Norm层归一化,让数据调整到正态分布中,让模型更加稳定。

=============================  编码器端部分 =================================

左Nx:编码器层堆叠N层,得到编码器

作用: 把【多头自注意力子层+前馈网络】堆叠了6层。论文中N的值是6

Multi-Head Attention: 多头自注意力层

作用: 让模型同时从多个角度关注句子中每个词的含义

例如:大家就业时候,1个老师负责100个学生就业,那么每个学生受到帮助的程度都比较少。老师人数增加到10个,平均每个老师负责10个学生,10个老师不仅能够同时搞就业,而且每个学生受到关注的程度变高

Input Embedding: 编码器端的词嵌入层

作用:把词索引转成词向量

=============================  解码器端部分 =================================

右Nx:将解码器层堆叠N层,得到解码器

作用:把【掩码多头自注意力子层+多头注意力子层+前馈网络子层】堆叠了6层。论文中N值是6

Multi-Head Attention:多头注意力(也称为 交叉注意力 Cross Attention)

作用:让解码器更加关注编码器端输出的哪些数据

例如:文本翻译的时候,解码器译to之前,要分别与编码器端的欢迎、来、北京计算相似性。

Masked Multi - Head Attention: 掩码多头自注意力

作用:掩码的作用是为了防止偷看未来(后面)的词

例如:文本翻译的时候,解码器得到英语单词,例如翻译to的时候,只能查看它当前已翻译得到的词(例如Welcome),不能查看还未翻译的词(例如Beijing)

Output Embedding:解码器端的词嵌入层

作用:把词索引转成词向量

3.架构概述

输入文字 -> 嵌入 -> 位置编码 -> 编码器多层加工(注意力+前馈) -> 解码器多层加工(掩码注意力 + 关联编码器(交叉注意力) +  前馈) -> 线性层 -> Softmax -> 输出概率选词

整体架构的核心:

注意力机制抓关联,多层堆叠挖深度,残差归一化稳训练

三、具体开发步骤

1. Transformer 底层源码剖析(输入部分)

https://blog.csdn.net/i_k_o_x_s/article/details/161065795?spm=1001.2014.3001.5502

2. Transformer底层代码剖析(通用部分)

https://blog.csdn.net/i_k_o_x_s/article/details/161096897?spm=1001.2014.3001.5502

3. Transformer底层源码剖析(编码器部分)

https://blog.csdn.net/i_k_o_x_s/article/details/161173312?spm=1001.2014.3001.5502

4.Transformer底层源码剖析(解码器部分+输出)

https://blog.csdn.net/i_k_o_x_s/article/details/161176836?spm=1001.2014.3001.5502

编码器

解码器

        参考编码器的开发过程,大部分地方的功能直接服用。主要开发【掩码多头自注意力层】

输出部分

        非常简单,nn.Liner全连接层+Softmax激活函数

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐