这两天推上关于OpenAI 的新模型 Astra 使用“ loop transformer”的讨论很多。Sebastian Raschka写了篇介绍,指出这种技术也不新鲜,在boss直聘开源的南北阁大模型里就已经用到了。
---------------
今天我的时间线上有很多人在讨论 OpenAI 的 Astra 模型。看起来,这波热度源自 The Information 最近的一篇文章,其中称 Astra 是一种“递归深度”或“循环式 Transformer”。
了解新的或不同的技术路线一直都很有意思,包括那些关于闭源实验室可能正在尝试什么的传闻。不过,这件事还是有必要稍微去魅一下。
大约两个月前,我曾分享过南北阁的架构细节。例如:
“南北阁 4.2-3B 从零开始,在 28 万亿 token 上进行预训练,并采用循环式 Transformer,通过重复使用同一组层来增加模型容量,而不增加参数量。”
没错,核心就是这样。
所谓循环式 Transformer,本质上就是重复使用 Transformer 模块中的同一组层。
以南北阁为例,它的主要思路是:把同一组 22 层的 Transformer 层堆栈运行两遍,而不是只运行一遍。这样一来,从实际计算深度上看,相当于把一个 22 层的架构扩展到了 44 层,但并没有复制第二套权重。
简单来说,如果暂时忽略词嵌入层和输出层,这相当于大致把模型的“有效深度”翻了一倍。
但它并不需要两倍的存储空间和显存来部署,因为这些组件被重复使用了,所以参数规模仍然保持不变。
代价则是计算量几乎翻倍,因为嵌入后的文本需要经过接近两倍数量的层。
为什么要这样做?
在《南北阁 4.2 技术报告》中,研究人员发现,两次循环在效果和成本之间提供了最好的权衡,并且能够保留标准架构大约 75% 的 token 效率。继续增加循环次数几乎不会带来多少额外收益,却会让训练速度明显变慢、成本大幅增加。
据我所知,南北阁 4.2 是第一个较为知名、采用这一思路的开放权重模型。不过,这个想法本身更早可以追溯到 NeurIPS 论文《Mixture-of-Recursions: Learning Dynamic Recursive Depths for Adaptive Token-Level Computation》。
实际上,这篇论文提出的方法还要更复杂一些。它加入了一个学习得到的路由器,用来决定每个 token 应该经过 Transformer 模块一次、两次,还是更多次。
因此,较简单的 token 可以提前退出,而较困难的 token 则会获得更多计算。
总的来说,Astra 完全有可能是一个非常好的模型,但它的亮点不应该被归因于“循环式 Transformer”这一点,因为这本质上只是一个很小的架构调整。
另外,有一种说法是:
“这种新技术会以某种方式隐藏 AI 的部分或全部推理过程,也就是所谓的‘思维链’。”
如果这里指的是循环式 Transformer,那么这个说法并不一定成立。
有可能 The Information 的记者实际上指的是另一种技术,也有可能是对循环式 Transformer 方法产生了误解。
单纯重复使用同一组层,并不会自动隐藏或抑制可见的思维链。它只是让模型在生成下一个 token 之前,在内部隐藏状态中进行更多计算,而普通 Transformer 层本来就是这样工作的。
不过,根据目前已知的信息,一个比较合理的解释是:如果模型使用更多次这样的递归循环,它可能就不需要生成那么多中间推理 token。
这样一来,更多计算会发生在无法直接以文本形式读取的潜在激活状态中。
但如果只是单纯增大模型规模,也可能产生类似效果,比如从 GPT 5.6 Luna 扩展到 GPT 5.6 Sol。
