大语言模型是如何“思考”的
模型并不像人那样“理解”世界——它的直接目标只是预测下一个 token。可当模型、数据和算力扩展到足够规模时,这种看似简单的预测任务,会逼着模型学会语言结构、世界知识、任务模式,甚至表现出接近“推理”的行为。
为什么要读这篇
上一篇文章讲了 LLM、Token、Context Window 等术语。但如果你想知道模型“为什么能工作”,就得理解它的核心机制:Transformer 架构 + Attention + 下一个 Token 预测。
很多人第一次接触大语言模型时,都会有一种强烈的直觉冲突:
- 一方面,模型回答问题时看起来真的像在“思考”
- 另一方面,技术资料又告诉你:它本质上只是一个“下一个 token 预测器”
这两句话到底怎么同时成立?
答案是:“下一个 token 预测”这个目标虽然简单,但它并不浅。
如果你真的想把这个任务做到极致,模型就不得不学会很多东西:语法、常识、长距离依赖、概念之间的关系、代码结构、问题和答案的常见形式,甚至某些多步推演模式。
本文不讲公式,只讲概念和直觉。读完你会明白:
- Transformer 为什么会取代 RNN
- Attention 为什么是 LLM 的核心
- 为什么“预测下一个词”足以支撑大部分语言能力
- 为什么规模变大后,模型会表现出越来越强的“智能感”
- 为什么这种“思考”更接近统计建模 + 表示学习,而不是人类式意识或理解
想深入底层? 本文不需要数学基础。但如果你想理解 Attention 的矩阵运算,推荐:
- The Illustrated Transformer —— 最直观的图解
- 3Blue1Brown 神经网络系列 —— 视觉化理解
- Andrej Karpathy: Let’s build GPT from scratch —— 从零手写 GPT
一个先说清楚的前提
在进入细节之前,先把一个容易误解的问题说透:
“模型是怎么思考的” 这个说法,本身就是一种拟人化表达。
更准确的说法应该是:
模型是如何在计算上形成表示、整合上下文,并生成下一步输出的。
也就是说,LLM 的“思考”并不是人类大脑里的主观体验,也不是一个显式的符号推理器。它做的事情更像是:
- 把输入切成 token
- 把 token 映射成高维向量
- 用多层 Transformer 不断混合和变换这些表示
- 在当前上下文条件下,为“下一个 token”计算概率分布
- 采样或选择一个 token 输出
- 把这个新 token 再加入上下文,继续下一轮
从外部看,这会表现得像“理解”“联想”“推理”。
从内部看,本质上是:大量参数上的向量运算 + 概率建模。
理解这一点非常重要,因为它决定了你后面如何看待:
- 幻觉
- 推理能力
- 长上下文
- 微调与对齐
- 推理模型
1. Transformer 架构:为什么 LLM 建立在它之上
一句话:Transformer 是一种能够高效处理长序列、并让每个 token 都与上下文任意位置交互的神经网络架构。它是当代 LLM 的骨架。
在 Transformer 之前,模型为什么不够好用
在 Transformer 出现之前,处理文本最常见的是 RNN、LSTM 一类序列模型。它们的工作方式更像“一个词一个词往后读”:
- 先看第一个词
- 把信息传给下一步
- 再看第二个词
- 再传给第三步
这种结构有两个明显问题:
1. 长距离依赖难处理
一句话很长时,前面的信息要经过很多步才能传到后面,中间容易衰减。比如:
“我昨天在巴黎见到的那个朋友说,他明年准备去柏林读书。”
如果模型在处理后半句时,还要准确理解“他”指的是谁、地点关系是什么,RNN 类模型会比较吃力。
2. 难以并行
RNN 天然是串行的:前一步没算完,后一步很难开始。
这会极大限制训练效率,而 LLM 训练最需要的恰恰就是超大规模并行。
Transformer 的出现,本质上解决了这两个问题。
Transformer 的核心思想
Transformer 最重要的创新,不是“网络更深”,而是:
让每个 token 都能直接与序列中的其他 token 交互。
这就是 Attention 的作用。
传统序列模型像是“排队传话”,而 Transformer 更像是“全员开会”:
- 每个 token 都可以看见和自己相关的其他 token
- 不需要经过很多中间步骤转发
- 可以同时计算整段序列中的依赖关系
这让模型既更擅长处理长距离依赖,也更适合现代 GPU/TPU 的并行计算。
Encoder 与 Decoder:原始 Transformer 的两部分
原始 Transformer(2017)分成两个部分:
| 组件 | 作用 | 典型用途 |
|---|---|---|
| Encoder(编码器) | 双向理解输入,每个 token 都能看前后文 | BERT、检索、分类、翻译中的源语言建模 |
| Decoder(解码器) | 单向生成输出,只能看过去的 token | GPT、文本生成、对话生成 |
Encoder 更像“读懂”
它适合理解一个完整输入,比如分类、匹配、抽取。
Decoder 更像“续写”
它更适合生成,因为它天然遵守一个规则:
当前时刻只能看已经出现的内容,不能偷看未来。
这正好符合语言生成的本质:你只能基于已经说过的话,决定接下来要说什么。
为什么 GPT 选择 Decoder-only
这是很多人第一次学 LLM 时会疑惑的点。
既然原始 Transformer 有 Encoder 和 Decoder,为什么 GPT 不两者都用?
因为 GPT 的核心任务是自回归生成。对它来说,最重要的是:
- 给定已有上下文
- 继续往后写
- 每次预测一个新 token
这个任务天然适合 decoder-only 架构。它的优点是:
1. 训练目标统一
训练时做 next-token prediction,推理时也做 next-token prediction,训练和使用几乎完全一致。
2. 架构更简单
只有一种主干结构,工程实现和扩展都更直接。
3. 生成能力极强
对于开放式文本、对话、代码、写作这类任务,decoder-only 已经足够强大。
所以今天我们说“LLM”,大多数时候默认就是指 decoder-only Transformer,也就是 GPT 这一脉的架构。
Transformer 到底为 LLM 提供了什么
如果只保留一句话,那就是:
Transformer 给了模型一种把整段上下文压进当前决策里的能力。
每生成一个 token,模型都不是只看“上一个词”,而是在多层结构里不断重算:
- 这句话现在在讲什么
- 哪些 token 最相关
- 之前出现过的概念如何彼此影响
- 当前最合理的续写方向是什么
所以,Transformer 不是“智能本身”,但它提供了让大规模语言建模成为可能的计算框架。
2. Attention 机制:模型是怎么“看重点”的
一句话:Attention 让模型在处理每个 token 时,动态决定应该重点参考上下文中的哪些位置。这是 LLM 能理解上下文的核心机制。
为什么没有 Attention 不行
设想一句话:
“小明把球递给了小红,因为她站得更近。”
当模型处理“她”时,它要判断“她”更可能指向谁。
如果没有一种机制能让当前位置回头看整个上下文,它就很难知道“她”应该和“小红”联系起来。
Attention 的核心作用,就是让模型在每一步都重新计算:
当前这个 token,最该参考上下文里的哪些 token?
这件事听起来简单,但它几乎就是“上下文理解”的全部基础。
Q / K / V 的直觉理解
每个 token 进入注意力层后,会被投影成三个向量:
| 向量 | 英文 | 直觉含义 |
|---|---|---|
| Q | Query | “我现在需要找什么信息?” |
| K | Key | “我这里提供了什么线索?” |
| V | Value | “如果你关注我,我真正传递给你的内容是什么?” |
可以把它想象成一个信息检索过程。
当前 token 拿着自己的 Q(查询),去和所有 token 的 K(键) 做匹配:
- 匹配越高,说明“你和我当前要找的信息越相关”
- 相关性越高,那个 token 的 V(内容) 就越会被纳入当前表示里
所以 Attention 不是“把所有上下文一股脑塞进来”,而是:
按相关性,有选择地聚合上下文。
一个具体例子:模型在翻译时会看哪里
假设输入是:
“请把‘苹果’翻译成英文。”
模型在生成 apple 这个 token 时,不会平均地看待整个句子。
它更可能把注意力集中在:
- “苹果”
- “翻译”
- “英文”
而不是“请”“把”“成”这些功能性较强、信息密度较低的 token。
也就是说,Attention 让模型可以动态地“抓住重点”。
这也是为什么很多人会说:
模型的“理解”并不是显式规则,而是上下文加权融合。
Attention 为什么比传统方法强
1. 它能处理长距离依赖
句子里很远的两个 token,也可以直接建立联系,不需要经过很多中间步骤转发。
2. 它是动态的
模型不是固定看某几个位置,而是每个 token、每一层、每一个 head 都可能关注不同位置。
3. 它适合并行计算
整段序列的注意力可以一起算,这对大规模训练非常关键。
多头注意力:为什么不是只看一种关系
现实语言中的相关性并不只有一种。
比如一句话里,同时可能存在:
- 指代关系
- 语法关系
- 时间关系
- 因果关系
- 主题一致性
- 代码中的变量依赖
所以 Transformer 不只做一次 Attention,而是做 Multi-Head Attention(多头注意力)。
直觉上可以理解为:
模型不是用一种眼光看句子,而是同时用很多种“视角”看它。
有的头专门抓局部语法,有的头更关注远距离指代,有的头更容易跟踪括号、列表、变量名、段落主题。
这也是为什么大型语言模型的内部表示会非常丰富——它不是单一通道,而是多层、多头、不断重组的信息网络。
Attention 是不是等于“理解”
这里也要克制一点。
Attention 很重要,但它不等于完整理解,更不意味着“只要看了注意力图就能解释模型为什么这么回答”。
原因有两个:
- 模型最终输出来自很多层的连续变换,不是某一张注意力图单独决定的
- 现代 LLM 的能力不仅来自注意力,还来自 MLP 层、残差连接、层间表示积累等复杂结构
所以更准确的说法是:
Attention 是模型整合上下文的核心手段,但不是全部。
3. Token Prediction:为什么“接龙”会成为统一目标
一句话:大语言模型训练和推理的基本任务,都是给定前文,预测下一个最可能的 token。这是表面上极其简单、但实际上非常强大的统一目标。
训练时到底在优化什么
训练数据在形式上其实很简单:
输入: 人工智能是
目标: 预测下一个 token
模型会输出一个概率分布:
- “一” 的概率是多少
- “指” 的概率是多少
- “未来” 的概率是多少
- 其他 token 的概率是多少
训练的目标是:让真实下一个 token 的概率尽可能高。
这个过程在海量文本上反复进行,模型就会慢慢学会:
- 什么词通常接在什么词后面
- 某种句子结构通常如何延续
- 特定知识在什么语境里出现
- 一类问题通常对应怎样的答案风格
推理时为什么还是同一件事
推理时,模型做的还是同样的事情,只不过从“老师给标准答案”变成了“自己往下写”。
例如:
- 输入“请写一首春天的诗”
- 模型预测第一个 token,比如“春”
- 把“春”加入上下文
- 再预测下一个 token,比如“风”
- 重复这个过程
这叫 自回归生成(Autoregressive Generation)。
所以训练和推理之间没有本质断裂。
LLM 不存在一个“训练时是统计模型,推理时突然变成思考引擎”的切换。它始终都在做一件事:
基于当前上下文,决定下一个 token 的概率分布。
为什么这个目标足够强
这是整篇最重要的问题之一。
表面上看,“预测下一个词”好像只是接龙。
但如果你真的要把这件事做好,尤其是在互联网级别的数据上做到足够好,模型其实不得不学会很多深层结构。
1. 你得学会语法
否则句子根本接不顺。
2. 你得学会事实和常识
否则很多文本延续概率就会错。
3. 你得学会任务模式
用户问问题、代码报错、论文摘要、邮件回复,这些都有不同的后续分布。
4. 你得学会某种“隐式推理”
比如:
- “2 + 2 =” 后面更可能是
4 - “巴黎是法国的” 后面更可能是“首都”
- “下面给出证明” 后面更可能是有逻辑结构的文本
- 一段代码里定义过的变量,后文应一致地继续使用
所以,“接龙”不是低级行为,它实际上逼着模型压缩了大量世界模式。
模型预测的不是“词”,而是分布
还有一个很关键的点:
模型不是机械地找“唯一正确答案”,而是在每一步输出一个概率分布。
这意味着:
- 同一个 prompt 可以有多个合理续写
- 不同采样策略会导致不同风格和创造性
- 模型有时不是“不会”,而是高概率分布不够集中
- 幻觉有时来自“看起来像合理续写,但并不真实”的高概率输出
这也解释了为什么温度(temperature)、top-k、top-p 这些采样参数会影响输出风格:
它们不是改变模型知识,而是在改变你如何从概率分布里取样。
一个重要限制:目标简单,不代表结果总可靠
虽然 next-token prediction 很强大,但它也带来天然局限。
模型优化的是:
在语言分布上“最像正确答案”
而不是:
在外部世界中“绝对真实”
这就是为什么模型会:
- 说得非常流畅,但事实错误
- 生成格式完美的假引用
- 在模糊问题上自信补全
- 在长推理中中途偏航
因为从训练目标看,它首先是一个语言分布拟合器,而不是一个自带真值校验器。
这一点会在后面的对齐训练、RAG、工具调用里被逐步修补,但在底层机制上,它始终成立。
4. Scaling Law:为什么规模会带来质变般的提升
一句话:模型参数、训练数据和训练计算增加时,性能往往遵循稳定的幂律提升。LLM 的很多进步,不是来自某个神奇技巧,而是来自大规模扩展。
Scaling Law 到底说了什么
在大模型研究里,一个非常重要的发现是:
当你持续增加模型规模、数据规模和训练计算时,模型性能会相对平滑、可预测地改善。
这就是所谓的 Scaling Law。
| 变量 | 影响 | 常见结论 |
|---|---|---|
| 数据量 | 更多预训练 token | 通常能继续提升泛化能力 |
| 参数量 | 更大模型 | 通常能容纳更复杂的模式 |
| 算力 | 更多训练计算 | 通常能把模型训得更充分 |
这里最重要的不是“越大越好”这句口号,而是:
性能提升不是偶然的,而是呈现出某种可持续、可拟合的规律。
这让研究机构敢于做超大规模投入,因为他们不是在赌运气,而是在沿着一条已经被反复验证的曲线往上走。
为什么这件事如此重要
因为它改写了整个 AI 研发范式。
在过去,很多机器学习系统更像“手工调特征 + 换模型结构 + 针对任务做优化”。
而在 LLM 时代,一个非常强的经验是:
在合理配方下,把系统做大,本身就是一种有效研究方法。
这也是为什么过去几年最强模型几乎都来自能整合巨量数据、算力和工程基础设施的组织。
Chinchilla 最优:不是只看参数,数据也很关键
Scaling 不是“只要参数更大就行”。
DeepMind 的 Chinchilla 工作指出:
对给定训练算力而言,很多模型其实是“参数太大、数据太少”。
也就是说,如果模型很大,但训练 token 不够,它没有被充分训练,资源利用并不最优。
| 策略 | 典型配置 | 结果 |
|---|---|---|
| 大模型 + 较少数据 | 参数很大,但训练不充分 | 数据利用率不高 |
| 较小模型 + 更多数据 | 参数与数据更平衡 | 同等算力下往往更优 |
这给行业一个很重要的启发:
- 模型大小不是唯一指标
- 数据量和数据质量同样关键
- “参数更多”不自动等于“更强”
因此从 2023 之后,很多团队开始更重视数据配比、训练 token 数量、数据质量控制,而不再只卷参数数字。
Scaling 不只作用于知识,也作用于能力边界
随着规模扩大,模型不只是“记住更多事实”,还会在很多任务上表现得更稳定:
- 更能遵守复杂格式
- 更能处理长上下文
- 更能做代码补全和重写
- 更容易表现出多步任务能力
- 更能从少量示例中归纳模式
这意味着 scaling 带来的,不只是容量增加,也包括表示质量和泛化能力的提升。
5. “涌现”与“连续提升”:智能到底是怎么拼出来的
一句话:当 Attention、Token Prediction 和大规模训练结合起来,模型会在很多任务上表现出看似“突然出现”的能力。但从更细的角度看,这些能力往往也是逐步积累、在某些评测上跨过阈值后变得显眼。
什么叫涌现(Emergence)
“涌现”这个词很流行,但也最容易被说得神秘。
它更准确的含义是:
某些能力在小模型上几乎看不出来,但当模型规模增大到某个区间后,在特定任务指标上会突然变得明显。
比如:
- 指令遵循
- 多步推理
- 复杂代码生成
- 工具使用
- 更稳的长程依赖建模
但这里要注意两点:
1. 涌现不一定意味着真正的“突变”
很多能力从内部机制上可能是连续提升的,只是评测方式有阈值,导致曲线看起来像突然跳起来。
2. 涌现不等于魔法
它不是说模型忽然“觉醒”,而是说大量能力在足够规模下开始达到可见、可用的程度。
所以,比起把“涌现”讲成神秘现象,更好的理解方式是:
规模让很多原本微弱的能力跨过了实用门槛。
为什么“接龙”能拼出智能感
现在可以把前面几块拼起来了。
第一层:Token Prediction 提供统一目标
模型始终都在学“上下文接下来最合理的是什么”。
第二层:Attention 让模型能整合上下文
它不是只看上一个 token,而是动态聚合整段上下文的相关信息。
第三层:Transformer 提供可扩展结构
它让这种上下文整合能在大规模数据和大规模参数上高效进行。
第四层:Scaling 放大一切
数据越多、模型越大、训练越充分,模型能学到的模式就越丰富,泛化边界也越远。
这四件事叠在一起,就会形成一种外部观感:
模型不像是在背答案,而像是在“想”。
一个更贴切的类比
可以把 LLM 想象成一个极其强大的“上下文条件生成器”。
它读过海量文本,因此学会了:
- 什么样的问题通常对应什么样的答案
- 什么样的解释更像解释
- 什么样的代码更像正确代码
- 什么样的推理步骤更像合理推理
它不一定像人类那样“知道自己为什么知道”,但它会在统计上逼近:
在这个上下文里,一个高水平人类接下来最可能会怎么说。
当这个逼近做得足够好时,从外部看就会非常像“理解”和“思考”。
一个必要的反向提醒
也正因为如此,LLM 的能力和局限总是成对出现:
它为什么强
因为它能在海量模式中做高质量泛化。
它为什么会幻觉
因为它优化的是“像合理答案”,不是“连接真实世界真值”。
它为什么擅长语言任务
因为训练目标和语言分布高度一致。
它为什么在某些精确任务上不稳定
因为语言概率高,不代表外部逻辑一定严格正确。
所以,理解 LLM 的“思考”方式,最重要的不是神化它,而是看清它:
它是一个极强的模式压缩器、上下文整合器和概率生成器。
小结:从机制到“智能感”
把整篇文章压缩成一张图,大概就是这样:
| 机制 | 它解决什么问题 | 带来什么能力 |
|---|---|---|
| Transformer | 如何高效处理长序列 | 建立大规模语言建模骨架 |
| Attention | 如何在当前时刻抓住相关上下文 | 上下文整合、长距离依赖 |
| Token Prediction | 如何定义统一训练目标 | 语言生成、任务建模、模式学习 |
| Scaling Law | 如何持续提升能力上限 | 泛化增强、能力跨阈值、智能感增强 |
这四个部分缺一不可。
- 没有 Transformer,训练规模起不来
- 没有 Attention,上下文无法高效整合
- 没有 Token Prediction,目标不统一
- 没有 Scaling,很多能力就达不到“有用”的程度
理解这一点,你就理解了当代 LLM 所谓“思考”的本质。
核心概念速查
| 概念 | 一句话 |
|---|---|
| Transformer | 用自注意力处理序列的可扩展神经网络架构 |
| Self-Attention | 让每个 token 动态关注上下文中相关部分的机制 |
| Multi-Head Attention | 用多种不同“视角”同时建模 token 关系 |
| Token Prediction | 给定前文,预测下一个 token 的统一目标 |
| Autoregressive | 用已生成内容继续预测下一个 token |
| Scaling Law | 数据、参数、算力增加时性能按规律提升 |
| Chinchilla | 同等算力下,参数与数据需平衡,不是越大越好 |
| Emergence | 某些能力在规模扩大后跨过可见门槛而变得显著 |
下一篇
理解了模型如何“思考”,下一个问题就来了:
这些底层能力,为什么最后会变成 ChatGPT 这样“会聊天、会拒绝、会推理、会配合人类”的模型?
答案不在架构里,而在训练流程里。
下一篇我们就来看:
- 预训练为什么只是起点
- SFT 如何把模型变成助手
- RLHF / DPO 如何改变模型行为
- 推理训练为什么会催生 o3、DeepSeek-R1 这样的 reasoning model