你给它一句话,它一个字一个字地往外吐。
看起来像“理解”,其实整件事比想象中朴素得多:大模型从头到尾只做一件事——预测下一个字。
想透这件事,后面所有名词——注意力、参数、推理、温度——都只是它的技术细节。这篇文章不写代码、不推公式,只把这台“只做一件事”的机器完整过一遍。先把地图铺开,往后的文章再一格一格往里走。
第一步:把文字变成数字
模型不认识字。你输入的文字,先要被翻译成一串整数。
这个过程叫分词:把一句话切成若干“碎块”(token),每个碎块在词表里有一个编号。“今天天气不错”可能被切成 今天 / 天气 / 不错,对应三个数字。
这里没有魔法,纯粹是查字典。但怎么切、词表里有什么,本身就是一门学问——下一篇会用整篇文章讲分词器。
第二步:数字穿过一整个网络
一串数字进去,先变成一串“向量”(一组小数),然后穿过十几到上百层网络。
每一层都在做同一类事情:让每个字把上下文里其他字的信息“看”一遍,然后更新自己。看谁、看多少,不是人规定的,是训练时自己学出来的。
可以把每一层想象成一个加工车间:
- 注意力层:字与字互相交换信息(“苹果”要看到“吃”才知道是水果)
- 前馈层:每个字自己再做一次深度加工
- 这两个动作叠几十层,出来的就是“读过整句话之后”的一组数字
关键在于深度。一层只能建立短距离关系;堆叠起来之后,模型才能处理“整篇论证依赖第三段的限定条件”这种远距离依赖。

第三步:从几万种可能里挑一个
网络最后一层输出的,是下一个字在词表里每个候选上的分数。
词表可能有几万到十几万个 token,模型给每个候选打分:接这个字,合不合适?输入“床前明月”时,“光”的分数会远远高于“灯”。
然后按分数挑一个出来——这就是“生成”的全部含义:不是冥思苦想,是开一票。
怎么“挑”大有讲究:
- 永远选最高分(贪心):稳定但死板,容易绕圈
- 按概率随机抽(采样):灵活但可能跑偏
- 折中:只在前几名里抽——“温度”参数调的就是这个
第四步:把吐出来的字喂回去
挑出的字接到输入末尾,整段重新过一遍网络,再挑下一个。
一步、两步、一万步,同一个网络反复运行。“生成一篇文章”并不深奥——就是把这个流程循环几千遍。
这也解释了两个现象:
- 慢:写第 500 个字必须等前面 499 个算完,没法并行
- 忘:每个位置能“看”到的历史有长度上限
为什么会有“理解”的错觉
你可能会问:只会预测下一个字,它凭什么能翻译、写代码、做数学题?
这里有个反直觉的事实:在足够长的文本里,要准确预测下一个字,你就必须“懂”很多东西。
试着预测“3.14159”后面跟什么——数学。预测
for i in range(10):后面那一行——编程。预测侦探小说的下一句——人物关系与伏笔。每一次精准的预测背后,都压着一块对应领域的知识。
所以“预测下一个字”不是低级目标,而是一个逼着模型学会一切的目标。规模上去之后,“顺便学会”的能力反而成了主角——这就是常说的“涌现”。
这张地图的下一站
这个系列会沿这条路一格一格往下钻:分词器 → 词嵌入 → 位置编码 → 自注意力 → ……直到一个能真正跑起来的最小模型。
不跳步,不堆名词。每一篇只干一件事:把上一个黑盒拧开。
