从Transformer到Agent-第一章进阶学习笔记
从 Transformer 到 Agent 的核心概念与进阶学习笔记
从 Transformer 到 Agent:第一章进阶学习笔记
学习目标:在“Transformer + Token”的基础上,进一步理解注意力如何计算、位置信息如何进入模型,以及 Token 如何影响上下文与成本。
内容边界:当前飞书页面只介绍了 Transformer 与 Token 的基础概念。本文标注为“进阶延伸”的内容,是围绕原文主题补充的通用知识,并非页面原文摘录。
一、先建立完整心智模型
模型处理一句文本时,大致经历以下路径:
原始文本
↓ Tokenizer
Token 序列
↓ 词表映射
Token ID
↓ Token Embedding + Position Information
输入向量
↓ 多层 Transformer Block
上下文化表示
↓ Linear + Softmax
下一个 Token 的概率分布
↓ 选择或采样
生成 Token,再进入下一轮预测
模型不是一次写完整段落,而是每生成一个 Token,就把它加入上下文,再预测下一个 Token。
二、自注意力到底在算什么
2.1 Q、K、V 的直觉
进阶延伸:每个输入向量经过不同的线性变换,会得到三类向量:
| 向量 | 英文 | 直觉理解 |
|---|---|---|
| Query | Q,查询 | 当前 Token 想从上下文中寻找什么信息 |
| Key | K,键 | 每个 Token 可以用什么特征被匹配 |
| Value | V,值 | 匹配成功后,实际汇总什么信息 |
例如,在“苹果公司发布了新手机,它……”中,“它”需要判断指代对象。可以把“它”的 Q 理解为一个查询,而前文各 Token 的 K 提供匹配线索;匹配后,对应的 V 被加权汇总,让“它”的表示包含与“苹果公司”或“新手机”相关的上下文信息。
2.2 缩放点积注意力
注意力的经典表达式为:
$$ \operatorname{Attention}(Q,K,V) =\operatorname{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V $$
分步理解:
- $QK^T$:计算查询与各个键的匹配分数。
- 除以 $\sqrt{d_k}$:控制数值尺度,避免点积过大导致 Softmax 过于尖锐。
- Softmax:把分数转成总和为 1 的注意力权重。
- 乘以 $V$:按照权重汇总各位置的信息。
核心概念:注意力的输出是 Value 的加权和,权重由 Query 与 Key 的匹配程度决定。
2.3 一个极简数值例子
假设某个 Token 对三个上下文位置的匹配分数为:
[2.0, 1.0, 0.0]
经过 Softmax 后,概率大约为:
[0.665, 0.245, 0.090]
这表示第一个位置对当前 Token 的影响最大,但另外两个位置也没有被完全忽略。最终输出是三个 Value 按这些权重加权后的结果。
2.4 多头注意力
多头注意力(Multi-Head Attention)让模型在不同表示子空间中并行学习不同关系。某些注意力头可能更关注近邻搭配,另一些可能更关注指代、句法结构或长距离依赖。
三、为什么必须加入位置信息
自注意力主要根据内容相似度建立联系。如果完全没有位置信息,模型难以区分“猫追狗”和“狗追猫”中词序带来的语义差异。
因此,模型需要加入位置编码或位置表示,让每个 Token 的向量同时包含:
- “我是谁”:Token 本身的语义信息。
- “我在哪”:Token 在序列中的位置或相对位置关系。
| 位置方法 | 核心思路 |
|---|---|
| 绝对位置编码 | 为第 1、2、3……个位置提供不同表示 |
| 相对位置表示 | 更关注两个 Token 相距多远、方向如何 |
| 旋转位置编码 | 通过对向量进行与位置相关的旋转,将相对位置信息引入注意力计算 |
四、MLP 为什么不可缺少
注意力解决的是“从哪些位置读取多少信息”,MLP 更偏向“如何变换和加工当前特征”。
典型 MLP 会先把向量投影到更高维空间,经过非线性激活,再投影回模型维度。注意力和 MLP 反复堆叠后,模型逐层形成更丰富的上下文表示。
| 模块 | 主要问题 | 简化比喻 |
|---|---|---|
| Attention | 应该参考哪些上下文位置? | 信息检索与汇总 |
| MLP | 取回的信息应该如何加工? | 特征变换与精加工 |
除了这两部分,Transformer 块通常还包含残差连接(Residual Connection)和归一化(Normalization),以帮助信息传递和稳定训练。
五、Softmax、选择与生成结果
输出层先为词表中的每个候选 Token 产生一个分数,通常称为 logit。Softmax 把这些分数转换为概率:
$$ p_i=\frac{e^{z_i}}{\sum_j e^{z_j}} $$
得到概率分布后,解码过程可以有不同策略:
| 策略 | 做法 | 结果倾向 |
|---|---|---|
| 贪心选择 | 每次选概率最高的 Token | 稳定,但可能单调或陷入局部最优 |
| 概率采样 | 按概率随机抽样 | 更多样,但波动更大 |
| Top-k / Top-p | 只在一组较合理的候选中采样 | 在多样性与可靠性间折中 |
温度(Temperature)会调节概率分布的尖锐程度:温度较低时更偏向高概率候选;温度较高时,候选分布通常更平坦、输出更多样。
六、Token 与实际使用
6.1 上下文窗口
上下文窗口(Context Window)表示模型在一次请求中能够处理的 Token 范围。通常需要共同容纳系统指令、用户输入、历史消息、工具结果和模型输出。
例如,若某模型的上下文上限为 $C$,已使用的输入 Token 数为 $I$,为输出预留的最大 Token 数为 $O$,则至少要满足:
$$ I+O\leq C $$
6.2 成本估算
如果服务分别按输入和输出 Token 计费,可用下式估算成本:
$$ \text{总成本} =\frac{T_{in}}{U}\times P_{in} +\frac{T_{out}}{U}\times P_{out} $$
其中:
- $T_{in}$:输入 Token 数;
- $T_{out}$:输出 Token 数;
- $P_{in}$、$P_{out}$:每个计价单位的输入、输出价格;
- $U$:服务商使用的计价单位,例如每百万 Token。
七、关键概念对照
| 概念 | 它是什么 | 它不是什么 |
|---|---|---|
| Token | 模型使用的离散文本单元 | 不一定是完整单词或单个汉字 |
| Token ID | Token 在词表中的整数编号 | 不是包含语义的连续向量 |
| Embedding | Token ID 对应的连续向量表示 | 不是原始文本本身 |
| Attention | 按相关性汇总上下文信息 | 不是模型全部的推理过程 |
| Softmax | 将 logits 转换成概率分布 | 不是唯一的输出选择策略 |
| Context Window | 一次推理能容纳的 Token 范围 | 不等于模型能永久记住的信息量 |
八、费曼式复述
如果要向初学者解释,可以这样说:
先把句子切成小块,每个小块换成编号,再把编号换成向量。Transformer 会让每个小块观察上下文中哪些部分更重要,然后多层加工这些信息。最后,模型为下一个小块计算一组概率,选出一个,再重复整个过程。
九、进阶自测
- 在 Q、K、V 中,哪个决定“寻找什么”,哪个决定“提供什么内容”?
- 为什么注意力分数要除以 $\sqrt{d_k}$?
- 注意力权重已经包含上下文关系,为什么仍需要 MLP?
- Softmax 输出概率后,为什么多次生成结果仍可能不同?
- 为什么说上下文窗口不是“永久记忆”?
- 某次请求包含 80,000 输入 Token,并计划最多生成 10,000 输出 Token;模型上下文上限为 128,000 Token,是否在容量范围内?还剩多少余量?
参考答案
- Query 表示“寻找什么”,Value 表示匹配后“提供什么内容”;Key 用于与 Query 计算匹配程度。
- 当维度增大时,点积数值可能变大;缩放有助于防止 Softmax 过度饱和并稳定训练。
- 注意力主要负责跨位置的信息选择与汇总,MLP 负责对每个位置的特征进行进一步非线性变换。
- 后续可能使用概率采样、Top-k、Top-p 和不同温度,而不是始终贪心选择最高概率 Token。
- 上下文窗口只是当前推理过程可见的 Token 范围;超出窗口或结束会话后,信息不会自动成为模型参数中的永久记忆。
- 在范围内。共使用 90,000 Token,理论余量为 38,000 Token。
十、一页速记
- Tokenizer:文本 → Token → ID。
- Embedding:ID → 向量。
- Position:告诉模型 Token 的位置关系。
- Attention:Q 找 K,按权重汇总 V。
- MLP:进一步加工每个位置的特征。
- Linear + Softmax:分数 → 概率。
- Decoding:根据策略选择下一个 Token。
- Generation Loop:把新 Token 放回上下文,继续预测。
基础来源:当前飞书文档《从 Transformer 到 Agent》第一章“基础架构:Transformer 与 Token”。进阶部分为围绕该主题的学习性扩展。