一、为什么 Agent 开发者绕不开 Transformer
我们先给 Agent 一个不太严谨但足够好用的定义:
Agent = 一个大语言模型(LLM)+ 一组工具 + 一个"感知—决策—行动"的循环。
工具和循环是你写的代码,是可控的、确定的部分。而真正做"决策"的那一环——决定下一步该调哪个工具、该回复什么、该不该结束任务——是那个 LLM。它是整个 Agent 里唯一"会思考"的部件,也是唯一你无法用 if-else 完全掌控的部件。
而今天几乎所有主流 LLM——不管是闭源的还是开源的——底层架构都是 Transformer。所以一个很直接的推论是:Agent 的能力边界,很大程度上就是 Transformer 的能力边界。你的 Agent 为什么能力强、为什么会犯某类错误、为什么有些约束绕不过去,根子都在这里。
理解它,不是为了炫技,而是为了让你在设计 Agent 时心里有底:知道什么能靠 prompt 解决,什么是模型的先天限制,什么该用工程手段兜底。
二、一句话的核心:LLM 在做"预测下一个词"
抛开所有复杂性,当代大语言模型的本质任务简单到令人意外:
给定前面的一段文字,预测下一个最可能出现的词(token)。
就这么简单。你输入"今天天气真",模型算出下一个词大概率是"好""不错""热"之类,选一个接上去,然后把"今天天气真好"作为新输入,再预测下一个词……如此反复,一个词一个词地"接龙",就生成了完整的回答。
这个过程有两个关键概念要先建立:
Token(词元):模型并不是按"字"或"单词"处理文本,而是按 token——一种介于字和词之间的切分单位。比如"Agent"可能是 1 个 token,"开发者"可能被切成 2 个。这就是为什么计费和上下文长度都按 token 算。一个粗略的换算:中文 1 个字约 0.6~1 个 token,英文 1 个单词约 1.3 个 token。
概率分布:模型对"下一个词"给出的不是唯一答案,而是一个覆盖整个词表的概率分布。"温度"参数调的就是从这个分布里采样时的随机程度——温度低,总选概率最高的那个,输出稳定;温度高,给低概率的词更多机会,输出更多样。
幻觉的根源也在这里:模型的目标是"生成通顺、像样的下一个词",而不是"说真话"。当它对某个事实没有把握时,依然会流畅地"接龙"出一个看似合理的答案——因为流畅本身就是它被训练的目标。这解释了为什么 Agent 必须靠工具调用和检索去"查证",而不能只信模型的记忆。
三、Transformer:让"接龙"变聪明的架构
"预测下一个词"这个任务很早就有了,真正让它爆发的是 2017 年 Google 提出的Transformer 架构(论文《Attention Is All You Need》)。它解决了此前模型的两个致命短板,核心武器是注意力机制(Attention)。
用一个例子感受它解决了什么。看这句话:
"小明把书放在桌上,然后他离开了。"
要理解"他"指谁,模型必须把"他"和前面的"小明"关联起来,而忽略"书""桌子"。注意力机制做的就是这件事:在处理每一个词时,动态计算它和句子里其他所有词的"相关度",给相关的词分配更高的权重。这让模型能捕捉长距离的依赖关系,真正"读懂"上下文,而不只是看临近的几个词。
可以打个比方:读一句话时,你的视线会不自觉地在关键词之间来回跳跃、建立联系——注意力机制就是把这种"关联性判断"数学化了。
两个关键优势
1. 并行处理。在 Transformer 之前的主流架构(RNN)必须一个词一个词按顺序算,无法并行,训练极慢。Transformer 能同时处理整个序列,充分利用 GPU 并行算力——这是大模型能"练大"的工程前提。
2. 长程依赖。注意力机制让任意两个词之间都能直接建立联系,不管隔多远,大幅改善了对长文本的理解。
上下文窗口从哪来
注意力机制虽强,但有代价:它要计算序列里每个词和每个词的相关度,计算量随序列长度呈平方级增长(N 个词就是 N×N 次关联计算)。序列越长,算力和显存开销急剧上升。
这就是"上下文窗口"存在上限的根本原因,也解释了两个现象:塞进窗口的内容越多,不仅越贵越慢(平方级增长),而且注意力被稀释到太多词上,模型对关键信息的聚焦反而下降(上下文腐化)。所以"精准地喂"永远优于"大量地喂"。
序列长度 N ──► 注意力计算量 ∝ N² N=1000 → 100万次关联 N=10000 → 1亿次关联 (10倍长度,100倍开销) ∴ 上下文不是免费的,长度翻倍,成本远不止翻倍注:业界有大量工作在优化这个平方级瓶颈(如 FlashAttention、稀疏注意力、各种长上下文技术),这也是"百万 token 上下文"模型能出现的原因。但对 Agent 开发者,记住"长上下文有实打实的成本"这个直觉就够了。
四、Transformer几个关键配件
光有注意力机制还不够,Transformer 还有几个配套设计,用"为什么需要它"的角度快速过一遍就好。
位置编码。注意力机制有个尴尬的副作用:它同时看所有词,本身并不知道词的先后顺序。可"猫抓老鼠"和"老鼠抓猫"意思完全不同。于是模型需要额外给每个词打上一个"位置标记",告诉它谁在前谁在后。对 Agent 的启示是:顺序是有意义的,你在拼接上下文时,信息的排列顺序会实实在在地影响模型理解。
多头注意力。与其只用一套注意力去看全场,不如同时用好几套(好几个"头")从不同角度看:一套关注语法关系,一套关注指代关系,一套关注主题……然后把多个视角的结论综合起来。这让模型能同时捕捉多种维度的关联,理解得更立体。
层的堆叠。上面这一整套(注意力 + 后续处理)会被叠很多层,一层的输出是下一层的输入。越往上的层,理解的东西越抽象——底层可能在识别词与词的搭配,高层可能在把握整段话的意图。模型的"深度"很大程度来自这里,也是大模型之所以"大"的原因之一。
这几个配件你不需要记住细节,只需要有个整体印象:Transformer 是"注意力"这个核心动作,加上位置感知、多视角、多层抽象,堆出来的一台强大的"下一个词预测机"。
五、从"会接龙"到"能干活":训练的三个阶段
有了 Transformer 架构,还要"喂数据训练"才能得到能用的模型。当代 LLM 的训练大致分三个阶段,每个阶段赋予模型不同的能力——理解这三段,你就懂了"为什么有的模型听话、有的博学但难管"。
阶段一:预训练(Pre-training)—— 获得知识与语言能力
把海量文本(网页、书籍、代码……数万亿 token)喂给模型,让它反复做"预测下一个词"的练习。在这个过程中,模型为了把"接龙"做好,不得不"顺带"学会了语法、事实知识、推理模式、代码逻辑……
- 产出:一个知识渊博、语言流畅的"基座模型(Base Model)"。
- 局限:它只会"续写",不会"对话"。你问它"中国的首都是哪?",它可能续写成"中国的首都是哪?这是一道地理题……"——因为它学的是"像训练数据一样接龙",而不是"回答你的问题"。
- 成本:这是最烧钱的阶段,动辄数百万美元、数千张 GPU 训练数月。绝大多数 Agent 开发者永远不会做这一步,而是直接用厂商训好的模型。
阶段二:监督微调(SFT)—— 学会"对话"和"听指令"
用大量"指令—理想回答"的配对数据(如"翻译这句话→翻译结果")继续训练基座模型,教它:遇到指令,就给出符合期待的回答,而不是傻续写。
- 产出:一个会对话、能听懂指令的模型。
- 意义:这一步直接决定了"指令跟随能力"。SFT 数据的质量和覆盖面,很大程度上决定了模型"听不听话"。
阶段三:对齐(RLHF / 偏好优化)—— 变得有用、无害、符合偏好
让模型对同一问题生成多个回答,由人类(或另一个模型)标注"哪个更好",再用强化学习等方法让模型向"人类更喜欢的回答"靠拢。
- 产出:回答更有帮助、更安全、更符合人类偏好的模型——也就是你日常用到的那些助手模型。
- 意义:这一步塑造了模型的"性格"和"边界感"(该拒绝时拒绝、语气是否得体)。不同厂商的对齐策略,造成了模型们"个性"的差异。
用一张图串起来:
海量文本 指令-回答对 人类偏好标注 │ │ │ ▼ ▼ ▼ ┌────────┐ SFT ┌────────┐ 对齐 ┌────────┐ │ 预训练 │ ────► │ 会对话 │ ────► │ 助手模型 │ │ 基座 │ │ 听指令 │ │ 有用无害 │ └────────┘ └────────┘ └────────┘ 博学但只会续写 能听懂指令了 好用、听话、安全 最烧钱 质量决定 塑造"性格" "听不听话" 与边界感补充:近两年的推理模型(先想后答)在此之上又加了一层——用强化学习专门训练模型"生成思考过程"的能力,让它在回答前先推演。这是它规划能力更强的来源。
六、总结
这一篇我们从"预测下一个词"这个朴素本质出发,搞清楚了:
- LLM 的核心任务是基于概率预测下一个 token,幻觉正源于它"求通顺而非求真";
- Transformer 的注意力机制让模型能理解长程依赖、并行训练,但注意力的平方级开销正是上下文窗口有上限、长上下文昂贵的根源;
- 当代模型经过预训练(获知识)→ SFT(学听指令)→ 对齐(变有用无害)三阶段炼成,后两阶段决定了 Agent 最看重的"指令跟随"能力;
- 这些地基能把后续很多"玄学现象"还原成可解释的工程问题。