← Frontend / AI

从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 被加权汇总,让“它”的表示包含与“苹果公司”或“新手机”相关的上下文信息。

理解提醒:Q、K、V 是帮助理解的比喻,本质上都是模型训练得到的数值向量,不是人工编写的自然语言问题、目录和答案。

2.2 缩放点积注意力

注意力的经典表达式为:

$$ \operatorname{Attention}(Q,K,V) =\operatorname{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V $$

分步理解:

  1. $QK^T$:计算查询与各个键的匹配分数。
  2. 除以 $\sqrt{d_k}$:控制数值尺度,避免点积过大导致 Softmax 过于尖锐。
  3. Softmax:把分数转成总和为 1 的注意力权重。
  4. 乘以 $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 相距多远、方向如何
旋转位置编码 通过对向量进行与位置相关的旋转,将相对位置信息引入注意力计算
易错点:“Transformer 能理解顺序”不等于注意力天然包含顺序;顺序感来自专门设计的位置表示机制。

四、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)会调节概率分布的尖锐程度:温度较低时更偏向高概率候选;温度较高时,候选分布通常更平坦、输出更多样。

易错点:Softmax 只负责把分数归一化为概率;真正决定选择哪个 Token 的,是后续解码策略。

六、Token 与实际使用

6.1 上下文窗口

上下文窗口(Context Window)表示模型在一次请求中能够处理的 Token 范围。通常需要共同容纳系统指令、用户输入、历史消息、工具结果和模型输出。

例如,若某模型的上下文上限为 $C$,已使用的输入 Token 数为 $I$,为输出预留的最大 Token 数为 $O$,则至少要满足:

$$ I+O\leq C $$

实践提示:长文任务不要只看字数。先估算或实际计算 Token 数,并给回答、工具结果和格式化内容留出空间。

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。
计算提醒:不同模型的价格、计价单位、缓存折扣和 Tokenizer 可能不同,实际成本应以对应服务的最新计费规则和实测 Token 数为准。

七、关键概念对照

概念 它是什么 它不是什么
Token 模型使用的离散文本单元 不一定是完整单词或单个汉字
Token ID Token 在词表中的整数编号 不是包含语义的连续向量
Embedding Token ID 对应的连续向量表示 不是原始文本本身
Attention 按相关性汇总上下文信息 不是模型全部的推理过程
Softmax 将 logits 转换成概率分布 不是唯一的输出选择策略
Context Window 一次推理能容纳的 Token 范围 不等于模型能永久记住的信息量

八、费曼式复述

如果要向初学者解释,可以这样说:

先把句子切成小块,每个小块换成编号,再把编号换成向量。Transformer 会让每个小块观察上下文中哪些部分更重要,然后多层加工这些信息。最后,模型为下一个小块计算一组概率,选出一个,再重复整个过程。

检验标准:如果你能不使用“模型很智能”这种模糊说法,完整解释“文本 → Token → 向量 → 注意力 → 概率 → 生成”,就已经掌握本章主线。

九、进阶自测

  1. 在 Q、K、V 中,哪个决定“寻找什么”,哪个决定“提供什么内容”?
  2. 为什么注意力分数要除以 $\sqrt{d_k}$?
  3. 注意力权重已经包含上下文关系,为什么仍需要 MLP?
  4. Softmax 输出概率后,为什么多次生成结果仍可能不同?
  5. 为什么说上下文窗口不是“永久记忆”?
  6. 某次请求包含 80,000 输入 Token,并计划最多生成 10,000 输出 Token;模型上下文上限为 128,000 Token,是否在容量范围内?还剩多少余量?
参考答案
  1. Query 表示“寻找什么”,Value 表示匹配后“提供什么内容”;Key 用于与 Query 计算匹配程度。
  2. 当维度增大时,点积数值可能变大;缩放有助于防止 Softmax 过度饱和并稳定训练。
  3. 注意力主要负责跨位置的信息选择与汇总,MLP 负责对每个位置的特征进行进一步非线性变换。
  4. 后续可能使用概率采样、Top-k、Top-p 和不同温度,而不是始终贪心选择最高概率 Token。
  5. 上下文窗口只是当前推理过程可见的 Token 范围;超出窗口或结束会话后,信息不会自动成为模型参数中的永久记忆。
  6. 在范围内。共使用 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”。进阶部分为围绕该主题的学习性扩展。