凌晨一点二十。
我盯着屏幕,一行字正一个词一个词地往外挤,像有人从牙膏管尾巴往上推。机箱风扇在脚边转,闷闷的,有点像梅雨天里不肯停的空调外机。
那天我没干别的,就是把同一句话丢进去二十遍,看它每次回什么。二十遍,十九遍不一样。
它不是在“想”,它在做一道概率题
很多人第一次听到“大模型算法”这四个字,脑子里浮出来的是一个会思考的盒子。不是。
它做的是一件极其朴素的事:根据前面所有的字,算出下一个字最可能是什么。
就这一件事。重复几千次,一篇文章就出来了。
你给它“今天南京天气”,它内部会把这句话切成一堆 token——可能是“今天”“南京”“天气”三块,也可能切得更碎,看词表怎么定。然后这些 token 各自变成一个高维向量,几百维到上万维不等。向量在层与层之间被反复揉搓,揉到最后,输出层吐出一个覆盖整个词表的概率分布。
“真”占多少,“不”占多少,“怎”占多少……几万个数字,加起来等于一。
然后采样。挑一个。
这里有个温度参数,特别有意思。温度调低,它几乎总挑概率最高的那个,回话就变得一本正经、车轱辘话来回说。温度调高,低概率的词也有机会被选中,文风立刻飘起来。我试过把温度拉到 1.5,它开始管南京叫“金陵城外的雨幕”,写诗倒是好看,回答问题就稀里糊涂。
说白了,它像一台一直在下注的机器,赌的永远是下一个字。而我们感受到的所谓逻辑、所谓推理,是这种下注在长程上涌现出来的一种秩序感。对,涌现。这词有点玄,可你很难找到更贴切的。
注意力:让“南京”知道该去找“天气”
光有概率还不够。真正让大模型算法脱胎换骨的,是注意力机制。
打个比方。假设让你做一道开卷题,卷子厚得像电话簿。你手里攥着一个问题,得决定翻哪几页。问题就是 Query,每一页的目录标签是 Key,页面上真正的内容是 Value。你拿问题去跟每个标签比对,得分高的那几页,权重就大。
注意力机制干的就是这件事:它让序列里的每个位置,去决定该从别的位置拿多少信息。

为什么这事关键?因为“今天南京天气”里的“天气”,必须知道要去关注“南京”,而不是均等地看每个字。少了这一步,模型就像把所有书页糊成一团浆糊再读。
再往下是多头注意力。你可以理解成,同一道题派了八个人同时翻,一个人专门找时间线索,一个人专门盯人名,一个人负责看否定词。最后把八份笔记拼起来。这就是“头”多的意义——不是算力浪费,是分工。
还有个小东西容易被忽略:位置编码。Transformer 原本对顺序无感,“我打你”和“你打我”在它眼里可能没什么区别。位置编码就是把次序这件事硬塞进去,让它知道谁在前谁在后。
就这么些零件。堆几十层,几百层。参数从几亿涨到几千亿。事情就开始变得不太一样了。
训练和推理,是两码事
很多人把这两件事混着说,其实差得远。
训练是搬砖。海量文本喂进去,前向算一遍损失,反向传播把梯度一层层传回去,调参数,一轮又一轮。这个阶段吃的是显存、带宽、时间和电。成千上万张卡连成一片,跑几个月。
推理是摆摊。你问一句,它算一次,吐一串字。这里没有梯度,没有参数更新,只有一个前向过程。为了不重复计算,工程上会做 KV Cache,把算过的键值缓存下来,每吐一个字就复用它。
所以“训练一次花多少钱”和“用一次花多少钱”,完全是两个账本。

顺带说个常见误解:参数越大越聪明。不一定。数据质量、训练时长、后训练怎么调,这些都在场。后训练里头,监督微调让它学会听指令,偏好对齐让它学会说人话、少说废话。同一批参数,后训练做法不同,出来的脾气能差很多。
我见过不少人拿到一个开源权重,直接跑,觉得这也没多强啊。然后发现是没做对话模板对齐。尴尬。
关于幻觉,说句公道话

模型胡编,这事被骂得太多,但骂之前不妨想一分钟。
它训练的时候,被优化的目标是什么?是预测下一个词。它被奖励的是像人话,不是正确。
这两件事大多数时候重合。可一旦不重合,它会毫不犹豫地选择“像人话”。所以它编起参考文献来一本正经,编号、期刊、页码齐全,你照着去查,一条都找不到。
这不是它在说谎。它压根没有“知道自己在说谎”这个状态。它只是在做一次语言上极其流畅的续写。
想让它少编,有几种思路:喂检索结果、要求它引用原文出处、或者用外部工具校验。但这些都是在模型外面做文章,不是它自己突然变诚实了。
——这里我得停一下。我不太喜欢“对齐”这个词被滥用,有时候它被说得像某种道德工程。技术层面看,它就是一套偏好数据加一个优化目标的事。
几个我常被问到的

问:我想用大模型做点东西,得先学多少数学?
看你站哪一层。调接口、写提示词、搭工作流,基本不用碰梯度。想改结构、做微调、搞蒸馏,那线性代数和概率论躲不过去。
问:上下文窗口越开越长,是不是就万事大吉了?
不是。窗口长了,注意力计算量跟着涨,而且中间那段信息容易被忽略,长窗口和短窗口的效果不是简单平移的关系。塞进去一百万字,不等于它都读进去了。
问:开源和闭源差多少?
这个我不想给一个数。差距在缩小,但缩小的速度跟任务类型强相关。有的任务上几乎摸平,有的还差着一段。
冷一点的想法
数据快用完了。这是个挺现实的问题。公开互联网上的高质量文本就那么多,模型一代比一代能吃。于是合成数据上场——让模型生成数据去训练下一个模型。
这有点像自己跟自己下棋。短期能长棋力,时间长了会怎样呢。没人敢打包票。我个人的感觉是,这条路不会撞死,但也不会像以前那样一路平推。
还有能耗。这个真不是喊口号,是真金白银的电费。一次大规模训练的用电量,放到一个中等城市里也不是小数。
那天关掉终端已经两点多。风扇声停下去,房间突然安静得有点不习惯。
屏幕暗了。我脑子里还剩一个问题没收尾——如果它吐出的每个字都是一次下注,那我们看着它说话时感受到的那种“懂”,到底是我们读进去的,还是它算出来的?
没想明白。改天再说。
作者|科技
排版|科技
审核|乐乐
大讲堂