把Transformer当成计算机是个大动静,尤其是卡帕西给这套做法点了个赞。它能让模型直接在内核里干活,不用再求助外部工具。过去那种通过外包来做计算的法子行不通了,这次是真的要把代码写进权重里。这就好比在CPU里装了个现代化的RAM和WebAssembly解释器,C、C++这些高级语言编译出的指令都能在这儿跑。比如算3加5,模型会先写个程序,然后切换到快节奏模式,把代码一口气跑完,执行过程还能变成一条条标记流出来。这样结果就在输出流里现成生成了,不用再等别的设备反馈,而且整个过程都是透明的。 光是内置了计算器还不够,Percepta团队还在注意力头设计上下了功夫。以前的标准Transformer扫描历史序列要耗费大量算力,这种线性增长的成本让长序列的精确计算成了奢望。为了降本增效,他们搞出了一种二维注意力头的设计。每个历史Token的Key向量都变成了二维坐标,当前Query的向量就像个指向某个方向的箭头。查寻最匹配的Key其实就是在凸包上找极值点。通过维护凸包数据结构,每一步查询只需要在这个有限的集合里找就行了,复杂度一下子从O(n)降到了O(log n)。他们把这个机制集成到HullKVCache里,在普通CPU上跑了一下测试,居然能达到每秒31037个Token的吞吐速度。完成9000行指令只用了1.3秒,效率比老方法快了近200倍。 有了这套高效的体系架构,团队挑了两个特别硬核的任务来验证实力:一个是10×10的最小代价完美匹配问题,另一个就是传说中世界最难的Arto Inkala数独。做完美匹配时模型直接在内核里跑匈牙利算法,全程都是自回归生成的计算轨迹。从行分配到Dijkstra算法找增广路径,每一步的计算和代价都清清楚楚地记录在日志里。整个过程在CPU上完成,输出速度达到了33583 Token每秒和7301行每秒。 数独那边的情况也非常壮观。面对只有21个提示数的Arto Inkala数独(也就是那位叫Arto Inkala设计的),模型内部执行了一个完全正确的求解器。它先用约束传播填了21个格子,接着进入搜索阶段挨个试数字填上去。如果遇到矛盾就立马回溯重来。每一次尝试、验证甚至是检测矛盾都被拆成了可读的日志行和Token轨迹记录下来。最终它在3分钟内完成了100%的精确求解。 这项工作的灵魂人物是Christos Tzamos博士。他是麻省理工的博士出身,现在是雅典大学计算机科学副教授,同时也是Percepta的创始研究员之一。Percepta这家公司是General Catalyst旗下的AI转型公司,里面聚集了来自Meta FAIR、MIT和Google等顶尖机构的人才。参考资料请见链接:[2]https://www.percepta.ai/blog/can-llms-be-computers (完)