爱丁堡大学发布 20 页免费论文:教你用最简单的方法看懂 ChatGPT 背后的数学
- 一位搞了几十年统计建模的学者想读懂大模型,结果被 attention、Query、Key 这些词拦住了,他的结论是:数学本身不难,难的全是黑话。
- 于是他写了 20 页免费论文,把 ChatGPT 内部的数学换成统计学的标准说法重讲一遍,前置知识只有三条,都是大学一年级的东西。
- 被吹得最神的 attention,在他笔下只是一个中学生就懂的操作,真正难的地方另有其处。
数学专家也读不懂 AI 论文,他说全怪那堆黑话
爱丁堡大学商学院的信用研究中心(CRC)挂出了一份 20 页的免费论文,标题就叫《大语言模型的简单数学》。读完它,你能说清 ChatGPT 和 Claude 内部到底在算什么,不用去啃几百页的深度学习教科书。它要求的底子只有三样:会矩阵乘法、知道条件概率、明白统计模型的参数是拿数据拟合出来的。
写这份东西的人叫 Joseph L. Breeden,做了几十年非线性系统建模、统计和语言学研究,自己开着一家分析公司。他本来以为读懂大模型不费劲,结果卡在了词上:
「token 不是一个『query』。语言学家不说『key』。『head』又是什么?我能猜到这些词来自计算机科学,但连号称『无行话』的科普,开口也是 query、key、value。那就从头来过吧。」
Joseph L. Breeden,《The Simple Mathematics of Large Language Models》
attention、Query、Key、Value、head,这些词是从数据库、认知科学、电气工程里搬过来的。搬得不贴切,还挡住了后面那层其实很平常的数学。所以他把这些词全换成了统计学里早就有的名字,每换一个都说明白原来那个词错在哪。这套换名工作是全篇的第二条线,我们放到文章最后收成一张对照表。
大模型只干一件事:猜下一个词
一个语言模型,就是给它一段文字,它给出「下一个词可能是什么」的概率。给它「The cat sat on the(猫坐在……)」,mat(垫子)、floor(地板)、chair(椅子)会拿到高概率,democracy(民主)拿到极低的概率。
它写文章的方式,就是把这个动作重复几百遍:算一遍概率,挑一个词接上去,把接上去的词也算进前文,再算下一个。下面这个演示可以自己点,一步一步走完这个循环。
为什么算一串词的概率就够了?概率论里有个恒等式叫链式法则(是恒等式,不是假设):一整段话出现的概率,可以拆成「第一个词的概率 × 给定第一个词、第二个词的概率 × 给定前两个词、第三个词的概率……」这样一串连乘。所以只要能算「给定前文,下一个词是什么」,整个语言就建模完了。大模型的全部任务就这一件。
难在哪:上下文的组合数比宇宙的原子还多
难点不在这个式子,在于「前文」有多少种。假设词表里有 5 万个 token,那 10 个词的上下文就有 5 万的 10 次方种组合,这个数比可观测宇宙里的原子总数还大。查表是不可能的,你没法给每一种前文都存一张概率表。
所以必须学一个能举一反三的函数:见过「猫坐在垫子上」,就该会处理「狗趴在地毯上」。整篇论文剩下的部分,都在讲这个函数长什么样。
机器不认字:先把词变成点,意思近的挨着放
最省事的做法是给每个 token 编个号:1 号词、2 号词……数学上写成一个只有一个位置是 1、其余全是 0 的长向量。但这么干等于宣布所有词彼此无关:「猫」和「狗」的距离,跟「猫」和「然而」的距离一样远。这显然不对,猫和狗都是动物、都是宠物、都是名词。
换个做法:把每个词表示成一个高维空间里的点(现实中通常是 1000 到 10000 维),意思或语法功能相近的词放得近,不相干的放得远。这些坐标由训练过程自己定出来,没有一个是人手工填的。这套表示法有个通用叫法:embedding(词向量),把一堆离散的词嵌进一个连续的空间里。用统计学的老概念对照,它干的事和主成分分析(PCA)同类:把一大堆属性压进比较少的几个维度,压出来的维度可能有直观含义,也可能没有。