Transformer初探

整体架构图如下

一、Transformer是什么?

Transformer 是 Google 在 2017 年论文:

Attention Is All You Need

提出的深度学习架构。

核心思想:

不再使用 RNN/LSTM 的顺序计算,而是通过 Attention 机制一次性关注整个序列。

整体流程为:输入 - 转为token - 向量化 - 位置编码 - decoder ,最后一个- liner(点乘) - softmax(归一化)- 输出几万个概率


二、为什么Transformer会出现?

在 Transformer 之前:

复制代码
RNN
↓
LSTM
↓
GRU

存在问题:

1. 无法并行

例如:

复制代码
我
↓
喜欢
↓
学习
↓
AI

必须一个一个计算。


2. 长距离依赖差

例如:

复制代码
小明去了北京旅游,
......
三天后他回来了。

模型很难关联:

复制代码
他
↓
小明

Transformer解决方案:

复制代码
所有Token同时计算

通过 Attention:

复制代码
任意Token
↓
关注
↓
任意Token

三、Transformer整体结构

图里的结构:

复制代码
Input
↓
Encoder
↓
Decoder
↓
Output

四、Encoder(编码器)

整体工作原理为,比如输入1300个token

input【0】 = Embedding【0】+ Position【0】

...

input【1299】 = Embedding【1299】+ Position【1299】

产生1300个向量

围绕着中心主题次,1300个向量分别与其他向量 聚合 产生新的 1300个向量

然后做多轮组合,GPT3 是96轮,目前最新的模型已经是100多轮了

作用:

理解输入内容。


例如:

用户输入:

复制代码
我这种情况,法院会怎么判?

首先:

Tokenization

变成:

复制代码
我
这种
情况
法院
会
怎么
判

Embedding

每个词变成向量:

复制代码
我
↓
[0.12,0.55...]

法院
↓
[0.77,0.88...]

Position Encoding

因为:

Attention不知道顺序。

所以加:

复制代码
位置编码

告诉模型:

复制代码
谁在前
谁在后

Multi-Head Attention

这是 Encoder 最核心部分。

例如:

复制代码
我这种情况
法院会怎么判

模型会自动发现:

复制代码
法院
↓
关注
↓
判

关系。


Feed Forward

进一步提取特征。


Add & Norm

做:

复制代码
残差连接
+
LayerNorm

保证训练稳定。


整个 Encoder:

复制代码
Attention
↓
FFN
↓
Attention
↓
FFN

重复 N 层。

图中的:

复制代码
Nx

就是这个意思。


五、Decoder(解码器)

现在已经延伸为decoder-only(就是不需要编码器的输入)

大概意思是可以举例为:

输入提示词比如1300个,第一轮后,1300+1个token,然后再进行下一轮

输出后的最后一个,代表所有的回复

右边部分。

作用:

生成文本。


例如:

输入:

复制代码
法院会怎么判

生成:

复制代码
法院
↓
会
↓
根据
↓
具体
↓
情况

一个字一个字输出。


所以图里写:

复制代码
自回归

就是:

复制代码
预测下一个Token

六、为什么有两个Attention?

说起注意力机制的话,就会产生疑问什么是注意力机制?

注意力机制就是把注意力放在重要的事情上

QKV:核心是用Q和K去计算相关度系数,计算方式为点乘然后再softmax(归一化)


第一层

Decoder里面有:Masked Attention

图中:

复制代码
Masked Multi-Head Attention

作用:

不能偷看未来。

例如:

复制代码
我 爱 学习 AI

预测:

复制代码
学习

不能看到:

复制代码
AI

所以:

复制代码
Mask

未来内容。

这样做的好处就是,可以省下一半算力,比如原来是输入1300个token,那么整体计算是1300的平方,加了掩码后,可以为1300的平方 除以2


第二层

Cross Attention

图中:

复制代码
Multi-Head Attention

作用:

看 Encoder 输出。

例如:

复制代码
用户:
我这种情况法院会怎么判

生成回答时:

复制代码
当前Token
↓
关注
↓
用户输入

七、Attention核心原理

Transformer灵魂。

公式:

Attention(Q,K,V)=softmax(QKTdk)VAttention(Q,K,V)=softmax(\frac{QK^T}{\sqrt{d_k}})VAttention(Q,K,V)=softmax(dk​​QKT​)V


Q:

复制代码
我要找什么

K:

复制代码
我是什么

V:

复制代码
我的内容

过程:

复制代码
Q × K

计算相关性。

复制代码
softmax

通过归一化变成权重。


再:

复制代码
权重 × V

得到结果。

KV Cache

KV Cache 是一种以内存换速度 的优化技术,主要用于自回归生成任务(如 GPT、LLaMA 生成文本)。


1. 核心问题:为什么要用 KV Cache?

自回归生成时,模型每次只生成 1 个新 token ,但生成时需要看到所有之前 token 的上下文。

如果不做缓存,每生成一个新 token,模型都会重新计算之前所有 token 的 Key 和 Value,导致计算量随生成长度线性增长(O(n²) 复杂度)。


2. 直观理解

假设你已经生成了句子:"今天 天气 真好",现在要生成下一个词。

  • Attention 机制:新 token 需要和所有之前的 token(今天、天气、真好)计算注意力。

  • Key/Value:每个 token 在 attention 中对应的 K、V 向量。

  • 关键观察 :

    之前 token 的 K、V 在生成下一个 token 时不会改变(因为它们的 token 内容不变,模型参数也固定)。

因此,我们可以:

  1. 生成第一个 token 时,计算并缓存所有 token 的 K、V。

  2. 生成第二个 token 时,只需计算新 token 的 K、V,并复用之前缓存的 K、V。

  3. 依次类推。

3. KV Cache 工作原理

没有 KV Cache:

  • 每步计算所有历史 token 的 K、V → 大量重复计算。

有 KV Cache:

  • 维护一个缓存,存储已生成 token 的 K、V。

  • 每步:

    • 只计算当前新 token 的 Q、K、V。

    • 将新 token 的 K、V 追加到缓存中。

    • 用当前 Q + 缓存的全部 K、V 计算 attention。


4. 效果对比

方式 计算复杂度 内存占用
无 Cache O(n²) 较低
有 Cache O(n) 较高(存储所有历史 K、V)

生成长序列(如 2048 tokens)时,KV Cache 能带来 10~100 倍 的速度提升。


5. 代价

  • 显存消耗 :

    缓存大小 = batch_size × seq_len × num_heads × head_dim × 2(K 和 V)

    例如:LLaMA-7B (32 heads, 128 dim, 2048 tokens) 约 1GB 显存。

  • 实现复杂度:需要管理不同 batch 中不同序列的缓存。


八、Encoder和Decoder分别对应什么模型?

这是面试高频。

Encoder一般用来做分析

Decoder一般用来做回答


BERT

只保留 Encoder

复制代码
Input
↓
Encoder

适合:

复制代码
分类
检索
Embedding

GPT

只保留 Decoder

复制代码
Input
↓
Decoder

适合:

复制代码
文本生成
聊天
Agent

T5

保留完整结构

复制代码
Encoder
+
Decoder

适合:

复制代码
翻译
摘要
问答

九、为什么GPT最终赢了?

因为 GPT 的目标:

复制代码
预测下一个Token

天然适合:

复制代码
生成

而:

复制代码
聊天
Agent
代码生成

本质都是:

复制代码
Next Token Prediction

面试版回答(2分钟)

Transformer 是 Google 在 2017 年提出的基于 Attention 的深度学习架构,用来解决 RNN 无法并行训练和长距离依赖的问题。其核心由 Encoder 和 Decoder 组成,Encoder 负责理解输入,Decoder 负责生成输出。每层主要包含 Multi-Head Attention、Feed Forward、残差连接和 LayerNorm。Attention 通过 Q、K、V 机制计算不同 Token 之间的关联关系,使模型能够关注整个上下文。后来 BERT 保留 Encoder 用于理解任务,GPT 保留 Decoder 用于生成任务,目前主流大模型如 GPT、Qwen、DeepSeek 都属于 Decoder Only 架构。

相关推荐
老金带你玩AI2 小时前
这几天,我都是拿手机让dot帮我干活
人工智能
7yewh4 小时前
SLAM 三维空间刚体运动(2)
数据结构·人工智能·机器人·嵌入式·slam
小虎AI生活5 小时前
WorkBuddy 模型选型实操:0.03 倍的 Space-Bunny 怎么用、派什么活、避什么坑
人工智能·超级个体·一人公司·青玥ai
ai小陈5 小时前
GPU服务器租用存储验收:检查点写入与磁盘吞吐实战
运维·服务器·人工智能·ai·ssh·gpu算力
微三云马玮均—GEO源码系统 私有化部署5 小时前
消费返物业费:消费+服务趋势的必然产物!
大数据·人工智能·物联网·区块链·生活
明月_清风5 小时前
Muse 登顶 App Store 第一,SDK 直接开源:AI Agent 开始进入下一个阶段
人工智能·后端
JackSparrow4146 小时前
和AI一起将全部CSDN博文迁移到个人博客站
人工智能·程序人生·ai·github·cloudflare·astro·静态博客
55873 生态系统6 小时前
第 22 篇|社区聊天|55873 文明共建者的日常交流与协作界面
人工智能·区块链·55873全域文明生态体系·55873操作系统·55873社区聊天
搬砖的小码农_Sky6 小时前
AI Agent:如何处理Claude Code 最近版本(2026年更新)引入的模型上下文限制
人工智能·windows·ai·ai编程