返回书架算子演化论:第一卷

写在前面

AI 刚热闹起来那阵子,我就一直想着找时间学一学。写代码试过,看书也试过,都没能坚持下来。2026 年初,我干脆让当时的 Opus 和 GPT 给我写了一本关于大模型的数学书。书是写出来了,我却不太看得明白,放了一阵,也就慢慢搁置了。

只是平时偶尔还会琢磨。有一天晚上刷牙,我忽然觉得思维链和自回归之间似乎有一点数学上的相似之处,便和 Gemini 聊了很久,但总觉得隔着一层,没聊到点子上。第二天送完孩子回来,脑子里又冒出个念头:模型里的许多计算,可以看成矩阵运算与激活函数一层层叠加起来;像 ReLU,会把一部分计算结果变成零。那么对于不同的输入,是不是可以顺着计算过程,把它看成不同的一串小函数复合起来?再按输入区域把这些链路分开看,事情似乎就能顺着往下分析了。

当时顺着工程上的习惯,我把它叫作“算子网络”——其实严格说来,那会儿想到的只是分段算子链。最早的记录也很零散,仓库里直接写着:“还没有成体系,就是把平时琢磨的东西先记下来。”末尾又补了一句:“想到什么写什么,后续可能会整理。”那时的内容还紧贴着大模型,幻觉、思维链、注意力,以及各种训练和推理方法都写过一些。后来一边写一边整理,才逐渐把一般的数学讨论和具体模型的分析剥离开来。

在分析这些算子和链路时,我起初为了抽象直接用了度量空间。但做误差估计时,不同方面的差异总要塞进同一个距离数值里,算出来的上界常常很粗,许多想看的东西反而没有表现出来。直到改用一族伪度量来分别保留不同方面的比较,再用矩阵组织它们之间的关系,原先卡住的地方才算理顺。等到前三卷的初稿写完,我本来觉得差不多可以收尾了,却又想讨论一点类似“训练”的事情。只是“训练”这个词太工程化,我不希望从外面强加一个训练过程,而是想看看算子自身可以通过什么方式发生变化,于是想到了“演化”,试着把网络闭合成了环。后来再整理算子网络时,我又注意到节点复用与环路转移的问题,把早期的网络定义重新搭了一遍。写到后来,我已经不那么关心 OET 和最初的大模型问题还有多少关系了;理论自己长出了新的问题,不少章节都是写到半路发现前面还有事情没交代清楚,才顺着往下写出来的。

这一路推衍下来,陪我做这些事情的模型,也从早期的 Gemini、Opus 换成了后来的 GPT。放在以前,哪怕脑子里冒出个念头,光靠自己查资料、尝试推导、抠细节,耗费的时间和精力太大,多半推不了几步也就放下了。现在好歹能先把一个还没想透的念头拿出来聊,顺着它试着推一推,卡住了再换个角度。当然,模型常会出错,有时还会把问题带偏。早期有些话说得太满,有些推导写得很顺,回头细看却少了条件,甚至根本推不出原来以为的结论。于是只能一遍遍补条件、改证明,有时干脆整段删掉重写;再往后,索性把 Lean 形式化验证也加了进来,逼自己把检查做得更细一些。

到现在,我也不知道 OET 最后会写到哪里。后面还有不少问题要想,已经写下的内容也还要继续核实;在验证清楚之前,我不想急着下结论,或者因为已经写了很多就直接拿出来发布。不过,能这样花些时间,去看看自己喜欢的数学世界,再把想到的东西慢慢写下来,我觉得挺好。

本章内容