news 2026/9/30 4:52:39

Transformer 深入浅出:从问题推导到大语言模型核心架构

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Transformer 深入浅出:从问题推导到大语言模型核心架构

Transformer 深入浅出:从问题推导到大语言模型核心架构

从一个问题开始理解 Transformer,而不是背 Q/K/V、Attention 公式。

1. 为什么需要 Transformer?

在 Transformer 出现之前,NLP(自然语言处理)主要依赖 RNN、LSTM 等循环神经网络。

例如:

我昨天去了银行办理贷款。

传统 RNN 的处理方式:

我 ↓ 昨天 ↓ 去 ↓ 银行 ↓ 办理 ↓ 贷款

模型需要按照顺序逐个读取。

这种方式存在两个核心问题:

问题 1:无法充分并行

GPU 擅长矩阵计算,但是 RNN 必须:

第1个词处理完成 ↓ 第2个词处理 ↓ 第3个词处理

前一个时间步完成之前,后一个无法开始。

因此训练效率较低。


问题 2:长距离依赖困难

例如:

我小时候住在北京,后来去了很多城市,二十年后我又回到了这里。

模型需要知道:

这里 ↓ 北京

二者距离很远。

RNN 需要经过很多计算步骤传递信息,容易丢失。

因此出现一个核心问题:

一个词如何直接关注句子中其他相关的词?

这就是 Attention 的来源。


2. Transformer 的核心思想

Transformer 的核心:

让每个 token 根据当前上下文,动态决定应该关注哪些 token。

例如:

我 去 银行 办理 贷款

理解:

银行

时:

模型发现:

办理 贷款

和它关系更强。

于是:

银行 + 办理 + 贷款

共同决定“银行”的当前含义。

这就是:

Contextual Representation 上下文表示

同一个词:

bank

在不同句子:

I went to the bank. I sat near the bank of the river.

会产生不同含义。


3. 输入:文字如何进入 Transformer?

计算机不能直接理解:

银行

所以第一步:

Tokenization

文本:

我喜欢人工智能

转换:

token1 token2 token3

然后:

Embedding

每个 token 转换成向量:

银行 ↓ [0.21, -0.53, 0.88 ...]

假设:

d_model = 768

那么:

一个 token:

768维向量

一句话:

seq_len × d_model

例如:

10 × 768

4. 为什么需要 Position Encoding?

Attention 有一个特点:

它只关心 token 之间的关系。

但是:

我打你

和:

你打我

如果没有位置信息:

模型不知道顺序。

因此 Transformer 加入:

Position Encoding

最终输入:

Token Embedding + Position Information

告诉模型:

这个词是什么 + 这个词在哪里

现代大模型中常见:

RoPE Rotary Position Embedding

也是为了解决位置信息问题。


5. Self-Attention:Transformer 的核心

Attention 解决的问题:

当前 token 应该关注哪些 token?

例如:

我 去 银行 办理 贷款

处理:

银行

时,需要判断:

我 去 银行 办理 贷款

哪个重要。

于是产生:

Q K V

6. Q、K、V 到底是什么?

不要把 Q/K/V 理解成三个输入。

它们来自同一个输入:

X

通过三个不同的线性变换:

Q = XWq K = XWk V = XWv

其中:

Wq Wk Wv

都是模型训练出来的参数。


Query

表示:

我想寻找什么信息?

例如:

银行:

我想知道哪些词和我的金融含义相关?

Key

表示:

我是什么类型的信息?

例如:

贷款:

我是金融相关信息

Value

表示:

如果关注我,我提供什么内容?


所以 Attention 的流程:


7. Attention 公式解析

公式:

拆开:

第一步:QKᵀ

计算:

Query 和 所有 Key

的相似度。

得到:

token之间的关系矩阵

例如:

我 去 银行 办理 贷款 我 去 银行 办理 贷款

每个位置代表:

一个 token 对另一个 token 的关注程度

第二步:Softmax

把分数转换成概率:

例如:

办理 25% 贷款 60% 银行 7%

表示:

银行主要关注:

贷款 办理

第三步:加权求和 V

最终:

银行的新表示 = 0.25×办理信息 + 0.60×贷款信息 + 其他信息

于是:

原来的:

银行

变成:

和金融业务相关的银行

8. 为什么需要 Multi-Head Attention?

一个 Attention 只能观察一种关系。

但是语言包含很多关系:

例如:

小明因为小红生病,所以他去医院看她。

同时存在:

他 → 小明 她 → 小红 医院 → 生病

因此 Transformer 使用:

Multi-Head Attention

多个注意力头:

Head 1 关注语法 Head 2 关注指代 Head 3 关注语义关系

最后:

Concat ↓ Linear

融合。

注意:

模型并没有人为规定:

Head1一定学语法

这些关系是训练过程中自动形成的。


9. FFN:Attention 后为什么还需要它?

这是很多人容易误解的地方。

Attention:

负责信息交换。

FFN:

负责信息加工。

例如:

Attention:

银行 获得: 贷款信息 办理信息

但是这些只是收集来的信息。

FFN 进一步处理:

贷款 + 办理 + 银行 ↓ 形成更高级特征 ↓ 金融行为

FFN 结构:

输入 ↓ Linear ↓ 激活函数 ↓ Linear ↓ 输出

通常:

768维 ↓ 3072维 ↓ 768维

为什么扩大?

因为更高维空间可以学习更多复杂组合。


可以这样记:

Attention: 我应该看谁? FFN: 看完之后,我应该如何理解?

10. Residual Connection 为什么存在?

Transformer 很深:

Block1 ↓ Block2 ↓ Block3 ...

容易:

  • 信息丢失

  • 梯度消失

所以加入残差:

普通:

x ↓ Layer ↓ y

残差:

x --------┐ ↓ Layer(x) + x

公式:

意思:

新学习的信息建立在原信息基础上。


11. LayerNorm 的作用

深层网络中:

不同层的数据分布可能变化。

LayerNorm:

帮助:

  • 稳定训练

  • 加速收敛

  • 防止数值异常

简单理解:

调整数据分布 让网络更容易学习

12. 一个 Transformer Block 的完整结构

输入 ↓ Self Attention ↓ Residual ↓ Normalization ↓ FFN ↓ Residual ↓ Normalization ↓ 输出

大量堆叠:

Block 1 ↓ Block 2 ↓ Block 3 ↓ ... ↓ Block N

形成大型语言模型。


13. 为什么高层表示更加抽象?

不是因为:

第1层负责语法 第30层负责推理

这种固定划分。

真实情况:

每一层都在:

Attention + FFN

不断加工。

简单理解:

低层:

词之间的关系

中层:

关系组合

高层:

更复杂的语义模式

例如:

第一层:

银行 关注 贷款

中间层:

银行 + 贷款 + 办理

更高层:

用户正在进行金融行为

14. Decoder-only 为什么成为 GPT 的主流?

Transformer 最初:

Encoder + Decoder

例如翻译任务。

后来发现:

很多任务只需要生成。

于是出现:

Decoder-only

代表:

GPT Llama Qwen DeepSeek

它的特点:

只能看到过去:

我 今天 去

不能看到未来:

银行

因此使用:

Causal Mask

保证:

预测当前 token 时不能偷看答案。


15. GPT 如何生成文本?

输入:

中国的首都是

流程:

Tokenizer ↓ Embedding ↓ Transformer ↓ Hidden State ↓ Linear ↓ Vocabulary概率

得到:

北京 0.9 上海 0.02 广州 0.01

选择:

北京

然后:

中国的首都是北京

继续预测。

这叫:

Autoregressive Generation 自回归生成

16. 为什么只预测下一个 token,却能产生智能?

核心:

预测任务很简单,但是为了预测准确,模型必须学习复杂规律。

例如:

预测:

法国的首都是

需要知道:

法国 国家实体 首都 城市关系 巴黎 对应知识

预测:

def binary_search():

需要知道:

代码结构 算法逻辑 变量关系

预测:

小明有3个苹果,又买2个,一共有

需要知道:

数学推理过程

因此:

next-token prediction ↓ 学习语言规律 ↓ 学习世界规律 ↓ 形成语义表示 ↓ 产生复杂能力

17. Transformer 与 LLM 的完整链路

最终:

文本 ↓ Tokenizer ↓ Embedding ↓ Position Encoding ↓ Transformer Blocks ↓ Self Attention ↓ FFN ↓ Residual + Norm ↓ Hidden State ↓ LM Head ↓ 下一个 Token ↓ 循环生成

18. 最终理解框架

不要记:

Transformer = QKV + Softmax

应该记:

文字无法计算 ↓ Embedding 词没有上下文 ↓ Attention 不知道位置 ↓ Position Encoding 信息需要加工 ↓ FFN 网络需要稳定训练 ↓ Residual + Norm 不断堆叠 ↓ Transformer 预测下一个token ↓ LLM

一句话总结:

Transformer 本质是一种通过 Self-Attention 建立 token 之间关系,并通过 FFN 进行特征加工的深度神经网络架构。大型语言模型利用大量文本训练这个架构,使其在预测 token 的过程中学习到语言、知识、代码和复杂任务模式。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/30 4:51:59

Node.js+Vue养老院服务系统:设计与实现全解析

干过几个前后端分离的实战项目之后,再看"nodejs基于vue的养老院服务系统的设计与实现"这种题目,我第一反应是:这不就是典型的毕设/课设级全栈项目吗?很多人一拿到这种题,就急着找代码、扒模板,结…

作者头像 李华
网站建设 2026/9/30 4:51:54

IDEA社区版+Tomcat+Maven搭建JavaWeb项目保姆级教程

我一直建议刚学JavaWeb的同学直接用IDEA社区版来练手,原因很简单:免费、干净、不用折腾任何激活相关的东西,而且该有的功能一样不少。很多人一听“社区版”就觉得做不了Web开发,其实根本没这回事——JavaWeb核心就是Servlet、JSP、…

作者头像 李华
网站建设 2026/9/30 4:51:07

Win10多用户远程连接的三种可靠方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/30 4:50:36

GRU门控循环单元详解:解决RNN长期依赖问题的实用指南

1. RNN的长期依赖困境:GRU要解决的根本问题1.1 先从一次实际的训练失败说起去年我在做一个基于股票分钟线的趋势预测项目,数据预处理做得自认为很干净,特征工程也花了整整两周打磨,模型选的也是最经典的RNN结构——单层循环神经网…

作者头像 李华
网站建设 2026/9/30 4:50:17

企业级RAG落地三大生死线:数据、向量库与服务链路

1. 这不是技术问题,是交付认知的断层RAG这个词,现在几乎成了AI项目启动会上的标配词汇。上周刚陪一家做工业设备远程诊断的客户过需求,CTO开场就问:“你们的RAG方案能支持我们2000份PDF手册3万条维修工单实时IoT日志联合检索吗&am…

作者头像 李华
网站建设 2026/9/30 4:50:17

Ubuntu上电自启动完全指南:systemd服务配置与避坑实践

从刚接触Ubuntu那阵子开始,我就被“上电自启动程序”这个需求反复折腾。不论是给工控机配开机采集脚本,还是在开发板上跑一个业务程序,总绕不过一个问题:系统一通电,怎么让我的程序不等人去敲命令、不依赖手动登入桌面…

作者头像 李华