上篇拆开来看——ChatGPT是一个字一个字往外蹦的了解了 ChatGPT 是怎么一个字一个字往外蹦的。但这引出了一个更让人困惑的问题,也是我这回学到的重点。

一个看似简单、实则要命的差事

"预测下一个词"——听着是不是太简单了?小学生都能玩的游戏,凭啥要 1750 亿参数、几百万美元算力、几千亿条语料来训练?

原因只有一个:要把这个"简单"任务做好,背后需要的能力一点都不简单。

学的时候发现几个有意思的场景,分享一下。

第一,多义词。你看到"他拎着一只包"和"他把事情全包了"——同一个"包"字,意思天差地别。模型要预测"包"后面的词,得先判断这个"包"到底是名词还是动词。判断错了,后文全歪。

第二,指代。你读到"老李把方案交给老王,他说这个不行"——"他"指谁?老李还是老王?人靠常识能推断(多半是老王觉得不行),但模型没有"常识",它只能靠参数里编码的语言模式来推理。

第三,隐藏的逻辑。你说"外面下雨了"——下一句大概率是"别忘了带伞"之类的。但换成"外面下雨了,庄稼有救了"——又完全是另一码事。模型得根据上下文判断你是在关心出行还是在关心收成。

第四,话里有话。你说"你作业写完了吗"——表面是问句,实际是催。模型不仅得理解字面意思,还得吃透这句话此时此地的"用意"。

所以,为了把"猜下一个词"这件事做对,模型被迫学会了语法、语义、常识、逻辑、指代、语用——几乎你能想到的所有语言能力。不是"先有了智能,所以会猜";而是"为了猜得更准,被迫长出了智能"。

这个视角一转,很多东西就通了。

image

自回归:像个雪球越滚越大

上篇说了 ChatGPT 是一个词一个词往外蹦的,这有个正式名字叫自回归

用函数调用的角度看更清楚。假设你问"今天天气怎么样":

第1次调用: ChatGPT("今天天气怎么样?")
           → "今天"
第2次调用: ChatGPT("今天天气怎么样? 今天")
           → "上海"
第3次调用: ChatGPT("今天天气怎么样? 今天上海")
           → "的"
第4次调用: ChatGPT("今天天气怎么样? 今天上海的")
           → "天气"
...以此类推

注意每次调用都带了完整的问题 + 前面已生成的词。为什么不只带已生成的部分?把问题丢了,模型就不知道自己在回答什么了——它会从"今天上海的"开始自由发挥,大概率跑偏。

image

那为什么不一次性生成整段回答?技术上不是不行,但组合爆炸太恐怖——假设一次预测 50 个词,每个词有 20 万种候选,组合数就是 20万的50次方,比全宇宙的原子数还多,根本没法算。一个接一个地猜,每次只做一次决策,简单得多,也稳定得多。而且说实话,这跟人写作的习惯挺像——你也不是先把整篇文章在脑子里写好才动笔的。

误差会累积:为什么说着说着就跑偏了

自回归有个天生的毛病:一步差,步步歪。

第一步选了个不是最优但还凑合的词,第二步的上下文就被带偏了,第三步偏得更离谱……越往后越放飞。就像走路,每一步偏 1 度不觉得,走 100 步就完全是另一个方向了。

image

这就是为什么 ChatGPT 聊着聊着就"飘"了——不是它突然变傻了,是前面的一个小选择把上下文引到了不太对的方向,后面只能将错就错。

怎么缓解?最直接的办法是更大的上下文窗口。你可以把上下文窗口想象成模型的"短期记忆条"——窗口越大,能记住的对话历史越长,就越不容易在局部跑偏。比如你说"帮我查一下上海的天气",模型往前翻十几轮对话,还记得你们在聊旅行计划,回答就更靠谱。但窗口有上限——GPT-3 大概能记一篇短文,GPT-4 能记几万字,GPT-5 更长。本质上就是给模型配了个更大的"短期记忆"。

image

Token:模型看到的其实不是"词"

平常咱们用 ChatGPT,不管是 API 账单还是各种客户端,总能看到"本次消耗 xxx tokens"、"剩余 xk tokens"之类的提示。说实话,我第一次看到的时候完全没当回事——token 嘛,不就是"词"换个说法?

后来才搞明白,这个理解是错的。前面一直说"预测下一个词",但严格来说,模型的最小单位不是词,而是 Token

为啥要搞这个?因为这里有个根本约束——计算机需要一个固定大小的"词表"。ChatGPT 必须事先定好一个有限的词汇表(比如 20 万个),预测的时候只能从这个表里选,不能临时加词、不能现学。

如果直接用"词"做单位,有三个头疼的问题:

  1. 词表太大:中文常用词就几万,加上专业术语、人名地名,轻松上百万;英文几十万单词加上 walk/walking/walked 各种变形,更炸

  2. 新词没完没了:"元宇宙"、"Vibe-Coding"、"直播带货"……天天在冒新词,永远赶不上

  3. 算不起:每次预测要给每个候选算概率,100 万个候选就要算 100 万次,太慢了

Token 的思路很巧妙:常用词整个保留为一个 Token,生僻词切成几个 Token,生僻到离谱的就切得更碎——用有限 Token 组合出无限的可能。

比如中文里,"今天"是一个 Token,"天气"是一个 Token,但"人工智能"可能被切成了"人工"+"智能"两个 Token;生僻英文词 "ChatGPT" 可能被切成 "Chat"+"G"+"PT" 三个 Token。

一个 Token 到底长啥样?它可能是:

  • 一个完整的中文词(如"今天")

  • 单独一个字(如"真")

  • 英文单词的一部分(如 "Token" + "ization")

  • 一个标点符号(逗号、句号都算一个 Token)

一般一个中文字大约对应 1 个 Token,英文里一个 Token 大约等于 0.75 个单词。

词表越大,能整个保留的常用词越多,切得越少,效率越高——同样一段话消耗的 token 越少,你付的钱也越少:

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

更大的词表有两个好处:一是更精细的表示——常用词不用切碎,信息完整;二是更高效率——同样一段话,Token 数更少,模型处理更快,你花的钱也更少。

所以"ChatGPT 预测下一个词"严格应该说"ChatGPT 预测下一个 Token"。但为了方便理解,说"词"也大差不差——现在你再看到账单上的 token 数,就知道它不是字数,而是模型内部真正的"最小计费单位"了。

image

为什么同样的问题,每次回答都不一样?

如果你反复问 ChatGPT 同一个问题,你会发现它每次的回答措辞都不一样——有时候连内容都有差别。

这不是 bug,是故意设计的。每次预测时,模型不是死板地选概率最高的那个 Token,而是按概率随机采样——概率高的被选中的几率大,但不是铁定的。

这样设计有两个好处。一是更像人类——你问我两遍"今天天气怎么样",我也不会一字不差地复读。二是能在创造力和准确性之间取个平衡——完全确定性的回答太僵化,完全随机又太混乱了。通过概率采样,在两者之间找到平衡点。

想想看,如果 ChatGPT 对同一个问题永远给出一样的回答,它跟一个数据库查询有什么区别?你只是在检索答案,不是在"对话"。

image

当然这个随机性的程度是可以调的——有两个关键参数控制它:Temperature(温度)和 Top-p。温度越高,低概率的词越有机会被选中,输出就越"放飞";温度越低,输出就越保守、越确定。后面学到的时候再细说这俩参数。

它不是在算,是在猜

说个生活中的事。

你邻居家小孩刚上幼儿园,你逗他:"1+1等于几呀?"小家伙张口就来:"2!"你竖个大拇指,心想这娃数学不错。

过了两天你又逗他:"那 2+3 呢?"小家伙愣住了,支支吾吾半天说不出——他不是会算,只是上次那道题他妈教过他答案,他记住了。

ChatGPT 做算术,本质上跟这差不多。

你问它"36 + 58 等于多少",你以为它在列竖式、进位、一步一步算。实际上它脑子里根本没有"计算"这回事——只是训练数据里"36+58"这个字符串后面,最常出现的就是"9",然后是"4"。它顺着概率最高的路径往下猜,拼出来就是"94"。

所以它会在一些简单问题上翻车。你问"strawberry 里有几个 r",它不是对着一串字母去数,而是在猜——训练数据里类似的问题后面最常见的是哪个数字?猜对了就行,猜错了拉倒。本质上就是只记住了模式,没理解意思。

image

不过 OpenAI 早就发现了这个问题。从 GPT-4 开始,模型学会了调用工具——遇到数学题,它不再自己硬猜,而是偷偷调 Python 算一下,再把结果用自然语言包装一下回复你。所以你现在用 ChatGPT 算数学题基本不会错了——不是因为它学会了数学,是它学会了摇人。

到 2026 年的新模型(GPT-5.5、Qwen3-Max、Gemini 3.0 等),经过强化学习训练的模型已经有了一定的原生推理能力,能在内部进行多步推导和自我纠错,不完全依赖外部工具了。但核心逻辑没变——它仍然在"猜",只是猜得越来越准,推理链条越来越深。

小结

这篇学了几个承上启下的点:

  1. "简单差事"逼出复杂智能:为了精准预测下一个词,模型被迫学会了语法、语义、常识、逻辑

  2. 自回归 = 滚雪球:自己生成的词又喂给自己,一步步滚出完整回答

  3. 误差累积:一步偏了,后面的路就歪了——这就是"飘了"的原因

  4. Token 是最小单位:不是"词",是更灵活的"词元",用有限词表覆盖无限表达

  5. 随机采样让 AI 更像人:不总选最优解,按概率碰运气

  6. 它不是在算,是在猜:记住了模式不等于会计算,但好在学会了摇人

下一篇见,加油~

Logo

AtomGit AI 社区提供模型库、数据集、Agent、Token等资源

更多推荐