第 2 章 — 概率、token 和文本
LLM Primer I: How Generative AI Works 章节走读的第二篇。整本书最重要的两个字 — token 和概率 — 在这里被细心拆开。
模型其实看不见"单词"
第 2 章一开头有一点反直觉的事实。你把一句话发给 LLM,从它的视角看,那不是一句话。那是一串"token" — 比单词更小的片段。
token 可以比单词短,也可以比单词长。高频词 — "the"、"and"、"模型" — 通常占一个 token。而像"detokenization"(反分词)这种不常见的词,大概率会被切成"de / token / iz / ation"。LLM 实际工作的那本"词表",和我们在字典里看到的词,差挺多。
这个差别比看上去更要紧。如果你心里默认模型是"一个词一个词训练出来的",你对它什么时候强、什么时候弱的直觉,马上就跟着跑偏。看一眼分词怎么干的,你就能一下子明白:为什么 LLM 在拼作者名字时会卡壳、为什么对新词有点别扭、为什么有些语言比另一些消耗更多的 token。
那么模型到底在产生什么?
章里第二个大动作来了。LLM 生成一个 token,并不是只挑了那一个 token。它每一步都在构造一整张概率分布 — 一张表,词表里每一个 token(几万个)都有一个分数。"the"是 0.31、"a"是 0.12、"模型"是 0.04、"香蕉"是 0.00001……
这个画面值得停下来盯一眼,因为它解释了许多事。同一个 prompt 之所以会给出不同的回答、同一个模型之所以可以写得平庸也可以写得新鲜,都是因为回答是从一整张分布里抽出来的,不是预先选好的"赢家"。
接下来的问题是 — 给定这张分布,具体怎么把一个 token 抽出来?这就是"采样"。
temperature 和 top-p — 真正重要的两个旋钮
从一张分布里抽 token 的方式不止一种。书里给得最多笔墨的两个 — temperature 和 top-p — 你可能听过名字,但未必看到过被认真解释。
Temperature 改的是分布本身的形状。把它调低,排在头部的候选会变得更高,模型几乎每次都挑那个最安全、最可预测的 token。输出变得规整 — 同时也变得平、变得单调。把它调高,分布被压平,本来被忽略的候选开始有机会出场。输出变得新鲜 — 但调太高就会显得跑偏、东一榔头西一棒。一句话:temperature 是新颖与连贯之间的那个旋钮。
Top-p(也叫 nucleus sampling)是从另一个角度解决同一个问题。它不是去压扁整张分布,而是从最高概率往下加,只留下累计概率达到 p 的那几个候选 — 通常是 0.9 — 然后只在这个子集里采样。效果是:剪掉概率特别低的尾巴,但在那些真正有意义的候选里保留多样性。
把这两个旋钮组合 — 组合方式比你想的多 — 同一个 LLM 就可以表现得像庙堂一样严谨,也可以像爵士手一样即兴。这不是在"创意"和"平衡"之间选一个那么粗的事。书里花了不少篇幅讲这两个旋钮的真实影响从哪里来。
按"一次一个 token"来想问题
这本书里我最想传过去的思维模式只有一个:永远别忘了模型是一次只产出一个 token。
生成一段长回答,意思是模型把"拿到目前已写完的所有东西作为上下文、再抽一个 token"这件事重复了上千次。每个新 token 都依赖前面所有的东西。开头一个小磕绊,会一路回响到最后。反过来,一个走对了方向的开头,也会把整条链拉到一个更好的轨道上。
所有问题都是"下一个 token"问题
章末时,书里把最大的一句话挑出来。写代码、写诗、解一道数学题、给备忘录写摘要、在多轮对话里给出回复 — 对模型来说,这些任务最后都被归约为同一件事。给定到目前为止的上下文,下一个 token 是什么最可能。仅此而已。所有我们看到的丰富,都站在这一根简单的支柱上。
这个思维一旦进了你的脑子,你和 LLM 的所有互动都会无声地变得更利落 — 你怎么写 prompt、怎么挑模型、对每个模型擅长什么不擅长什么的那种直觉。
明天 — 第 3 章:文本在模型里是怎么流动的。我们再向里走一步 — token 进了模型之后,在里面发生了什么。嵌入(每个 token 的数值表示)、注意力(模型怎么决定要看哪里)、以及这些怎么拼成 Transformer。