1 min read 100 words Updated Apr 25, 2026 Created May 03, 2026
  • Universal Transformer

类似于 RNN 的思路,但是对于一般的 Transformer 引入循环,也就是重复思考:

特殊的设计有两点:

  • Depth/Time PE

由于有 loop 的存在,所以实际上除了位置,还有一个时间维度的编码,那么每次 loop 回来之后,在每次 self-attention 之前,都要嵌入该时间编码,其中 $\ ^t$ 表示轮次

$P^t_{i, 2j} = \sin\left(\frac{i}{10000^{2j/d}}\right) + \sin\left(\frac{t}{10000^{2j/d}}\right)$
$P^t_{i, 2j+1} = \cos\left(\frac{i}{10000^{2j/d}}\right) + \cos\left(\frac{t}{10000^{2j/d}}\right)$

  • ACT(Adaptive Computation Time)

也就是可以动态的调整 loop times,分成 每位置独立的标量停止概率预测 + 累积阈值判定 + 余量插值 三个机制协同

具体来说,也就是对于每一个时间,额外训练一个参数,用于计算每一次循环后的停止概率:

$$p_i^t = \sigma(W_h h_i^t + b) $$

$p_i^t$ 累计大于某个值 $\tau$,或者步数大于某一步,那么就终止循环。

同样,每一层的状态,也是基于这个 $p_i^t$ 的加权平均:

$$\begin{aligned} w_i^t &= \begin{cases} 1 - H_i^t + p_i^t & 首次跨越阈值或者达到循环最大次数 \\ 0 & 停止循环 \end{cases} \\ transformed &= TransitionFunction(SelfAttention(state_i^{t-1})) \\ state_i^t &= w_i^t · transformed + (1 - w_i^t) · state_i^{t-1} \\ \end{aligned} $$