很多人问过我,大模型1是什么?其实我也不懂。但说来惭愧,早在三年前,也就是 ChatGPT 刚出来那会儿,我还在公司内部做过一次关于 LLM 的分享。大体是网上找几篇文章,抄点只言片语,再配几张好看的图就结束了。不是说完全不懂,只是囫囵吞枣、一知半解,类似「看山是山」的那个状态。
这两年大模型发展很快,完全跟不上。越看越觉得,单纯从 Transformer2、提示词工程3(Prompt Engineering)、缰绳系统4(Harness Engineering)这些概念入手,很容易陷入细节、落个「只缘身在此山中」。倒不如后退一步,问一个更基础的问题:
LLM 到底用了什么魔法,能解决这么多问题?
我尝试从第一性原理出发,结合跟 LLM 的聊天,来重新理解 LLM。
从序列建模说起
最早接触「序列」这个概念还是刚工作那会儿在做胎压监测算法5的时候。当时公司的核心产品,就是基于每个轮胎过去几分钟的胎压间接变化,去预测是否存在漏气风险。它本质上是一个典型的时间序列问题。那也是我第一次直观地感受到:序列里蕴含的信息,远比我们想象的要多。
LLM 也是一个序列模型。
所谓序列建模,实际上就是:
根据过去的信息,预测下一步。
这件事在很多领域都非常常见。比如上面提到的胎压监测;再比如当你读到这里的时候,你会猜测后面我会写什么。
数学表达一下就是:
当前状态 + 当前输入 -> 下一状态
而这也是循环神经网络(RNN)的设计直觉。
从 RNN 到 Transformer
RNN 的直觉很自然,它的核心思想是:当前状态由当前输入和上一时刻状态共同决定。
这非常符合我们对这个世界的理解。我们阅读是一个词一个词读,控制系统也是按时间步更新状态。从这个角度看,RNN 很“自然”,很像真实世界里的状态演化。
但它的问题也很明显:
- 难以并行训练
- 长序列上容易遇到梯度消失或梯度爆炸
- 需要把过去的信息压缩进一个固定大小的隐藏状态向量,容量有限
所以 RNN 的设计直觉虽然优雅,但工程扩展性不够好。
而 Transformer 的思路不太一样。它不是一步一步更新状态,而是把整个上下文拿出来,让所有词元(token)之间互相建立关系。也就是说,RNN 像是状态逐步演化,Transformer 则像全局关系建模。
相比之下,Transformer 的优势就出来,即可以并行计算,也就非常适合 GPU 这类硬件。
而 LLM 之所以能发展到今天,很大程度上不是因为它需要在理论上最“自然”,而是因为 Transformer 这种结构足够适合规模化,是工程的选择。
LLM ≠ Transformer
很多人一提到 LLM,就会想到 Transformer,但我倾向把它们分开看:
Transformer 是当前最成功的实现方式,但 LLM 范式本身不等于 Transformer。
那什么是 LLM 范式?简单说就是:
一个模型 + 大量数据 + 提示词,去解决大量不同任务。
这和过去的 AI 思路有很大不同。
AI 范式的演化
我暂且粗略分为下面几个阶段:
- 规则系统:人写规则,机器执行
- 传统机器学习:人设计特征,模型学习规律
- 深度学习:不同任务,训练不同模型
- LLM:一个通用模型,通过提示词适配不同任务
以前我们经常做的是针对不同的任务去做不同的模型,比如:
- 翻译任务 -> 翻译模型
- 分类任务 -> 分类模型
- 语音任务 -> 语音模型
而 LLM 的思路是:不同任务 -> 不同提示词 -> 同一个模型
这就是范式变化的核心:
任务不再主要通过「换模型」来完成,而是通过「换上下文」来完成。
所有任务都变成补全问题
LLM 的训练目标看起来非常简单:根据上下文,预测下一个 token。表面上看,这只是一个“文字接龙游戏”,但它厉害的地方在于,很多任务都可以被转化成文本补全问题,比如:
翻译:请把下面这句话翻译成英文:……
问答:请回答这个问题:……
写代码:请补全下面的函数:……
总结:请总结下面这段文字:……
规划:请制定一个三天学习计划:……
这些任务看起来完全不同,但对 LLM 来说,最后都变成了:
给定上下文,继续生成后面的文本。
这就是 LLM 范式最强的统一性。
Prompt 其实是一种运行时编程
提示词的本质不是“提问技巧”,而是一种运行时配置。你可以在提示词里定义:
- 角色
- 目标
- 约束
- 示例
- 输出格式
- 判断标准
- 可使用的工具
比如:
你是一名嵌入式工程师,请从故障诊断角度分析以下 CAN 报文异常。
这句话没有改变模型参数,也没有重新训练模型,但它改变了模型接下来生成内容的方向。
所以,LLM 带来的一个重要变化是:
我们不再只靠改代码或重训模型来定义系统行为,而是可以通过上下文临时塑造模型行为。
降维
在理解 LLM 的过程中,LLM 告诉我有一个东西很重要,这就是「降维」。
我(LLM)实际上在做一件非常激进的事,就是把各种复杂的智能行为,统一压缩成 next-token prediction。
原本不同任务可能需要不同系统,而 LLM 的思路是:先把它们都表达成文本序列;再统一成“预测下一个 token”。
也就是说,它把真实世界中的各种“下一步动作”,压缩成了语言空间里的“下一个 token”。原本的任务是各式各样的,比如:推理、规划、翻译、写代码、解释、创作,它们看起来都不一样。但 LLM 把它们统一成了三件事:
- 表示层:一切都变成 token 序列
- 任务层:一切都变成补全问题
- 机制层:一切都变成统计学习
传统观念是不同智能问题需要不同的算法,而 LLM 观念是:所有智能问题只是同一个数据分布问题。
预测下一词 ≈ 推理?
我相信这也是很多人刚开始接触大模型时困惑的地方。预测下一个词,看起来是一件很低级的事。为什么它会表现出推理、规划、写代码这样的高级能力?
AI 给我的回答是:
推理过程本身,很多时候可以被表达成一段结构化的语言序列。
比如一道数学题的解题过程,不只是最终答案,而是一连串有结构的步骤:
- 先分析条件
- 再列出关系
- 然后推导
- 最后得到结论
代码也是类似的。一个函数的实现过程,背后有语义、有结构、有约束、有模式。为了更好地预测下一个 token,模型不能只记住表面文字,它会被迫学习隐藏在语言背后的结构。也就是说:
- 训练目标:预测下一个 token
- 中间结果:学到语义、知识、结构、推理模式
这点很关键。训练目标和最终能力,不一定是同一个东西。就像一个人练习投篮,目标是把球投进篮筐,但过程中会形成肌肉记忆、空间感和节奏感。LLM 也是类似,预测下一词是训练目标,但为了完成这个目标,模型会逐渐学到更深层的表示。
语言为什么这么重要
LLM 能成功,还有一个很重要的前提:
语言不是普通数据,它是人类认知的外显轨迹。
人类把大量知识和思考过程都写进了语言里:事实、推理、解释、计划、类比、代码、数学、指令、任务描述、价值判断,等等。所以训练大模型,不只是学语法,也是在学习人类如何组织知识、表达问题和解决问题。
LLM 之所以能从语言中学到推理,不是因为“文字本身有魔法”,而是因为人类把大量推理过程、知识结构和问题求解方法,都沉淀在了语言数据中。
从上下文开始理解 LLM
如果要从第一性原理理解 LLM,我觉得最应该关注的不是 token,也不是 attention,而是上下文(context)。因为 LLM 的能力施展几乎都围绕上下文展开。
上下文决定了:
- 当前任务是什么
- 需要使用什么知识
- 应该扮演什么角色
- 输出需要满足什么格式
- 有哪些约束条件
- 是否需要推理
- 如何组织答案
模型参数是固定的,但 context 会改变它的行为轨迹。所以,理解 LLM 的关键,不只是理解模型本身,而是理解:
如何通过上下文塑造模型的行为。
这也解释了最近很多新出的概念,比如 AGENTS.md、缰绳系统都是围绕上下文展开的。
LLM 范式
总结一下,对于 LLM 范式:
- 把世界变成 token
- 用预测下一个 token 学习结构
- 通过规模化获得迁移能力
- 再用上下文控制模型行为
一个简单的思维框架
理解 LLM 的意义,不只是理解一个技术热点。更重要的是,它提供了一种拆解复杂系统的方法。以后再遇到新技术、新模型、新框架,或许都可以从四个问题入手:
1. 它在表达什么
它如何“看世界”?LLM 把世界看成 token 序列。
2. 它怎么运行
它的运行机制是什么?LLM 通过神经网络在上下文中建模 token 之间的关系。
3. 它怎么获得能力
能力是人手工设计出来的,还是从数据中学出来的?LLM 的大量能力来自自监督学习和规模化训练。
4. 你怎么控制它
你是在编程它,还是在引导它?LLM 的主要接口是提示词和上下文。
这四个问题其实可以总结如下:
任何复杂系统 = 表达方式 + 计算机制 + 学习方式 + 交互接口
这可能比记住某个具体模型结构更重要。
结尾
回到最开始的问题:
LLM 到底是什么?
我现在的理解是:
LLM 是一个极大规模的序列建模系统。它把各种智能行为压缩到语言空间里,通过「预测下一词」学习隐藏结构,再通过「上下文」在运行时塑造行为。
这不是一个完美的定义,但对我来说足够有用。它解释了为什么 LLM 既强大又有局限。强大,是因为它把大量任务统一到了一个框架里。局限,是因为降维必然会丢失信息。它学到的是数据分布中的结构,而不是世界本身。所以,理解 LLM 不应该只停留在“它会不会真正思考”这个问题上。更重要的是理解:
它如何表示世界,如何学习结构,又如何被上下文控制。
也许,这将成为我们理解硅基文明的起点。