论文

在循环语言模型中分配循环计算

Allocating Recurrent Compute in Looped Language Models

模型架构递归架构

摘要

循环语言模型通过重复应用共享计算来改进推理和知识操作。尽管混合器和密集前馈网络(FFN)执行不同的操作并具有不同的成本,但现有系统通常会重复整个层堆栈。我们问一个更狭隘的问题:什么应该循环?我们将循环视为状态更新的重复组合,并认为当应用程序暴露出在任务读出时仍然可观察到的新的跨位置影响方向时,它是有价值的。迭代传输排名(ITR)描述累积影响轨迹;边际 ITR 描述了连续申请所带来的非冗余影响。这种观点激发了 MixerLoop,它重复每个门控 DeltaNet 混合器,同时应用其密集 FFN 一次。我们在相同的数据、初始化和架构下,以 15M 和 110M 参数对 MixerLoop 与无递归和全块递归进行比较。有限上下文关闭干预测试稍后的混合器应用程序是否在最终语言模型读出时产生明显的、不可忽略的且有益的变化。 MixerLoop 在 15M 的总 CORE 上超过了 FullLoop,并在 110M 时保留了 41.5% 的 CORE 改进,同时将循环骨干投影 FLOP 减少了 45.9%。这些结果表明,无需重复执行密集 FFN 即可保留循环深度的优势。