从零理解 Attention 和 Transformer(学习笔记)
目录
1 我的想法 / 卡点
之前对 AI 的底层原理理解很模糊,一堆术语堆在一起分不清。今天从对话里一步步拆明白了。
主要卡点:
- 模型的"权重"到底是静态的还是动态的 → 两种都有
- Decoder-only 为什么不需要 Encoder → Decoder 自己就能看自己
- Attention 里的 Q、K、V 到底是什么 → 每个 token 乘三个矩阵算出来的
2 最终理解
2.1 两种权重别搞混
| 类型 | 什么时候变 | 作用 |
|---|---|---|
| 模型静态权重 | 训完就固定 | 模型的"知识",比如知道"的"后面常跟"名" |
| 注意力权重 | 每次输入动态算 | 这句话里哪个词跟当前输出最相关 |
2.2 Attention 三步(用"今天天气很好"生成"好"为例)
每个 token 变成向量后,乘三个矩阵(W_q、W_k、W_v),得到三样东西:
- Q(查询):我要找什么信息
- K(键值):我身上有什么标签
- V(价值):我身上有什么信息
然后:当前位置的 Q × 每个位置的 K → 得出得分 → softmax 归一化 → 用归一化后的分数加权取 V → 最终输出。
关键是自己在注意力计算时能看自己,不是只看前面的词。
2.3 Transformer = 注意力 + 前馈,叠 N 层
| |
2.4 为什么现在的大模型都是 Decoder-only
原始 Transformer 有 Encoder + Decoder,但聊天场景下输入和输出天然在一条序列里,Decoder 的 self-attention 自己就能回看所有 token,不需要 Encoder 额外"翻译"。
3 联系之前的问题
- 缓存为什么便宜:每个 token 的 K、V 上轮已经算好了,直接复用不用重算
- 多模态为什么多一个编码器:图像被打包成视觉 token 送进同一个 Transformer