LoopFormer:通过快捷调制实现弹性深度循环Transformer的潜在推理 LoopFormer: Elastic-Depth Looped Transformers for Latent Reasoning via Shortcut Modulation
提出弹性深度的循环Transformer,通过时间与步长调制实现预算自适应的潜在推理
前置知识
循环Transformer(Looped Transformer)
一种参数共享的Transformer架构,通过重复应用同一个Transformer块(通常标记为Phi_k)多次来增加有效深度,而不是使用不同的层。这种架构使用符号(k tensor L)表示,其中k是共享块的数量,L是循环次数。例如(3 tensor 8)表示3个共享块的Transformer循环8次,总FLOP约为3乘以8等于24倍于单块计算。这种方法既节省参数又保持了深层网络的表达能力。与标准Transformer(24 tensor 1)相比,它大幅减少了参数量(从24层参数减少到3层参数),但保持了相似的计算深度。研究表明这种架构具有推理归纳偏置,能够实现潜在推理。
本文基于循环Transformer构建,理解其参数共享和循环机制是理解LoopFormer创新点的基础。论文中的核心创新之一就是让循环模型能够适应不同的计算预算,这直接建立在循环Transformer的架构之上。
潜在推理(Latent Reasoning)
一种在模型隐藏状态内部进行推理而非通过显式思维链输出的计算范式。在潜在推理中,模型通过在隐藏状态空间中执行迭代计算来隐式地执行多步推理,类似于求解算法或优化过程。循环Transformer被认为具有潜在推理的归纳偏置,因为它们可以通过多次循环迭代在内部状态中逐步精化表示,模拟推理步骤。例如,回答一个需要因果推理的问题时,模型不需要输出首先然后因此这样的显式推理过程,而是在隐藏层中通过多次迭代逐步构建正确的表示,最终直接给出答案。研究表明,随着有效计算深度和循环次数的增加,循环模型的潜在推理能力会逐步增强。
本文的研究动机之一就是探索循环Transformer的潜在推理能力。论文通过分析表示动态(曲率、各向异性、熵等)来验证模型是否真的在进行有效的推理,而不是陷入表示停滞。理解潜在推理有助于评估模型在推理任务上的表现是否真的来自深度计算。
AdaLN(Adaptive Layer Normalization)
一种条件归一化技术,最早用于扩散模型(如Diffusion Transformer, DiT)。AdaLN通过从条件信号(如时间步t)回归出归一化的缩放和偏移参数,使网络能够根据条件信号动态调整每层的归一化行为。具体来说,给定条件向量c,AdaLN通过一个小MLP计算出缩放参数gamma和门控参数alpha,然后应用于归一化操作。在LoopFormer中,AdaLN被用于根据当前循环的时间t和步长Delta t调制Transformer块的行为。
LoopFormer的核心架构创新之一就是使用类似AdaLN的条件调制机制来控制每个循环的行为。理解AdaLN的工作原理有助于理解LoopFormer如何通过(t, Delta t)条件实现轨迹一致性,这是实现弹性深度的关键技术。
表示停滞(Representation Stagnation)
指在深层神经网络或循环模型中,隐藏状态随着深度或迭代次数增加而不再发生实质性变化的现象。当表示停滞发生时,后续的层或循环对表示的贡献很小,计算被浪费。这种现象在深层Transformer中已有观察,常与自注意力机制的归纳偏置有关(如注意力矩阵秩随深度衰减)。在循环模型中,表示停滞表现得更为明显:重复应用同一个共享块可能导致表示快速收敛到某个固定点,后续的循环不再精化表示。指标上,表示停滞可以通过高各向异性(token表示高度对齐)、低曲率(表示变化方向平缓)、低熵(表示多样性不足)和高CKA相似性(不同循环的表示高度相似)来检测。例如,论文中显示naive early-exit基线在这些指标上都是平坦的,表示后续循环几乎没有改进。
本文的核心挑战之一就是解决循环模型在弹性深度场景下的表示停滞问题。LoopFormer通过shortcut modulation和consistency training来避免表示停滞,确保不同长度的轨迹都能产生有意义的表示。理解表示停滞有助于评估LoopFormer是否真正实现了有效的深度计算。
CKA(Centered Kernel Alignment)
中心核对齐(Centered Kernel Alignment)是一种衡量两个神经网络表示相似性的指标。CKA通过计算两个表示矩阵的中心化Gram矩阵之间的线性相关性来衡量相似性,值域为0到1,1表示完全相同,0表示正交。在深度学习研究中,CKA常用于分析不同层或不同模型之间的表示关系,例如比较两个模型在相同任务上学到的表示是否相似,或者分析同一模型不同层的表示演化。在本文中,CKA被用来分析循环模型在不同循环步骤之间的表示相似性:如果CKA值很高,表示不同循环的表示几乎相同,可能存在表示停滞;如果CKA值有适当的下降,表示表示在随循环迭代逐步演化。论文图5显示LoopFormer的CKA热力图呈现渐进式漂移,而基线模型则显示高CKA(表示停滞),这验证了LoopFormer的有效性。
CKA是论文中用于分析表示动态的关键指标之一,用于评估循环模型是否真正在进行有效的推理计算。理解CKA的含义和计算方式有助于理解论文的实验分析部分,特别是图5的结果。
研究动机
现有的循环Transformer模型在训练和推理时使用固定的循环次数,这导致它们无法灵活地适应不同的计算预算。当在训练时未见过深度上评估时(比如训练时使用L等于8次循环,推理时只使用M等于4次),这些模型的表示会崩溃,性能急剧下降。论文引用相关研究指出,这些设置是off-distribution的。在实际应用中,这意味着循环模型必须与非循环的iso-FLOP基线花费相同的计算预算,放弃了循环架构的关键优势:灵活计算。虽然动态计算技术(如early exiting、routing、layer dropping)已经在非循环Transformer中得到应用,但这些技术直接移植到循环架构中很脆弱:重复应用共享块往往导致表示收敛到相似的停滞状态,无法有效利用额外的深度。例如,论文的实验显示naive early-exit基线在减少计算预算时性能下降严重,在6倍预算下perplexity从24.53上升到29.36(OpenWebText),推理准确率从42.88%下降到40.97%。
本文的目标是本文的目标是实现弹性深度:单个循环模型能够在用户选择的计算预算范围内保持良好性能,无需重新训练,也不会出现后期循环退化。具体来说,给定一个最大循环次数L,模型应该能够在任意预算M小于等于L下产生高质量的表示,性能随着计算预算增加而平滑提升。在推理时,用户指定计算预算M和步长调度Delta_M,模型应该产生随计算缩放的输出,而不是在较浅深度时崩溃。论文希望探索循环Transformer是否真的能够灵活利用其计算深度,以及能否训练它们在变量计算预算下有效运行。这不仅是一个工程问题,也关乎循环架构的潜在推理能力:如果模型真的在内部执行推理,那么额外的计算应该持续精化表示,而不是停滞。
与已有工作不同的是,本文的独特切入角度是将循环Transformer的计算视为表示空间中的轨迹,类似于扩散模型中的去噪轨迹或神经ODE中的连续时间动态。与以往只condition在循环索引上的方法(如TMLT)不同,LoopFormer同时condition在归一化时间t和步长Delta t上,使模型能够理解它在轨迹中的位置和移动的粗细粒度。更重要的是,本文引入了shortcut-consistency训练方案:在训练时同时计算完整轨迹(L次循环)和采样较短的shortcut轨迹(S次循环),通过stop-gradient将长轨迹的最终表示作为短轨迹的目标,实际上在循环内部执行自蒸馏。这种设计让短轨迹学会逼近长轨迹的t等于1终点,而长轨迹继续精化。与基于routing或token-level halting的方法不同,LoopFormer采用序列级别的预算控制,避免了循环模型中常见的表示停滞问题,实现了真正的弹性深度。
核心方法
LoopFormer的核心思想是将迭代表示精化建模为表示空间中的轨迹,通过条件调制和一致性训练实现弹性深度。从直觉上看,可以将Token状态h的0次方看作初始点,随着循环迭代逐步演化为目标状态h的1次方,这就像在时间轴上从t等于0走到t等于1。每个循环步骤都有一个步长Delta_i,表示在时间轴上前进的幅度。粗粒度的轨迹(用少量大步长)应该能够近似细粒度的轨迹(用多量小步长),这正是弹性深度的基础。技术上,LoopFormer是一个循环的decoder-only Transformer,其中单个共享块Phi_k被迭代应用M次(1小于等于M小于等于L)。关键创新在于每个循环i都condition在一对(t的i-1次方, Delta_i)上,其中t的i-1次方属于区间0到1是累积的归一化时间,Delta_i属于区间0到1是步长,满足从i等于1到M的Delta_i求和等于1。这两个标量通过正弦余弦频率嵌入编码,然后通过小MLP投影得到e_t和e_Delta,求和形成条件信号e_i等于e_t加上e_Delta。这个信号调制LoopFormer Block:一个MLP将e_i映射为两个RMSNorm层的缩放参数(gamma_1, gamma_2)和MHSA/FFN残差连接前的门控参数(alpha_1, alpha_2)。这样,每个循环都明确知道自己在轨迹中的位置和粒度,能够在粗粒度和细粒度调度下保持一致行为。训练时采用dual-trajectory目标:对每个batch计算完整L-loop轨迹用于主语言建模损失,同时采样一个较短的M-loop轨迹用于shortcut-consistency损失。整体目标为L等于L_L加上lambda_1乘以L_S加上lambda_2乘以L_cons,其中L_L和L_S是最长和最短轨迹的next-token预测损失,L_cons是stop-gradient consistency损失,将短轨迹的表示对齐到长轨迹。论文设置lambda_1等于lambda_2等于0.1。在推理时,用户可以选择任意预算M小于等于L和步长调度Delta_M,模型产生随计算平滑缩放的输出,无需重新训练。
LoopFormer的核心创新点是将循环Transformer的计算重新框架化为表示空间中的轨迹,并通过双重条件调制(时间t和步长Delta t)和shortcut-consistency训练来实现轨迹一致性。与已有的方法相比,LoopFormer的本质区别在于:以往的方法(如TMLT)只condition在循环索引上,相当于固定步长的均匀采样,而LoopFormer同时condition在t和Delta t上,使模型能够理解轨迹的局部几何结构。这允许模型在训练时接触多样化的步长调度,从而在推理时能够适应任意的预算和调度。另一个关键区别是训练目标:以往的方法只优化单一固定循环次数,而LoopFormer通过shortcut-consistency将不同长度的轨迹对齐到一个共同的t等于1终点,实际上是在训练模型学习一种压缩和扩展轨迹的能力。这与扩散模型中的consistency training类似,但应用在循环Transformer的语言建模场景。这种设计让短轨迹不是简单的early exit,而是主动学习如何高效地逼近长轨迹的最终状态,而长轨迹则能够继续精化。从理论上讲,这意味着LoopFormer在表示空间中学到了一种连续的动态系统,不同的步长调度对应于不同的数值积分方案,但都收敛到相似的终点。
方法步骤详情
LoopFormer的训练过程包含以下步骤。首先,给定输入序列X等于(x_1, ..., x_T),通过token embedding和位置embedding得到初始隐藏状态h的0次方等于E_tok(X)加上E_pos从1到T,属于R的T乘以d维空间。然后,构造最大轨迹Delta_L,即L个均匀步长Delta_i等于1除以L。在每个训练batch中,除了使用最大轨迹计算完整输出h的L次方等于Phi_k(h的0次方; Delta_L)外,还采样一个shortcut轨迹:首先从均匀分布1到L-1中均匀采样shortcut长度S,然后在0到1上均匀采样离散步长调度Delta_S使得从i等于1到S的Delta_i求和等于1,计算shortcut输出h的S次方等于Phi_k(h的0次方; Delta_S)。接着,计算三个损失:完整轨迹的语言建模损失L_L等于交叉熵(LMHead(h的L次方), Y),shortcut轨迹的语言建模损失L_S等于交叉熵(LMHead(h的S次方), Y),以及consistency损失L_cons等于stopgrad(h的L次方)减去h的S次方的L2范数平方。consistency损失使用stop-gradient防止长轨迹被短轨迹反向更新。最后,通过梯度下降更新参数theta,最小化总损失L等于L_L加上lambda_1乘以L_S加上lambda_2乘以L_cons。推理过程相对简单:给定输入X,用户选择预算M小于等于L和步长调度Delta_M,初始化h的0次方等于E_tok(X)加上E_pos,然后对于i等于1到M,计算h的i次方等于Phi_k(h的i-1次方; t的i-1次方, Delta_i),最后返回LMHead(h的M次方)的最后列作为next-token预测。每个循环内部的Phi_k操作包含k个Transformer块,每个块都根据(t的i-1次方, Delta_i)生成的条件信号c等于phi(t的i-1次方)加上phi(Delta_i)进行调制:通过AdaLN-style modulator将c映射为(alpha_msa, alpha_mlp, gamma_msa, gamma_mlp),然后应用于RMSNorm缩放和残差门控。这些参数被零初始化,确保初始行为与未调制的backbone相同,条件被稳定学习。
技术新颖性
LoopFormer的技术新颖性体现在多个方面。首先,它是第一个在循环Transformer中同时使用归一化时间t和步长Delta t作为条件的工作,这使得模型能够理解轨迹的局部几何结构,而不仅仅是循环索引。其次,它引入了shortcut-consistency训练方案,通过自蒸馏将不同长度的轨迹对齐到共同的终点,这是对consistency training概念的新颖应用场景。第三,论文系统地分析了循环模型的表示动态,使用几何和信息论指标(anisotropy、curvature、entropy、CKA)来诊断表示停滞,这是对循环模型可解释性的贡献。第四,论文提出了loop trajectory的概念,为理解循环模型中的潜在推理提供了新的视角,这与routing或halting等token-level的方法有本质区别。与相关工作的比较:TMLT只使用循环索引作为时间条件,且训练在单一固定调度上;Mixture of Recursions使用token-level routing来改变每个token的循环次数,而LoopFormer使用序列级预算;扩散模型中的consistency training用于对齐不同采样步数的输出,而LoopFormer将其用于对齐不同长度的循环轨迹。从应用角度看,LoopFormer为构建预算可控的大语言模型开辟了新路径,这在计算资源受限的场景下具有重要意义。
实验结果
论文在多个维度上评估了LoopFormer的表现。在perplexity方面,LoopFormer(3 tensor 8)在24倍预算下达到了Pile 10.28、FineWeb-Edu 22.87、OpenWebText 21.98的表现,与非循环Base(24 tensor 1)的9.49、20.7、20.08差距明显缩小,优于Base-Loop(10.91, 24.53, 24.53)和TMLT(10.38, 22.87, 21.99)。更重要的是,LoopFormer在12倍预算下perplexity为11.12、25.02、24.21,与Base(12 tensor 1)的9.98、22.24、21.41接近,远优于Naive-Loop-EE(11.66, 26.74, 25.81)和TMLT-EE(12.18, 28.28, 27.11)。这表明LoopFormer在减少预算时性能下降更平缓。在zero-shot推理方面,LoopFormer(3 tensor 8)在24倍预算下在10个任务上的平均准确率为44.81%,与非循环Base(24 tensor 1)的45.27%几乎持平,优于Base-Loop(42.88%)和TMLT(44.69%)。在12倍预算下,LoopFormer平均准确率为43.73%,与Base(12 tensor 1)的44.93%接近,远优于Naive-Loop-EE(42.59%)和TMLT-EE(41.5%)。论文还研究了层数k和循环次数L的影响:对于k属于集合1,2,3和L属于集合8,12,24,perplexity和推理都随k和循环次数增加而改善,LoopFormer在预算M小于等于L下保持这些趋势。表示动态分析显示,LoopFormer在curvature、anisotropy和entropy指标上都呈现出有意义的演化:早期步骤曲率较低、对齐较弱、熵较低,随着步骤推进曲率和熵上升、对齐增加,最后在接近终步骤时所有指标都平缓下来。相比之下,early-exit基线在这些指标上都是平坦的,表示表示停滞。CKA相似性分析显示LoopFormer的表示在循环步骤间呈现渐进式漂移,而基线模型则显示高CKA(表示相似,停滞)。论文还研究了固定预算下的轨迹选择:对于LoopFormer(3 tensor 8)在M等于4预算下,枚举所有步长调度后发现性能变化范围约为1.4个perplexity点和1.3个准确率点,最好的调度倾向于前期使用较大步长、后期使用较细步长。在FLOP匹配的训练下(LoopFormer训练34k步,baseline训练50k步,总FLOP相同),LoopFormer在看到更少token的情况下仍然与TMLT持平,同时提供弹性深度推理能力。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| Language Modeling (Pile Perplexity) | Perplexity (越低越好) | LoopFormer (3 tensor 8): 10.28 (24倍), 11.12 (12倍), 14.30 (6倍) | Base (24 tensor 1): 9.49 (24倍), Base (12 tensor 1): 9.98 (12倍), Base (6 tensor 1): 11.13 (6倍) | 在12倍预算下,LoopFormer与Base差距仅为1.14个perplexity点,优于Naive-Loop-EE的差距1.68个点 |
| Zero-shot Reasoning (Average Accuracy) | Accuracy (越高越好) | LoopFormer (3 tensor 8): 44.81% (24倍), 43.73% (12倍), 40.36% (6倍) | Base (24 tensor 1): 45.27% (24倍), Base (12 tensor 1): 44.93% (12倍), Base (6 tensor 1): 42.73% (6倍) | 在12倍预算下,LoopFormer与Base差距仅为1.2个百分点,远优于TMLT-EE的差距3.43个百分点 |
| COPA (Commonsense Reasoning) | Accuracy (越高越好) | LoopFormer (3 tensor 8): 66% (24倍), 68% (12倍), 63% (6倍) | Base (24 tensor 1): 61% (24倍), Base (12 tensor 1): 67% (12倍), Base (6 tensor 1): 64% (6倍) | 在12倍预算下LoopFormer甚至略优于Base(12 tensor 1),在24倍预算下提升5个百分点 |
| HellaSwag (Commonsense Inference) | Accuracy (越高越好) | LoopFormer (3 tensor 8): 32.3% (24倍), 31% (12倍), 28.69% (6倍) | Base (24 tensor 1): 35.04% (24倍), Base (12 tensor 1): 32.72% (12倍), Base (6 tensor 1): 30.45% (6倍) | 虽然仍有差距,但LoopFormer在12倍预算下差距缩小到1.72个百分点,优于TMLT-EE的2.84个百分点 |
| LAMBADA (Word Prediction) | Accuracy (越高越好) | LoopFormer (3 tensor 8): 38.27% (24倍), 32.35% (12倍), 26.14% (6倍) | Base (24 tensor 1): 41.96% (24倍), Base (12 tensor 1): 37.78% (12倍), Base (6 tensor 1): 33.45% (6倍) | LoopFormer在深度任务上表现良好,在24倍预算下仅差3.69个百分点,在12倍预算下保持竞争力 |
局限与改进
论文本身承认的局限性包括:首先,LoopFormer使用全局(序列级)预算控制,而不是instance或token-level自适应。这意味着所有token使用相同的计算预算,可能无法充分利用简单token需要更少计算的事实。其次,由于dual-trajectory训练,LoopFormer在训练时需要约1.5倍的FLOP开销(理论分析为约1.5倍,实际测量为约1.3倍墙钟时间),这增加了训练成本。第三,论文的表示分析是相关性的,不是因果性的,无法断言loop trajectory中的演化过程就是真正的推理过程。此外,从论文的实验数据也可以观察到一些局限性:与非循环Base模型相比,LoopFormer在相同FLOP下的perplexity仍有差距(24倍预算下Base 9.49 vs LoopFormer 10.28),这可能反映了参数共享在记忆任务上的劣势;在非常低的预算下(6倍),LoopFormer的性能下降仍然明显(perplexity 14.30 vs Base 11.13),表示极限压缩仍然困难;轨迹选择实验显示即使在相同预算下,不同调度的性能差异很大(perplexity spread约3个点),这意味着默认的均匀步长可能不是最优的,需要额外的策略来选择调度。最后,论文只在小规模模型(约1B参数)上验证了方法,在大规模模型上的效果尚不清楚。
独立分析的弱点
LoopFormer的独立分析弱点包括:首先,全局预算控制可能无法有效利用token-level的计算冗余。在实际推理中,一些token可能很简单(如常见词、标点),只需要很少的计算就能准确预测,而复杂token(如专有名词、长尾概念)可能需要更多计算。LoopFormer的序列级预算无法区分这种差异,可能导致计算分配效率不高。改进方向是实现instance-conditioned schedule policies,让模型学习根据输入内容动态调整每个token或每个位置的步长调度。其次,dual-trajectory训练增加了训练开销,虽然推理时与baseline相当,但在大规模预训练场景下这个1.5倍的训练开销可能不可忽视。改进方向包括更高效的consistency训练策略(如稀疏采样、渐进式调度)或者将consistency loss作为辅助任务而非主要目标。第三,轨迹选择问题:论文显示不同调度在相同预算下性能差异很大,但默认使用均匀步长。改进方向包括学习最优调度策略(通过meta-learning或强化学习),或者根据输入内容自适应选择调度。第四,表示分析的局限性:虽然论文使用了多种几何和信息论指标,但这些分析仍然是相关性的,无法证明模型真的在进行推理。改进方向包括mechanistic interpretability分析,追踪特定推理任务的内部计算过程,或者设计controlled experiments来验证loop trajectory与推理能力的关系。最后,论文只在小规模模型上验证,在大规模模型(如GPT-3规模)上的效果未知。改进方向是在更大规模上验证方法的可扩展性,特别是当模型容量和训练数据大幅增加时,shortcut-consistency训练是否仍然有效。
未来方向
论文作者提出的未来方向包括:instance-conditioned schedule policies,即根据输入内容动态选择计算预算和步长调度,而不是使用固定的全局预算。这将更精细地利用计算资源,可能进一步提升性能效率。另一个方向是更深层的理论和诊断工具来理解表示空间中的动态,例如分析loop trajectory的几何结构(曲率、流形结构)与推理能力的关系,或者设计新的指标来量化潜在推理的推理强度。基于论文成果的可延伸方向包括:将LoopFormer的shortcut-consistency训练扩展到其他循环架构,如vision transformer的循环应用、多模态模型的循环推理;探索loop trajectory在其他任务上的应用,如代码生成、数学推理等需要多步推理的任务;研究loop trajectory与其他动态计算技术的结合,如Mixture-of-Depths(MoD)或early exiting,实现更细粒度的计算控制;理论分析loop trajectory的收敛性质,证明在不同步长调度下表示的一致性;在大规模预训练上验证LoopFormer,探索当参数规模达到数十亿或百亿时,shortcut-consistency训练的有效性和可扩展性。另一个有趣的方向是将loop trajectory与chain-of-thought prompting结合,例如通过监督学习或强化学习让loop trajectory显式地模拟CoT步骤,可能进一步提升推理能力。最后,可以研究loop trajectory的可视化和解释工具,让用户能够直观地理解模型如何在内部思考,这对AI可解释性和信任度有重要意义。
复现评估
LoopFormer的复现情况较为良好。论文提供了详细的实现细节:使用NanoGPT训练栈,在4乘以H100 (80GB) GPU上训练,模型配置包括隐藏维度d等于2048、注意力头n_heads等于32、FFN维度d_ff等于5120、context length 1024。训练使用AdamW优化器,权重衰减2乘以10的负1次方,余弦学习率衰减,峰值学习率6乘以10的负4次方,最低学习率6乘以10的负5次方,4000步warmup。论文还提供了PyTorch风格的伪代码(Algorithm 3),详细说明了LoopFormerBlock和SharedBlock的实现,包括AdaLN-style modulator的细节。数据方面,论文使用The Pile的去重子集,训练约25B tokens,符合Chinchilla scaling。论文没有明确声明是否开源代码,但提供了项目页面链接,通常包含代码和模型。算力要求方面,4乘以H100 GPU对于小规模研究是可以接受的,但大规模预训练可能需要更多资源。难度方面,由于提供了详细的超参数和伪代码,实现LoopFormer应该相对直接,主要的复杂性在于dual-trajectory训练的逻辑和conditioning机制的设计。论文还提供了详细的ablation研究(附录B),包括计算开销分析、与vanilla Transformer在相似参数预算下的比较、FLOP匹配训练下的比较,这些都为复现和进一步研究提供了有价值的信息。总体而言,LoopFormer的复现难度中等,论文提供了足够的技术细节,但需要一定的工程经验来实现复杂的训练逻辑。
论文图表
算法1形式化了LoopFormer的训练过程。算法使用while循环迭代直到收敛。每次迭代包括以下步骤:1) 采样batch (X, Y);2) 构造最大轨迹Delta_L(均匀步长);3) 从均匀分布1到L-1采样shortcut长度S;4) 采样长度为S的轨迹Delta_S,满足从i等于1到S的Delta_i求和等于1;5) 计算完整输出h的L次方等于Phi_k(h的0次方; Delta_L)和shortcut输出h的S次方等于Phi_k(h的0次方; Delta_S);6) 计算损失:L_L等于交叉熵(LMHead(h的L次方), Y),L_S等于交叉熵(LMHead(h的S次方), Y),L_cons等于stopgrad(h的L次方)减去h的S次方的L2范数平方;7) 使用L_L加上lambda_1乘以L_S加上lambda_2乘以L_cons的梯度更新参数theta。
这个算法对理解LoopFormer的训练逻辑很重要。它清晰地展示了dual-trajectory训练的具体实现,包括如何采样shortcut轨迹、如何计算consistency loss。这对于想要复现或扩展LoopFormer的研究者来说是重要的参考。算法中的关键细节(如stop-gradient、损失权重)在论文中被明确指定,有助于确保正确实现。
算法2形式化了LoopFormer的推理过程。算法输入包括输入序列X、用户选择的预算M小于等于L和步长调度Delta_M。算法步骤包括:1) 初始化h的0次方等于E_tok(X)加上E_pos;2) 对于i等于1到M,计算h的i次方等于Phi_k(h的i-1次方; t的i-1次方, Delta_i);3) 返回LMHead(h的M次方)的最后列作为next-token预测。与训练不同,推理时只需要计算一个轨迹,不需要dual-trajectory,因此计算开销与标准循环Transformer相同。
这个算法对理解LoopFormer的推理逻辑很重要。它清楚地展示了推理时的弹性深度机制:用户可以选择任意预算M小于等于L和步长调度Delta_M,模型产生相应质量的输出。这也解释了为什么LoopFormer的推理开销与baseline相同:虽然训练时需要dual-trajectory,但推理时只需要计算用户选择的单个轨迹。
算法3提供了LoopFormer核心shared block的PyTorch风格伪代码。代码包括两个类:LoopFormerBlock和SharedBlock。LoopFormerBlock初始化时包含两个RMSNorm层(ln_1, ln_2)、一个CausalSelfAttention(attn)、一个MLP、一个AdaLN-style modulator(adaLN_modulation)。modulator是一个SiLU激活后接线性层的网络,输出4d维向量,被chunk为四个门控和缩放参数。这些参数被零初始化,确保初始行为与未调制的backbone相同。forward方法接收输入x和条件向量c,通过modulator计算参数,然后应用于注意力分支和FFN分支:注意力分支为x加上gate_msa点乘attn(RMSNorm(x)点乘(1加上scale_msa)),FFN分支为x加上gate_mlp点乘mlp(RMSNorm(x)点乘(1加上scale_mlp))。SharedBlock包含k个LoopFormerBlock,forward时依次应用所有block。
这个算法对实现LoopFormer非常重要。它提供了详细的伪代码,包括conditioning机制的具体实现、参数初始化策略、RMSNorm和残差门控的数学形式。这对于想要复现LoopFormer的研究者来说是宝贵的参考,特别是AdaLN-style modulator的实现细节在论文文本中虽然有描述,但代码形式更直观。零初始化的细节对训练稳定性很重要,这是实践中的关键经验。