1. 项目概述:当Transformer学会自己算数
大语言模型能写出莎士比亚风格的十四行诗,却算不对"37×49"这道小学数学题——这个看似荒谬的现象,已经成为AI领域公开的尴尬。传统解决方案就像给文科学霸配了个计算器:要么让模型生成代码交给外部解释器执行,要么通过智能体调度把计算任务拆解外包。这两种"外挂式"方案始终没能解决根本问题:模型自身缺乏精确计算能力。
2026年3月,Percepta团队在Transformer架构中实现的突破性进展改变了这一局面。他们成功在模型权重里"建造"了一台完整的冯·诺依曼架构计算机,包含RAM存储器和WebAssembly解释器。这意味着模型可以不依赖任何外部工具,直接以自回归方式执行编译后的机器指令。当我说"执行"时,指的是真正的计算过程——就像你我在大脑中进行算术运算一样,而非简单地预测下一个Token。
2. 技术架构解析
2.1 计算机体系结构的权重实现
团队采用了一种巧妙的权重编码策略:将计算机的寄存器、内存地址等硬件组件映射到Transformer的隐藏层维度。具体实现中:
- 寄存器组:用768维隐藏向量的前256维表示16个16位寄存器
- 内存空间:中间300维实现为4KB可寻址内存
- 程序计数器:最后212维编码指令指针和状态标志
这种设计使得模型在前向传播时,隐藏层的线性变换实际上在执行"取指-译码-执行-写回"的完整指令周期。例如执行ADD R1, R2指令时:
- 注意力机制识别当前指令类型
- 前馈网络完成寄存器值的算术运算
- 层归一化确保结果不会溢出有效范围
2.2 2D注意力头的几何优化
传统Transformer的O(n)计算复杂度是阻碍长程序执行的关键瓶颈。Percepta的创新在于将Key向量从1D扩展到2D平面,并引入计算几何中的凸包算法:
python复制class HullAttention(nn.Module):
def __init__(self, dim):
self.q_proj = nn.Linear(dim, 2) # 二维查询空间
self.k_proj = nn.Linear(dim, 2) # 二维键空间
def forward(self, x):
Q = self.q_proj(x) # [seq,2]
K = self.k_proj(x) # [seq,2]
hull = ConvexHull(K) # 构建凸包
indices = hull.vertices # 极值点索引
return attention(Q, K[indices]) # 只在凸包上计算注意力
这种设计将复杂度从O(n)降至O(log n),实测在10万Token长的程序执行序列中,速度提升达217倍。更妙的是,整个过程完全基于标准PyTorch实现,不需要定制CUDA内核。
3. 系统工作流程详解
3.1 从源代码到Token指令
系统采用分层编译架构:
- 前端编译:将C代码编译为WebAssembly字节码
- 指令编码:把wasm指令映射到自定义的256个Token词汇表
- 运行时优化:通过注意力掩码控制执行流(循环/分支)
例如计算斐波那契数列的C代码:
c复制int fib(int n) {
if (n <= 1) return n;
return fib(n-1) + fib(n-2);
}
会被编译为Token序列:
code复制FUNC_DECL LOAD_ARG CMP LE JMP_IF RET CALL SUB ADD ...
3.2 执行阶段的动态调度
模型采用双模式运作:
- 编码模式:正常生成代码(与传统LLM相同)
- 执行模式:激活计算机子网络,此时:
- 每生成一个Token对应一条指令执行
- 注意力机制监控程序状态
- 前馈网络模拟ALU运算
这种设计带来惊人的灵活性——同一个模型既能写诗又能做微积分,只需切换工作模式。
4. 性能实测与案例分析
4.1 基准测试结果
在配备RTX 4090的工作站上测试:
| 任务类型 | 传统方法(t/s) | Percepta(t/s) | 提升倍数 |
|---|---|---|---|
| 矩阵乘法(100×100) | 12.7 | 2843 | 224× |
| 素数筛(1-10000) | 8.3 | 1956 | 236× |
| 数独求解(极难) | 超时 | 176 | - |
注:t/s表示每秒执行的Token数,传统方法含外部解释器调用开销
4.2 数独求解的透明化执行
团队选用Arto Inkala设计的"世界最难数独"作为展示案例。模型内部执行以下步骤:
- 编译数独求解器为Token指令序列
- 初始化9×9网格的内存表示
- 执行约束传播算法:
- 每个单元格维护可能值集合
- 行列宫格约束实时更新
- 遇到多解时启动回溯搜索
整个过程产生约15万Token的详细执行日志,包括:
- 每次赋值的推理依据
- 约束传播的影响范围
- 回溯点的堆栈状态
这种透明性对调试AI决策过程具有重要意义。
5. 技术影响与未来方向
5.1 对AI架构的启示
这项工作证明Transformer可以成为通用计算基底,而非仅是统计预测器。几个关键发现:
- 注意力机制能有效管理计算状态
- 前馈网络可精确模拟算术逻辑单元
- 权重空间足以编码完整计算机架构
5.2 潜在应用场景
- 自主智能体:在无外部工具环境下可靠执行复杂任务
- 教育领域:展示算法执行的完整思维过程
- 安全计算:敏感数据全程在模型内部处理
5.3 当前局限与改进方向
主要挑战包括:
- 内存容量有限(当前仅4KB)
- 缺乏浮点运算单元
- 训练需要特殊设计的课程学习
团队正在探索的方向:
- 分层内存架构
- 可扩展的指令集
- 神经编译优化器
6. 实践建议与避坑指南
对于想尝试类似架构的研究者,分享几个关键经验:
-
初始化策略:
- 计算机相关权重用正交初始化
- 保持指令编码的汉明距离
- 程序计数器单独初始化
-
训练技巧:
- 先用短程序(<100指令)预训练
- 逐步增加分支/循环复杂度
- 添加噪声增强鲁棒性
-
调试方法:
- 可视化注意力头的"程序计数器"
- 监控寄存器值的分布变化
- 设计专门的梯度裁剪策略
这个项目最让我惊讶的是,当模型真正"理解"了计算过程而非只是模仿模式时,它在数学推理任务中的表现会有质的飞跃。这或许暗示着,要实现真正的机器智能,我们需要让模型掌握最基本的计算能力——就像人类在学习抽象概念前,必须先学会数数一样。
