锋哥原创的Transformer 大语言模型(LLM)基石视频教程:
https://www.bilibili.com/video/BV1X92pBqEhV
课程介绍

本课程主要讲解Transformer简介,Transformer架构介绍,Transformer架构详解,包括输入层,位置编码,多头注意力机制,前馈神经网络,编码器层,解码器层,输出层,以及Transformer Pytorch2内置实现,Transformer基于PyTorch2手写实现等知识。
Transformer 大语言模型(LLM)基石 - Transformer简介
Transformer是一种完全基于自注意力机制的神经网络架构,最初由 Vaswani 等人在 2017 年提出,并在论文《Attention is All You Need》中详细介绍。它摒弃了传统的循环和卷积结构,极大地提升了处理序列数据(如文本)的能力和效率,成为了当今自然语言处理领域乃至整个AI领域的基石。
1. 为什么需要Transformer?------ 诞生背景
在Transformer出现之前,处理序列数据(如机器翻译、文本生成)的主流模型是RNN(循环神经网络) 及其变体(如LSTM、GRU)。
RNN的固有缺陷:
-
顺序计算:必须一个一个地处理序列中的词,无法并行计算,导致训练速度慢。
-
长程依赖问题:当序列很长时,早期信息在传递过程中容易丢失或衰减,模型难以捕捉远距离词语之间的关系。
Transformer的提出,正是为了解决RNN的这些核心缺陷。
2. 核心思想:自注意力机制
Transformer最革命性的创新就是自注意力机制。你可以把它理解成一种让序列中每个元素都能"直接看到"序列中所有其他元素的一种方式。
一个简单的比喻: 在翻译一个句子时,RNN像是一个逐字阅读 的人,读到后面可能会忘记前面。而Transformer则像是把整个句子平铺在桌面上,同时查看所有单词,并分析每个单词与其他所有单词的关联强度(即"注意力")。
自注意力的作用:
-
它计算序列中每个元素与其他所有元素的"相关性分数"。
-
对于句子中的每一个词,它都能动态地、有侧重地从其他词那里汇聚信息,从而生成一个包含全局上下文的新表示。
例如,在句子"The animal didn't cross the street because it was too tired"中,自注意力机制可以很好地学习到"it"这个词应该更多地关注"animal",而不是"street"。
3. 模型架构:编码器-解码器结构
Transformer的整体结构也采用了经典的编码器-解码器框架,但其内部完全由自注意力模块和前馈神经网络模块构成。
编码器
-
功能:负责理解和编码输入序列的信息。
-
结构:由N个(原文中N=6)完全相同的层堆叠而成。
-
每一层的核心组件:
-
多头自注意力层:让输入序列的每个位置都能关注到序列的所有位置。
-
前馈神经网络层:一个简单的全连接网络,对每个位置的表示进行独立变换。
-
残差连接和层归一化:每个子层周围都有,用于稳定训练、加速收敛和构建更深的网络。
-
解码器
-
功能:根据编码器的输出和之前已生成的输出,来生成目标序列。
-
结构:同样由N个(原文中N=6)完全相同的层堆叠而成。
-
每一层的核心组件:
-
掩码多头自注意力层:为了防止在训练时"偷看"未来的信息,它被掩码处理,只能关注到当前已生成的位置。
-
交叉注意力层 :这是连接编码器和解码器的关键。它让解码器中的每个位置都能关注到编码器输出的所有位置。
-
前馈神经网络层:与编码器中的相同。
-
残差连接和层归一化。
-
其他关键组件
-
位置编码:由于Transformer本身没有循环和卷积,因此不具备感知词序的能力。位置编码将每个词的位置信息(一个特定的向量)注入到词嵌入中,让模型能够利用序列的顺序信息。
-
线性层和Softmax:解码器最后的部分,将解码器的输出映射成一个概率分布,表示下一个词是词汇表中每个词的概率。
4. Transformer的主要优势
-
强大的并行能力:自注意力机制可以同时对整个序列进行计算,充分利用GPU并行计算资源,训练速度远超RNN。
-
卓越的长程依赖建模:无论序列中两个元素的距离有多远,自注意力都能直接建立连接,有效捕捉全局信息。
-
高性能:在各项NLP任务上,其性能都显著超过了之前的模型。
-
可扩展性强:其架构易于堆叠和扩展,为后续的超大型模型(如GPT、BERT)奠定了基础。
5. Transformer的发展
随着时间的推移,许多基于 Transformer 的变种被提出,并且在不同的应用场景中取得了成功。最著名的几种变种包括:
-
BERT (Bidirectional Encoder Representations from Transformers):一个仅使用编码器的 Transformer,用于预训练和生成深度的上下文表示,特别擅长处理文本理解任务。
-
GPT (Generative Pre-trained Transformer):一个只使用解码器的 Transformer,专注于生成文本,尤其在生成式任务中表现出色。
-
T5 (Text-to-Text Transfer Transformer):通过将所有任务转化为文本生成问题,T5 在多种 NLP 任务中表现优异。
-
Vision Transformer (ViT):将 Transformer 应用于计算机视觉任务,取得了与卷积神经网络(CNN)相当的效果。