从零到一,手撸一个Transformer!这篇硬核教程,带你揭开AI大模型的神秘面纱!
Transformer 架构是 Google 于 2017 年提出的一种神经网络模型架构,最早应用于机器翻译任务。机器翻译的目标是将源语言转换为目标语言。Transformer 完全依赖注意力机制来建模源语言序列和目标语言序列的全局依赖关系。如今,几乎所有大型语言模型都以 Transformer 架构为基础。本节以机器翻译任务中的 Transformer 编码器和解码器结构为例,介绍该模型的核心组
1 Transformer 结构
Transformer 架构是 Google 于 2017 年提出的一种神经网络模型架构,最早应用于机器翻译任务。机器翻译的目标是将源语言转换为目标语言。Transformer 完全依赖注意力机制来建模源语言序列和目标语言序列的全局依赖关系。如今,几乎所有大型语言模型都以 Transformer 架构为基础。本节以机器翻译任务中的 Transformer 编码器和解码器结构为例,介绍该模型的核心组成。
Transformer 的编码器和解码器结构如图所示,分别位于图的左侧和右侧。两者均由多个堆叠的 Transformer 块(Block)构成(图中灰色框,N× 表示堆叠 N 次)。每个 Transformer 块接收一个向量序列作为输入,输出一个等长的向量序列,在从输入到输出的语义处理过程中,涉及以下核心模块:
-
注意力层
采用多头注意力机制整合上下文语义。多头注意力通过并行运行多个独立注意力机制,从多维度捕获输入序列的信息。该机制允许直接建模序列中任意两个词之间的依赖关系,摒弃传统循环结构,有效解决长程依赖问题。
-
位置感知前馈网络层
通过全连接层对序列中每个词的表示进行复杂的非线性变换。
-
残差连接
对应图中的 Add 部分,是连接注意力层和前馈网络层输入与输出的直连通路,促进信息流动,提升模型优化效率。
-
层归一化
对应图中的 Norm 部分,对注意力层和前馈网络层的输出序列进行归一化处理,进一步稳定模型优化过程。
接下来依次介绍各个模块的具体功能和实现代码:

2 嵌入表示层
在处理输入文本序列时,Transformer 首先会通过输入嵌入层(Input Embedding)将每个单词映射为对应的向量表示。与以往循环结构不同,Transformer 并不依赖顺序建模,因此序列中天然缺乏单词之间的相对位置信息。为了让模型在编码上下文语义之前能够感知词序,需要在词嵌入中加入位置编码(Positional Encoding)。
为了得到不同位置所对应的编码,Transformer 结构使用不同频率的正余弦函数,如下所示:

具体来说,序列中每个单词的位置都会生成一个位置向量,并与其词向量相加,再送入后续网络层。训练过程中,模型会逐渐学会利用这部分位置信息。
Transformer 使用不同频率的正弦和余弦函数来计算位置编码,其中 pos 表示单词在序列中的位置,2i 与 2i+1 代表奇数位置和偶数位置,d 表示编码的总维度。这样做有两个好处:
- 正弦和余弦函数的取值范围在 [−1, +1],与原始词嵌入相加后不会显著偏离,从而保留了单词的语义信息。
- 由于三角函数的线性关系,第
pos + k个位置的编码可以由第pos个位置的编码线性表示,这意味着位置编码中自然包含了单词之间的距离信息。
使用 PyTorch 实现的位置编码参考代码如下:

3 注意力层
自注意力机制(Self-Attention)是 Transformer 模型中的核心运算,广泛应用于源语言的编码和目标语言的生成过程。它的主要作用是建立序列中任意两个单词之间的依赖关系。
首先,输入的每个单词通过词向量嵌入与位置编码相加后得到表示 xi∈Rd(Rd为嵌入矩阵)。为了捕捉上下文的依赖信息,Transformer 在每个单词的表示中引入三个关键向量:查询(Query, Qi)、键(Key, Ki)和值(Value, Vi)。它们反映了当前单词在计算表示时,对序列中其他单词应当分配多少注意力权重。


由此可见,自注意力机制使模型能够识别不同输入部分的重要性,而不受距离的影响,从而能够捕捉输入句子中的长距离依赖关系和复杂关系。
使用 PyTorch 实现的自注意力层参考代码如下:
class MultiHeadAttention(nn.Module):
def __init__(self, heads, d_model, dropout = 0.1):
super().__init__()
self.d_model = d_model
self.d_k = d_model // heads
self.h = heads
self.q_linear = nn.Linear(d_model, d_model)
self.v_linear = nn.Linear(d_model, d_model)
self.k_linear = nn.Linear(d_model, d_model)
self.dropout = nn.Dropout(dropout)
self.out = nn.Linear(d_model, d_model)
def attention(q, k, v, d_k, mask=None, dropout=None):
scores = torch.matmul(q, k.transpose(-2, -1)) / math.sqrt(d_k)
# 掩盖那些为了补全长度而增加的单元,使其通过Softmax计算后为0
if mask is not None:
mask = mask.unsqueeze(1)
scores = scores.masked_fill(mask == 0, -1e9)
scores = F.softmax(scores, dim=-1)
if dropout is not None:
scores = dropout(scores)
output = torch.matmul(scores, v)
return output
def forward(self, q, k, v, mask=None):
bs = q.size(0)
# 利用线性计算划分成h个头
k = self.k_linear(k).view(bs, -1, self.h, self.d_k)
q = self.q_linear(q).view(bs, -1, self.h, self.d_k)
v = self.v_linear(v).view(bs, -1, self.h, self.d_k)
# 矩阵转置
k = k.transpose(1,2)
q = q.transpose(1,2)
v = v.transpose(1,2)
# 计算attention
scores = attention(q, k, v, self.d_k, mask, self.dropout)
4 前馈层
前馈层接收自注意力子层的输出作为输入,并通过一个带有 ReLU 激活函数的两层全连接网络对输入进行更复杂的非线性变换。实验证明,这一非线性变换会对模型最终的性能产生重要的影响。
计算公式 为:
FFN(x) = ReLU(xW1 + b1)W2 + b2
其中(xW1 + b1)表示上一层前馈子层的计算结果。实验结果表明,增大前馈子层隐状态的维度有利于提高最终翻译结果的质量,因此,前馈子层隐状态的维度一般比自注意力子层要大。
class FeedForward(nn.Module):
def __init__(self, d_model, d_ff=2048, dropout = 0.1):
super().__init__()
# d_ff默认设置为2048
self.linear_1 = nn.Linear(d_model, d_ff)
self.dropout = nn.Dropout(dropout)
self.linear_2 = nn.Linear(d_ff, d_model)
def forward(self, x):
x = self.dropout(F.relu(self.linear_1(x)))
x = self.linear_2(x)
return x
5 残差连接与层归一化
由 Transformer 结构构建的网络通常规模庞大,编码器和解码器都由多层堆叠的基本 Transformer 块组成。由于每一层内部都包含复杂的非线性映射,训练过程往往比较困难。为提升训练的稳定性,研究人员在 Transformer 块中引入了残差连接(Residual Connection)和层归一化(Layer Normalization)两项技术。
其中,残差连接通过在子层的输入与输出之间添加一条直接的捷径,使得输入能够绕过复杂的非线性变换直接传递到输出。这一机制能够有效缓解深层网络中的梯度消失问题,从而保证训练的可优化性。
另一方面,层归一化用于保证每一层输入与输出的数值分布稳定在合理范围内。其计算方式为:

其中,μ和 σ 分别表示输入的均值和标准差,用于将数据归一化到均值为 0、方差为 1 的标准分布;α和 b是可学习参数,用于恢复模型所需的表示能力。层归一化不仅能减少训练中的数值不稳定,还能加快收敛速度。
class Norm(nn.Module):
def __init__(self, d_model, eps = 1e-6):
super().__init__()
self.size = d_model
# 层归一化包含两个可以学习的参数
self.alpha = nn.Parameter(torch.ones(self.size))
self.bias = nn.Parameter(torch.zeros(self.size))
self.eps = eps
def forward(self, x):
norm = self.alpha * (x - x.mean(dim=-1, keepdim=True)) / (x.std(dim=-1, keepdim=True) + self.eps) + self.bias
return norm
以上就是transformer各模块的代码示意,可见pytorch封装度非常高,使用pytorch可以轻松实现。
如何学习大模型 AI ?
我国在AI大模型领域面临人才短缺,数量与质量均落后于发达国家。2023年,人才缺口已超百万,凸显培养不足。随着Al技术飞速发展,预计到2025年,这一缺口将急剧扩大至400万,严重制约我国Al产业的创新步伐。加强人才培养,优化教育体系,国际合作并进,是破解困局、推动AI发展的关键。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

2025最新大模型学习路线
明确的学习路线至关重要。它能指引新人起点、规划学习顺序、明确核心知识点。大模型领域涉及的知识点非常广泛,没有明确的学习路线可能会导致新人感到迷茫,不知道应该专注于哪些内容。
对于从来没有接触过AI大模型的同学,我帮大家准备了从零基础到精通学习成长路线图以及学习规划。可以说是最科学最系统的学习路线。

针对以上大模型的学习路线我们也整理了对应的学习视频教程,和配套的学习资料。
大模型经典PDF书籍
新手必备的大模型学习PDF书单来了!全是硬核知识,帮你少走弯路!

配套大模型项目实战
所有视频教程所涉及的实战项目和项目源码等
博主介绍+AI项目案例集锦
MoPaaS专注于Al技术能力建设与应用场景开发,与智学优课联合孵化,培养适合未来发展需求的技术性人才和应用型领袖。


这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

为什么要学习大模型?
2025人工智能大模型的技术岗位与能力培养随着人工智能技术的迅速发展和应用 , 大模型作为其中的重要组成部分 , 正逐渐成为推动人工智能发展的重要引擎 。大模型以其强大的数据处理和模式识别能力, 广泛应用于自然语言处理 、计算机视觉 、 智能推荐等领域 ,为各行各业带来了革命性的改变和机遇 。

适合人群
- 在校学生:包括专科、本科、硕士和博士研究生。学生应具备扎实的编程基础和一定的数学基础,有志于深入AGI大模型行业,希望开展相关的研究和开发工作。
- IT行业从业人员:包括在职或失业者,涵盖开发、测试、运维、产品经理等职务。拥有一定的IT从业经验,至少1年以上的编程工作经验,对大模型技术感兴趣或有业务需求,希望通过课程提升自身在IT领域的竞争力。
- IT管理及技术研究领域人员:包括技术经理、技术负责人、CTO、架构师、研究员等角色。这些人员需要跟随技术发展趋势,主导技术创新,推动大模型技术在企业业务中的应用与改造。
- 传统AI从业人员:包括算法工程师、机器视觉工程师、深度学习工程师等。这些AI技术人才原先从事机器视觉、自然语言处理、推荐系统等领域工作,现需要快速补充大模型技术能力,获得大模型训练微调的实操技能,以适应新的技术发展趋势。

课程精彩瞬间
大模型核心原理与Prompt:掌握大语言模型的核心知识,了解行业应用与趋势;熟练Python编程,提升提示工程技能,为Al应用开发打下坚实基础。
RAG应用开发工程:掌握RAG应用开发全流程,理解前沿技术,提升商业化分析与优化能力,通过实战项目加深理解与应用。
Agent应用架构进阶实践:掌握大模型Agent技术的核心原理与实践应用,能够独立完成Agent系统的设计与开发,提升多智能体协同与复杂任务处理的能力,为AI产品的创新与优化提供有力支持。
模型微调与私有化大模型:掌握大模型微调与私有化部署技能,提升模型优化与部署能力,为大模型项目落地打下坚实基础。
顶尖师资,深耕AI大模型前沿技术
实战专家亲授,让你少走弯路
一对一学习规划,职业生涯指导
- 真实商业项目实训
- 大厂绿色直通车
人才库优秀学员参与真实商业项目实训
以商业交付标准作为学习标准,具备真实大模型项目实践操作经验可写入简历,支持项目背调
大厂绿色直通车,冲击行业高薪岗位
文中涉及到的完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

更多推荐








所有评论(0)