接着上篇参数的演化与黑箱之谜——大模型到底学会了什么继续往下学。

前两篇分别搞清楚了两个问题:ChatGPT "是什么"(1750 亿参数的函数),和"怎么来的"(几千亿次猜→错→改训练出来的)。但还有一个更核心的问题——

你问它一个问题,它到底怎么一个字一个字地把答案"编"出来的?

答案说出来你可能不信:它只是在不停地猜下一个字。 没了,就这。

试试看:你其实也会

来,咱们做个实验。我写半句话,你接着往下说:

"昨天晚上我去了一家……"

你脑子里是不是瞬间蹦出来好几个选项?"新开的火锅店"、"朋友推荐的日料"、"从来没去过的酒吧"……

这就是预测下一个词。ChatGPT 干的活跟你刚才做的一模一样——只不过你只在几个候选里挑,它是在约 20 万个候选里算概率,然后选一个。

再说个你每天都在用的:手机输入法联想。打"我今天很",弹出来"开心"、"忙"、"累"——这就是最原始的"预测下一个词"。区别在哪?

image

你看,本质是同一回事,只是体量差了十万八千里。

跟一遍完整过程:它是怎么一个字一个字蹦出来的

假设你问 ChatGPT:"明天适合去爬山吗?"

它不是先把整段回答想好再输出。它是一个字一个字地蹦。下面咱们一步一步跟着走:

第 1 步——它看着你的问题,在约 20 万个候选词里挨个算概率。比方说跑出来的结果是:

"明" — 25%
"天" — 18%
"年" — 12%
"星" — 8%
"确" — 6%
…… 剩下十几万个词,概率都接近 0%

它选了概率最高的那个——"明"。此时回答就一个字:

第 2 步——现在它眼睛里看到的东西变了,是"问题 + 已生成的'明'"。重新算一轮:

"天" — 40%     ← 概率最高,"明天"是常用词开头
"星" — 15%
"年" — 10%
"确" — 8%

选"天"。回答变成:明天

第 3 步——继续,"明天"后面:

"的" — 35%     ← "明天的…"是常见句式
"天" — 30%
"是" — 12%

选"的"。回答:明天的

第 4 步——"明天的"后面,概率最高的两个词分别是"天气"(35%)和"气温"(28%)。选"天气"。

明天适合去爬山吗?→ 明天的天气…

你看,这才蹦了 4 步,回答就已经有了明确的走向。继续往下蹦:

明天的天气
明天的天气以
明天的天气以晴
明天的天气以晴为
明天的天气以晴为主
明天的天气以晴为主,
明天的天气以晴为主,气
明天的天气以晴为主,气温
明天的天气以晴为主,气温在
明天的天气以晴为主,气温在18
明天的天气以晴为主,气温在18到
明天的天气以晴为主,气温在18到25
明天的天气以晴为主,气温在18到25度
明天的天气以晴为主,气温在18到25度,
明天的天气以晴为主,气温在18到25度,非常
明天的天气以晴为主,气温在18到25度,非常适合
明天的天气以晴为主,气温在18到25度,非常适合户外
明天的天气以晴为主,气温在18到25度,非常适合户外活动。

一个完整的回答就这么"长"出来了。 每一步只多一个字,但每一步都在重新审视全局——它永远带着整个上下文,重新计算 20 万个候选词里谁最该出现在这个位置。

image

这个过程有个专业名字叫自回归——上一个自己生成的词,立刻变成下一个自己生成词的前提。就像一个雪球,刚粘上的雪立刻变成雪球表面的一部分,推着它继续往前碾。

概率是怎么算出来的?

"算概率"三个字听着轻巧,但这背后是整个模型最吃算力的地方。简单说分四步——这里先建个框架,每个环节后面都会单独拆开细学,现在有个整体印象就行。

image

第一步:文字变数字。 计算机不认识汉字,所以每个词要先变成一串小数(叫向量)。GPT-3 的标准是 12288 个数——不管你是"爬山"还是"天气",统统变成一个 12288 维的数组。一段话就是一个数字矩阵。

第二步:96 层 Transformer 层层加工。 这个矩阵要在 GPT-3 的 96 层网络里一层层穿过。每一层都在干不同的事——有的层在理解"明天"和"天气"之间的语法关系,有的层在提取"爬山→需要好天气"的语义关联,有的层在推理"用户问能不能爬山→回答要包含气温、降水"。

第三步:输出每个词的"得分"。 最后一层处理完,得到一个融合了所有上下文信息的向量,跟 20 万个候选词一一比对,算出每个词的原始分。

第四步:得分变概率。 原始分不能直接用——可能是 3.5、-2.1、0.8 这种乱糟糟的数。通过一个叫 Softmax 的数学操作,把所有分压到 0%~100% 之间,而且保证 20 万个词的概率加起来恰好等于 100%。这就得到了我们前面看到的概率表。

然后从那堆概率里挑一个词(通常选最高的,但不绝对——下一篇专门展开聊这个),接到回答末尾,从头再来。

所以它根本不是"想好了再说"

很多人以为 ChatGPT 是先在脑子里构思好整段回答再打出来的。完全不是。它是边想边写——每蹦一个词,就把这个新词当成事实,接着想下一个。

这也是为什么它聊着聊着容易跑偏。因为它不是在遵循一个预设的剧本,而是在每一步都做一个局部的、概率最大的选择。就像走夜路只看脚下一圈光——每一步都踩在最亮的地方,单步没问题,但连起来就可能歪到沟里了。

反过来说,这也解释了为什么它能"即兴发挥"。你不给它完整剧本,它就自己往下接——这种"不知道终点在哪,但每一步都有理有据"的特征,反而是人类语言最真实的样子。咱们聊天不也是这样么?说一句想一句,谁也不是先把整段话在脑子里写好才开口的。

GPT 各版本的词表有多大

每次都要在全部候选词里算概率,词表大小就很关键了。词表越大,语义越细腻,但计算量也蹭蹭涨:

GPT-2 / GPT-3:    约 5 万个 Token
GPT-3.5 / GPT-4:  约 10 万个 Token
GPT-4o:           约 20 万个 Token

每次预测,这 20 万个候选全要算一遍——哪怕其中 99% 的概率趋向于零。这也是大模型吃算力最狠的地方之一。

小结

这篇搞清楚了 ChatGPT 最核心的工作方式:

  1. 就是猜下一个字——跟你的输入法联想是同一回事,只是体量爆炸

  2. 自回归——刚生成的字立刻当作前提,接着猜下一个,像滚雪球

  3. 概率驱动——每次不是瞎蒙,是基于全部上下文给 20 万个候选词打分

  4. 计算流程:文字→数字向量→96 层 Transformer→得分→Softmax→概率表→选字

  5. 边想边写,不是先想好——没有草稿,每一步都是局部最优

这也引出了几个新困惑:什么叫"Token"?为什么同样的问题每次回答不一样?ChatGPT 到底会不会算数?它"胡说八道"是怎么回事?

下一篇接着学,加油~

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐