本文是专栏《从零看懂大模型》第 1 篇。回到目录与导读。
大模型(LLM,Large Language Model)看起来无所不能:写代码、翻译、编故事、做数学题。很多人以为它内部藏着一个巨大的知识库,像个超级搜索引擎。
其实不是。 它的本质简单到让人意外,只有一句话:
根据前面已经出现的文字,预测下一个词最可能是什么。
就这么一件事。它把这件事做到了极致,于是有了我们看到的一切。
一个"文字接龙"游戏
想象你在玩接龙。我说:
"今天天气真"
你脑子里大概率蹦出"好""不错""热",而不会是"香蕉""方程"。你是怎么知道的?因为你这辈子读过、听过无数句子,形成了一种语感——知道什么词后面接什么词更自然。
大模型干的就是这个,只不过:
- 它"读过"的文本量是整个互联网级别的;
- 它把这种语感变成了精确的概率。
面对"今天天气真",它内部会算出一张概率表:
好 → 42%
不错 → 18%
热 → 9%
冷 → 6%
... → ...
香蕉 → 0.0001%
然后按这张表挑一个词接上去。挑完"好",句子变成"今天天气真好",它再拿这句去猜再下一个词……如此一个字一个字地滚下去,就"写"出了一整段话。
你看到的长篇大论,是几百上千次"猜下一个词"接力的结果。
Token:模型眼里的"字"
这里要修正一个小细节。模型处理的基本单位不完全是"字"或"词",而是叫 Token(词元) 的东西。
Token 可以是一个字、半个词、一个标点,甚至是常见词的一整块。比如英文 "unhappy" 可能被拆成 "un" + "happy" 两个 token;中文里一个常用字往往就是一个 token。
| 你输入的 | 模型看到的 token(示意) |
|---|---|
今天天气真好 |
今 天 天气 真 好 |
unbelievable |
un believ able |
为什么要这么切?因为这样既能覆盖海量词汇,又不至于让"词典"大到离谱。你只需要记住一点:
模型不是按"字"思考,而是按 token。它的输入输出、它的"上下文长度"、甚至你用 API 的计费,都是按 token 算的。
"预测下一个词"怎么就变聪明了?
这是最反直觉的地方:一个只会猜下一个词的游戏,凭什么能解数学题、写代码?
关键在于——要想把下一个词猜准,模型被迫学会了背后的规律。
举几个例子:
- 要接好"法国的首都是____",它得记住事实(巴黎);
- 要接好"3 + 5 = ____",它得学会加法的模式;
- 要接好一段代码的下一行,它得理解语法和逻辑;
- 要接好一个推理题的结论,它得跟上前面的推导。
也就是说,"预测下一个词"这个目标,像一根鞭子,逼着模型在海量文本里把语言、知识、逻辑、常识全都顺带学了。能力不是被"编程"进去的,而是为了把词猜准而自己长出来的。这也是为什么模型越大、读的文本越多,能力会突然"涌现"出新花样。
温度:为什么它不总说同一句话
既然每一步都有张概率表,那"怎么挑"就有讲究了。
- 永远挑概率最高的那个 → 回答稳定、保守,但很死板;
- 偶尔按概率随机挑一个 → 回答更有创意、更多样,但也更容易跑偏。
这个"保守还是放飞"的旋钮,通常叫 温度(temperature)。温度低,模型规规矩矩;温度高,模型天马行空。这就是为什么同一个问题问两次,它可能给你不一样的答案——它本质上是在"掷一个灌了铅的骰子"。
一个重要的推论
理解了"预测下一个词",很多现象就不神秘了:
- 它不是在检索已存的答案,而是在现场生成最像样的文字。所以它可能把不存在的东西说得头头是道——这就是后面要讲的幻觉。
- 它没有真正的"记忆",每次都只是在给定文字后面接词。你和它的"对话历史",其实是每轮都重新塞给它看的。
- 它天生擅长"像",而不担保"对"。像不像是它的目标,对不对得靠我们额外去管。
小结
- 大模型的本质是一句话:根据前文,预测下一个 token(词元)。
- 长篇回答 = 成百上千次"猜下一个词"的接力。
- 为了把词猜准,模型被迫学会了语言、知识和逻辑——能力是长出来的,不是编进去的。
- "温度"决定它保守还是放飞;这也是回答会变化的原因。
下一篇,我们拆开这台引擎的核心零件——正是一个叫 Transformer 的结构,配上"注意力机制",才让模型第一次能同时看全整句话、抓住其中的重点。