代码如何击破 Transformers 的数学之谜
Source: Dev.to
上下文: 我已经阅读了几天的多篇文章…
背景
我最近几天一直在阅读与 Google 和 CMU 最近的一篇论文相关的多篇文章,题为 “Deep sequence models tend to memorize geometrically; it is unclear why”(arXiv: 2510.26745 – 深度序列模型倾向于几何记忆;原因尚不清楚)。
流传的标题把这一发现描述成 圣杯:
- “模型 自发合成几何记忆”。
- “它们不仅仅是记忆,而是 构建几何”。
- 甚至暗示我们正看到一种 自行意志组织世界的意识 的最初闪现。
第一印象
我去看了原始 PDF。过程有点艰难,因为:
- 学术英语和我之间保持着相互尊重但有距离的关系。
- 我的数学水平像是一个从事30 年“敲石头”的工程师,而不是理论研究者。
阅读时,我的直觉立刻跳了出来。
当他们看到一个“谜团” (原因不明), 我只看到一个算法正好执行它被编程要做的事。我没有看到魔法。我看到一个 遵循最小努力法则的优化机制。
实验
- 训练数据:原子级事实,如 “A 连接到 B”、 “B 连接到 C”。
- 训练过程:仅向 Transformer 输入这些局部连接,而不提供完整的地图。
传统学术预期
在拥有数十亿参数(内存充足)的情况下,最“懒散”的做法是 将每一对存入单独的抽屉,类似于一个巨大的哈希表,A 与 C 之间没有任何关联。
观察到的结果
模型 没有这么做。它不是把数据存放在孤立的抽屉里,而是 在向量空间中对其进行排序,把 A、B、C 排成一条线,形成几何结构。
对我来说,惊讶的是他们感到惊讶。
弹性橡皮筋的隐喻
想象一下,神经网络的基本机制是 测量向量之间的相似度(点积)。如果我说:
- A 必须和 B 相似,
- B 必须和 C 相似,
还会发生什么?
如果我用弹性橡皮筋把三块石头绑在一起并拉它们,它们会排成一线。
不是因为石头“懂几何”,而是因为这是唯一能释放橡皮筋张力的物理方式。
机械可视化
- 概念(A、B、C) → 仓库地面上的沉重箱子。
- 算法 → 用弹性橡皮筋连接箱子的工人。
| 顺序 | 工人的操作 |
|---|---|
| 1 | “A 连接到 B”。在 A 与 B 之间系上一根橡皮筋;橡皮筋被拉紧,拉动两箱子直到它们贴在一起。 |
| 2 | “B 连接到 C”。在 B 与 C 之间系上一根橡皮筋;橡皮筋被拉紧时,会把 C 拉向 B …… 但也会把 B 拉向 C! |
机械关键: B 位于中间,系着两根橡皮筋,充当链环。把 B 拉向 C 时,已经系在 B 上的箱子 A 也会被“顺带”拉动。
必然结果: 箱子们会排成 A‑B‑C 的列车。系统会寻找 最小张力状态;保持它们对齐在计算上比让橡皮筋向相反方向拉伸要 更省力。
论文中所说的 “几何” 仅仅是当你让 梯度张力 以 最小努力 来组织数据时,数据呈现出的形态。
球在山脉中的类比
让我们从观察橡胶和盒子转向观察系统运动的完整景观。
- 训练 → 一个在山脉中滚动的球。
- 目标 → 让球到达尽可能最低的点(零误差的山谷)。
数学家的视角
“小心!这片地形充满了数百万个不规则的洞、裂缝和坑,球可能会卡在那里”。
这些“洞”代表无序解:模型在没有顺序和几何结构的情况下记忆数据的配置。从数学上讲,这些洞是存在的且是有效的解(零误差)。因此研究者们感到困惑,为什么球从未掉进这些洞,而总是落在宽阔且有序的几何山谷中。
工程师的视角
“放心,球不会掉进洞里,因为它不是自由滚动的。它在轨道上滚动”。
代码和优化器施加约束,引导球的轨迹朝向低能量(低张力)解,避免混沌的“洞”。
简化到最本质
想象我们想要在数学上解决:
x + y = 10
- 数学家:解空间是无限且混沌的:((5, 5))、((1, 9))、((100, -90))… 这些“洞”中的任意一个都是有效的。
- 工程师(代码):从零开始(就像网络初始化一样),优化算法引导解向一个有序的配置收敛(例如,使某个额外范数最小的值)。
结论
Transformer 向有序状态的“拖拽” 不是众多选项中的一个;它是 不可避免的物理后果,源于它们使用的 back‑propagation 机制和 向量相似度度量。
- 梯度张力 像弹性橡胶一样,倾向于 直线而非扭曲的曲线。
- 论文中的 光谱偏差 仅仅是优化器倾向于偏好 低频(平滑)函数 而非 高频噪声 的表现。
换句话说,Transformer 并不“思考”几何;几何出现 是因为它是 最省能量 的方式来 最小化系统能量。
示例代码
x = 0
y = 0
while (x + y):
# 这里会写循环逻辑
# (为了展示结构,主体故意留空)
pass
相反。 认识到“装置”倾向于默认生成几何,验证了一种设计系统的方式。如果我们给模型喂入具有明确逻辑结构(传递性、层级)的数据,就不需要显式编写规则。训练过程本身的摩擦会为我们生成那张“地图”。这是优化器免费提供的特性。
这种 几何惯性 是一把双刃剑。拖拽机制是盲目的;它没有真理标准,只有误差最小化的准则。如果我们给模型喂入嘈杂、不连贯或仅是偶然匹配的数据,算法会以同样的蛮力尝试对其进行排序。它会从纯噪声中构造出坚固且可信的几何结构,制造出虚假的因果关系,仅仅因为这是它唯一知道的降低数据之间数学张力的方式。
没有幽灵在机器里。只有被充分理解的计算物理。
几何记忆 并不是人工意识的涌现属性;它是寻找最小阻力路径的算法的必然结果。Google 的研究者在数据上是正确的,但他们的“神秘”叙事忽视了实现层面有时会施加纯理论看不到的限制。
对于我们这些紧贴代码工作的人来说,这提醒我们 实现从来不是中立的。我们选择的工具——优化器、初始化方式或损失函数——会为我们做出架构决策,塑造最终结果,甚至比底层数学理论更具影响力。
也许真正的挑战不是在“黑箱”中寻找谜团,而是更好地理解我们自己铺设的轨道的物理本质。