1.6 KiB
1.6 KiB
title, created, updated, type, tags, sources
| title | created | updated | type | tags | sources | ||||
|---|---|---|---|---|---|---|---|---|---|
| RNN Draft Head | 2026-06-28 | 2026-06-28 | concept |
|
|
RNN Draft Head
RNN 草稿头是 DSpark 的semi-autoregressive-generation的顺序块变体,通过门控循环单元累积完整的块内前缀历史,相较markov-draft-head能建模更长的 token 间依赖。
更新方程
在每个草稿步骤 $k$,拼接当前状态 $s_{k-1} \in \mathbb{R}^r$、前一 token 嵌入 $W_1[x_{k-1}] \in \mathbb{R}^r$、骨干隐藏 h_k \in \mathbb{R}^d 形成输入 $z_k = [s_{k-1}; W_1[x_{k-1}]; h_k] \in \mathbb{R}^{2r+d}$,然后应用门控更新:
s_k = \sigma(W_g z_k) \odot s_{k-1} + (1 - \sigma(W_g z_k)) \odot \tanh(W_c z_k)
B_k(x_{<k}, \cdot) = W_2^\top \tanh(W_o z_k)
其中 W_g, W_c, W_o \in \mathbb{R}^{(2r+d) \times r} 由单一线性投影联合参数化后拆分。初始状态 $s_0 = 0$。
与马尔可夫头的对比
| 特性 | 马尔可夫头 | RNN 头 |
|---|---|---|
| 依赖范围 | 仅 x_{k-1} |
完整 x_{<k} |
| 存储 | $O( | \mathcal{V} |
| 每步计算 | 嵌入查找 + 向量乘 | 门控更新 + 三投影 |
| 适用场景 | 大多数通用场景 | 需要更长前缀依赖的场景 |