Transformer 与预训练科普

📅 2026/8/3 15:11:03
Transformer 与预训练科普
一、为什么 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² N1000 → 100万次关联 N10000 → 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 最看重的指令跟随能力;这些地基能把后续很多玄学现象还原成可解释的工程问题。