LLM 的技术演进主线
LLM 不是突然出现的,而是自然语言处理、深度学习、注意力机制、预训练范式、算力扩展和人类反馈对齐长期叠加后的结果。 理解 LLM 的来龙去脉,关键不是记住每篇论文,而是看清几次范式迁移:
规则与统计 -> 词向量 -> 序列模型 -> 注意力机制 -> Transformer
-> 预训练语言模型 -> GPT 式自回归大模型 -> 指令对齐
-> 推理增强 -> 工具调用与 Agent -> 推理时扩展计算
语言如何变成可计算对象
早期 NLP 的核心,是把语言从规则问题推进成概率问题。 机器翻译、分词、词性标注、文本分类等任务,往往依赖人工特征、词典、规则、n-gram 和传统机器学习模型。n-gram 的核心思想很朴素:一个词出现的概率,可以由它前面的若干个词估计。它让语言第一次大规模变成可计算的概率问题,但也有明显局限:只能看到很短的局部上下文,词与词之间没有真正的语义表示,也很难泛化到没见过的表达。
word2vec 的关键贡献,是让语言从离散符号变成连续向量。 word2vec 让词语可以被表示为连续向量,相似语义的词在向量空间中更接近,词与词之间的关系也开始可以被计算。这一步让语言从"符号匹配"走向"语义表示",下游任务也可以复用同一套词表示,减少手工特征工程。
静态词向量的瓶颈,是无法表达上下文中的不同含义。 同一个词在不同句子里含义可能不同,比如"苹果"可能是水果,也可能是公司,而 word2vec 这类方法通常给每个词一个固定表示。于是模型需要继续向"上下文相关的语言表示"演进。
序列模型的意义,是把很多 NLP 任务统一成输入序列到输出序列的转换。 RNN、LSTM、GRU 把文本看作按时间展开的序列,用隐藏状态把前文信息传递到后文。Seq2Seq 进一步把很多任务统一成"输入一个序列,输出另一个序列"的问题,典型场景是机器翻译。
Attention 的价值,是让模型不再压缩整句,而是按需要关注重点。 Seq2Seq 的关键瓶颈,是编码器需要把整句输入压缩成一个固定长度向量,再交给解码器生成输出,句子越长,信息压缩损失越明显。Attention 不要求模型把所有输入压缩成一个向量,而是在生成每个输出词时,动态关注输入中最相关的部分。注意力机制让模型从"被动记住全部上下文",转向"按任务需要主动检索上下文"。
Transformer 与预训练范式
Transformer 打开了大模型规模化训练的大门。 Transformer 把注意力机制推到极致:不再依赖 RNN 的顺序递归,而是用自注意力直接建模序列中所有 token 之间的关系。它之所以重要,不只是效果更好,而是更适合规模化:可以并行处理序列,适合大规模算力;可以直接建模任意两个 token 的关系,长距离依赖更容易表达;编码、生成、翻译、摘要、问答等任务,也都可以在同一类架构上实现。Transformer 胜出不是偶然,而是因为它同时满足并行训练、长距离依赖和规模化扩展这几个关键条件。
tokenization 是 LLM 被低估的基础设施。 模型并不是直接读取人类看到的文字,而是读取 token 序列。早期按词处理会遇到未登录词问题,没见过的新词、拼写变化、多语言文本和代码符号都很难表示。BPE 子词切分 这类方法把词拆成更小的子词单元,让模型既能控制词表规模,又能处理新词、罕见词、多语言和代码。tokenization 会直接影响上下文长度、中文和英文的 token 效率、代码表示效率、推理成本和实际体验。
Transformer 本身不是 LLM,但它提供了 LLM 成立的基础架构。 没有 Transformer,很难出现后来这种依赖海量数据和算力扩展的大模型路线。它真正改变的是模型训练和表示能力的上限,让"更大模型 + 更多数据 + 更多计算"成为一条可持续推进的工程路径。
预训练让模型从任务专用系统变成通用语言底座。 ELMo 让词表示真正上下文化,同一个词在不同句子里可以根据上下文得到不同表示。BERT 进一步确立了"预训练 + 微调"的范式:先在大规模无标注文本上学习通用语言表示,再针对具体任务进行微调。BERT 证明大规模预训练可以成为 NLP 的通用底座,把很多任务从"为任务设计模型"变成"在预训练模型上适配任务"。从此以后,模型能力不再主要来自为每个任务单独设计结构,而是来自通用预训练能力与下游适配能力的结合。
BERT 和 GPT 的差异,本质上是 Transformer 架构路线的分化。 BERT 代表 Encoder-only,更适合理解、分类、抽取;GPT 代表 Decoder-only,更适合生成、对话、续写和代码;T5、BART 代表 Encoder-Decoder,更适合翻译、摘要和文本到文本任务。后来的通用 LLM 主流走向 Decoder-only,不是因为它在所有语言任务上天然最优,而是因为自回归生成最适合作为统一任务接口——同一个模型既能生成,也能通过生成方式完成理解和分类。
Transformer 内部机制
上面讨论的是 Transformer 在大模型竞争中的位置。理解一个 token 是怎么被处理的,需要往下掉一层看内部组件的协作。
Q/K/V 与 Self-Attention
Self-Attention 是 Transformer 看到"上下文"的核心机制。 语言是高度上下文相关的——同一个词在不同语境里意思可能完全不同。Self-Attention 让每个 token 看一遍序列里的所有其他 token,决定哪些 token 对自己最重要。
具体做法:每个 token 的输入向量会通过三个不同的线性变换,生成三个向量——Query (Q)、Key (K)、Value (V)。Q 是"我要找什么",K 是"我提供什么",V 是"我能贡献什么信息"。然后用 Q 和所有 K 做点积,点积大小代表相关性。为了让点积不会随维度增大而爆炸,需要除以 √d(缩放因子),再做 softmax 得到注意力权重。最后用这些权重对所有 V 加权求和,得到这个 token 的 Self-Attention 输出。
这意味着每个 token 在每一层都重新看一遍全序列——不是只看自己的词,而是把整个上下文都纳入决策。 这是和 RNN/CNN 最大的架构差异,也是 Transformer 能并行训练、容易 scale 的根本原因。
Multi-Head Attention
一个注意力头只能学到一种关系,Multi-Head 让多个头并行关注不同类型的关系。 一组 Q/K/V 只能捕捉一种相关性模式;多组独立的 Q/K/V 并行运行,每组可能学到了"句法关系""语义关系""长距离指代"等不同模式,最后把多组输出拼接起来再做线性变换。
这相当于在每一层让模型并行检查多种"上下文相关性"——一个头可能学会"动词关注主语",另一个头可能学会"代词关注指代对象",还有一个头可能关注"否定词改变整个句意"。没有 Multi-Head,模型就只有一个视角看世界;有了它,模型可以在同一时间从多个角度理解上下文。
Causal Self-Attention
Decoder-only 架构(如 GPT)需要 Causal Mask——让 token 只能看过去,不能看未来。 生成任务的特点是:模型在第 t 步生成 token 时,不应该看到第 t+1、t+2...步的真实答案(否则就是"作弊")。
实现方式是在注意力矩阵上加一个上三角掩码——把当前位置之后的注意力权重设为 0(或 -∞ 再 softmax)。这样每个 token 的 Self-Attention 输出只依赖于它自己和它之前的 token,符合生成任务的因果性。这是 BERT 和 GPT 在架构上最关键的差异:BERT 可以双向看(适合理解),GPT 只能单向看(适合生成)。
Feedforward Network(FFN)
Self-Attention 让 token 之间交换信息,FFN 让每个 token 独立"消化"这些信息。 每个 Transformer block 里 Self-Attention 之后都有一个 FFN,结构是"升维 → 激活 → 降维"——通常是 4 倍维度的中间层(如 hidden_size=4096 时中间层 16384),用 ReLU/GELU 等激活函数,再降回去。
FFN 提供了"思考空间"——Self-Attention 完成了"看上下文",FFN 让每个 token 在这个上下文里做非线性计算。如果把 Transformer 块比作会议,Self-Attention 是"各代表发言",FFN 是"每个代表回去整理笔记"。
Residual Connection + Layer Normalization
深层网络训练的核心难题是梯度消失——加 Residual Connection 让梯度有"近路"可以回流。 每个 Transformer block 的输出是 Self-Attention 输入 + Self-Attention 输出 + FFN 输入 + FFN 输出,所有中间结果都直接加到最终输出里。这意味着即使中间某一层学得很差,原始信息也能直接传到下一层。
Layer Normalization 把每一层的激活值归一化到稳定分布,让训练更稳定。 没有它,深层网络的激活值会指数级放大或缩小,训练崩溃。每个 Transformer block 通常在 Self-Attention 前和 FFN 前各做一次 LayerNorm(Pre-LN 变体)。
Next Token 选择
Self-Attention + FFN 最终输出每个 token 在词表上的概率分布,下一个 token 从中采样。 假设词表大小是 100k,模型会输出 100k 维的 logits,softmax 后是概率分布。
采样策略决定生成风格:
- Greedy:直接选概率最高的 token。结果最确定,但也最容易重复、乏味
- Temperature:缩放 logits 后再 softmax。Temperature > 1 让分布更均匀(更有创意但可能跑偏),< 1 让分布更尖锐(更确定但更保守)
- Top-k / Top-p (nucleus) sampling:只从概率最高的 k 个 token 中采样(top-k),或从累积概率达到 p 的最小集合中采样(top-p)。这些截断让模型避免选到概率极低的奇怪 token
采样策略的选择比"选哪个模型"更能影响生成质量。同一模型用 top-p=0.9 vs top-p=0.5 会产生截然不同的输出。
训练动力学
整个训练循环可以概括为:前向 → 损失 → 反向 → 更新。前向是输入 token 经过层层 Transformer block 得到输出概率分布;损失是预测分布和真实下一个 token 之间的交叉熵;反向是把损失梯度回传到每一层的参数;更新是用梯度(经过 Adam 等优化器)调整参数。整个过程需要数万亿 token、数千张 GPU 跑数周。
Transformer 内部组件是高度耦合的——Q/K/V 来自同一组输入,Multi-Head 共享输入但独立计算,FFN 复用 Self-Attention 的输出,Residual 让信息跳过任何一层。理解这个耦合关系比理解"每个组件做什么"更重要——它解释了为什么 Transformer 的设计选择(Pre-LN、SwiGLU、RoPE 等)需要整体替换而不是局部调整。
GPT 路线为什么成为大模型主线
GPT 路线的强大之处,是把"预测下一个 token"变成了通用任务接口。 GPT 的训练目标很简单:给定前文,预测下一个 token。这个目标看起来简单,却非常强大,因为互联网上大量知识、推理、代码、对话、故事、说明文档,都可以被统一成"根据上下文预测下一个 token"。当模型足够大、数据足够多、训练足够充分时,很多能力会从这个简单目标中涌现出来。语言模型的统一性,正是来自大量任务都可以被转化为上下文续写。
GPT-3 之后,自然语言开始成为一种新的任务编程方式。 GPT-2 证明了更大的自回归语言模型可以在没有任何针对性训练的情况下表现出零样本迁移能力——直接在新任务上产生合理输出,而无需示例或微调。GPT-3 进一步展示了 few-shot learning:只需要在提示词里给几个例子,模型就能按上下文执行新任务,而不一定需要重新训练。这一步的本质变化是,人不再必须把任务转成特定模型输入,而是可以直接用语言描述任务、给示例、给约束、给上下文。
in-context learning 让上下文本身变成临时能力来源。 模型参数不变,但可以通过上下文里的说明、示例和约束临时适配新任务。Prompt 因此不只是"提问方式",而是一种轻量的临时编程方式。后来所谓上下文工程,本质上就是如何把目标、资料、示例、约束、工具结果和验证标准组织进上下文,让模型在推理时表现出更稳定的任务能力。
Scaling Law 给了大模型路线工程确定性。 Scaling Law 表明,模型大小、数据量和训练计算量增加时,语言模型损失会按相对可预测的规律下降。这给行业带来强烈信号:只要数据、算力和工程能力继续提升,模型能力大概率还能继续增强。
Chinchilla 修正了"只拼参数"的粗糙理解。 Chinchilla 的重要结论是:在固定计算预算下,不是单纯把模型做得越大越好,训练 token 数也必须同步增加。模型规模和数据规模要匹配,否则大模型可能没有被充分训练。于是大模型竞争从单纯拼参数,转向更综合的系统工程:更高质量的数据、更合理的模型规模、更长更干净的训练 token、更强的训练基础设施,以及更低成本的推理部署。Scaling Law 给了大模型路线工程确定性,但训练 token、数据质量和推理成本同样决定最终上限。
数据工程逐渐成为大模型的核心竞争力。 大模型不是简单把互联网文本喂进去就行,数据清洗、去重、质量筛选、代码数据、数学数据、多语言数据都会影响最终能力。高质量数据往往比低质量海量数据更重要,尤其在代码、数学、推理和指令跟随任务上,数据质量会直接决定模型是否真正好用。
合成数据打破了"人类生产了多少文本"的上限。 随着互联网高质量文本接近耗尽,大模型开始大量依赖合成数据:用更强的模型生成训练数据,再用这些数据训练同等或更小规模的模型。微软 Phi 系列是典型案例——参数规模远小于 GPT-3,但靠高质量合成数据在多项基准上追平了大模型。这意味着数据的瓶颈不再是人类文本的存量,而是模型能生成多少可靠的高质量训练信号。
小而精的高效模型是对"越大越好"的重要修正。 Mistral 7B、Llama 3(8B)、Phi 系列等模型表明,通过更好的数据筛选、训练配方和蒸馏,参数量远小于 GPT-3 的模型可以达到甚至超过 GPT-3 的水平。参数高效微调方法(如 LoRA)把微调成本降低了百倍以上,让普通团队可以在消费级显卡上定制 7B 以上的模型,直接催生了开源微调社区和 Llama 生态。大模型的竞争不只是谁的参数更多,而是谁的训练数据更精、谁的推理成本更低、谁更容易被定制。
MoE 说明大模型竞争已经进入能力和成本的综合优化。 当模型越来越大,推理成本会成为瓶颈。Switch Transformer 代表的 MoE 路线试图用稀疏激活扩大总参数规模:模型拥有很多专家,但每个 token 只激活其中一部分专家,从而在提高容量的同时控制单次推理成本。这说明大模型竞争不只是参数越大越好,而是能力、成本、延迟、吞吐和部署效率的综合优化。
从会续写到能协作
预训练模型会续写,不等于它会听话。 预训练语言模型本质上是在学"互联网文本如何继续写下去",不等于它天然会按用户意图完成任务。这就是早期 GPT 类模型的问题:它会续写,但不一定听话;它会生成合理文本,但不一定有帮助、诚实或安全。
后训练让模型从"能生成"走向"可使用"。 Instruction Tuning 和 RLHF 解决的是"对齐用户意图"的问题。InstructGPT 的核心思想是:先用人工示范教模型什么是好回答,再用人类偏好训练奖励模型,最后通过强化学习让模型更倾向于产生人类偏好的输出。后来后训练不再只有 RLHF,而是一整套工程:SFT 让模型学会按指令回答,DPO 等方法让偏好优化变得更简单稳定,安全训练减少有害输出,工具使用训练让模型学会调用外部能力。预训练让模型获得通用能力,后训练才让模型真正适合真实用户任务。
产品形态决定模型能力能否被释放出来。 ChatGPT 的突破,不只是模型能力本身,也在于产品形态和对齐方式。对普通用户来说,ChatGPT 把大模型从论文和 API 变成了一个可以自然对话、追问、修改、解释、写代码的通用工具。模型能力和产品可用性不是一回事:ChatGPT 的对话界面降低了使用门槛,Claude Code、Codex 这类产品则把模型放进真实工作区,让模型能力能直接作用在文件、命令、代码和测试上。
推理能力不仅来自训练,也来自推理时如何组织过程。 大模型变大后,开始表现出更强的推理能力。但复杂问题直接回答容易失败,于是出现了 CoT 等提示方法,让模型先生成中间推理步骤,再得出答案。CoT 的意义不是"模型真的像人一样思考",而是通过外显的中间步骤,给模型更多计算路径,也让人更容易检查推理过程。随后出现的 ToT、GoT 等方法,把推理从一条链扩展成树或图,尝试让模型探索多个候选路径,再选择更优结果。
Benchmark 能衡量模型能力,但不能等同于真实任务成功率。 早期更关注分类、问答、翻译等具体任务;LLM 时代出现了 MMLU、HumanEval、GSM8K 等综合评估,分别考察多学科知识、代码生成和数学推理。但 benchmark 会被刷榜、污染,也不等于真实任务能力。真实使用中更重要的是任务成功率、稳定性、可控性、成本、延迟和可验证性。
长上下文不等于可靠记忆,也不等于有效利用。 LLM 的参数记住了大量知识,但这不是可靠知识库。模型会过期、会幻觉,也无法天然访问企业内部系统。RAG 的思路是:不要让模型只依赖参数记忆,而是在回答前检索外部知识,把相关文档作为上下文提供给模型。上下文窗口从 GPT-3 的 4k 扩展到百万级 token 之后,模型可以处理更长的代码库、会议记录、论文和知识库,但研究发现模型对上下文开头和结尾的关注度远高于中间部分——关键信息放在中间很容易被忽略,这被称为"迷失在中间"(Lost in the Middle)问题。更长的上下文窗口解决了能装多少的问题,但没有解决是否真的在用的问题,检索、索引、摘要和记忆管理仍然必要。
工具调用和多模态让模型接入外部世界。 工具调用让模型不只是读文档,还可以调用搜索、数据库、代码解释器、终端、浏览器、API、企业系统等工具。模型从"生成答案"走向"调用能力"。多模态则让模型从纯文本扩展到图像、音频、视频、屏幕和文件,开始理解真实工作界面和现实世界的表示,这也是 Agent 能力继续增强的重要前提。但长上下文、多模态和工具环境只会放大模型能力,不会自动带来可靠性,仍然需要检索、验证、权限、评估和人类判断共同约束。
Agent 的关键,是围绕目标持续循环,而不是单次问答。 Agent 的核心循环是:
理解目标 -> 拆解任务 -> 获取上下文 -> 调用工具 -> 观察结果 -> 修正计划 -> 继续执行
ReAct 让推理和行动结合,工作区让 Agent 真正参与任务。 ReAct 把 reasoning 和 acting 结合起来,让模型一边推理、一边行动。Claude Code、Codex 这类工具则把 Agent 放进真实工作区,让它能读文件、改文件、运行命令、看报错、迭代结果。
推理时扩展计算:第二条 Scaling 主线
训练计算之外,推理时计算成为新的扩展维度。 Scaling Law 的原始逻辑是:更大模型 + 更多数据 + 更多训练计算 = 更强能力。2024 年出现了第二条主线:推理时可以分配更多计算,让模型在回答之前"慢慢想",通过在内部展开更长的思维过程来解决更难的问题。模型能力因此有两个可扩展维度,而不只是一个。
推理模型把"思考过程"本身变成可训练对象。 OpenAI o1(2024 年 9 月)是这条路线的标志性节点:模型在生成最终答案之前,会先产生一段内部推理过程(extended thinking),这段过程对用户不可见,但会消耗额外的推理计算。随后 DeepSeek-R1、Gemini 2.0 Flash Thinking、Claude 3.7/4 的 extended thinking 都沿着这条路。推理模型在数学竞赛、代码生成、科学推理等需要多步骤推演的任务上,相比同等参数的非推理模型有显著优势。
可验证奖励的强化学习让对齐信号更可靠。 RLHF 依赖人类偏好判断,存在主观性和规模瓶颈。对于数学、代码等有客观正误的领域,可以直接用结果验证器代替人类评价——模型生成答案,验证器判断对错,用这个二元信号驱动强化学习,这被称为 RLVR(Reinforcement Learning with Verifiable Rewards)。相比人类偏好标注,RLVR 的信号更稳定、更可扩展,不依赖大量人工标注,是 DeepSeek-R1 等推理模型的核心训练方法。从 RLHF 到 DPO 再到 RLVR,后训练的方向是让对齐信号越来越可靠、越来越可扩展。
推理时计算的上限,取决于模型能否自我验证。 推理时多想几步有意义的前提是:模型能判断哪条思路更对。在数学和代码领域,验证比生成容易——可以运行代码、检验答案是否正确,因此推理时扩展计算效果最显著。在开放域写作、观点判断等难以验证的任务上,单纯增加推理时间不一定带来质量提升。推理时扩展计算不是万能的,它的边界在于任务是否可验证。
LLM 的角色正在从回答者变成协作主体。 Chat 阶段回答问题,Tool 阶段使用外部能力,Agent 阶段围绕目标持续推进任务,Skill 阶段把经验沉淀成可复用工作方法。GPT-4 和 LLaMA 之后,大模型开始同时沿着闭源前沿模型、开源基础模型、垂直领域模型和 Agent 工程化几条路线并行演进。推理时扩展计算进一步打开了上限,让模型在面对真正困难的问题时有了"多想一会儿"的空间。Agent 是持续执行循环,Skill 是经验资产化,推理模型是更深的单步思考,它们共同代表 LLM 从语言模型走向协作系统的方向。