修正: deepseek 笔记 96 处块级公式改为多行写法(适配 SilverBullet 行首锚点), 索引脚本同步 _abstract 命名
This commit is contained in:
@@ -55,23 +55,33 @@
|
||||
|
||||
**超参数缩放定律**:在 1e17 预算的小规模实验上网格搜索批大小与学习率,发现泛化误差在很宽区间内保持稳定;把误差超出最小值不超过 0.25% 的参数视为「近最优」,并借多步调度器复用第一阶段,在 1e17–2e19 训练多组模型拟合得到:
|
||||
|
||||
$$\eta_{\mathrm{opt}} = 0.3118 \cdot C^{-0.1250}, \qquad B_{\mathrm{opt}} = 0.2920 \cdot C^{0.3271}$$
|
||||
$$
|
||||
\eta_{\mathrm{opt}} = 0.3118 \cdot C^{-0.1250}, \qquad B_{\mathrm{opt}} = 0.2920 \cdot C^{0.3271}
|
||||
$$
|
||||
|
||||
即算力越大,最优批大小越大、学习率越小。作者坦承该式未考虑算力之外的因素,同等算力下不同配比的最优参数空间亦略有差异。
|
||||
|
||||
**新的模型规模表示**:$C=6ND$ 忽略了注意力算子的开销(完整参数版本还计入对容量贡献较小的词表计算),小模型上误差可达 50%。作者改用非嵌入 FLOPs/token $M$:
|
||||
|
||||
$$6N_1 = 72\,n_{layer}\,d_{model}^{2},\quad 6N_2 = 72\,n_{layer}\,d_{model}^{2}+6\,n_{vocab}\,d_{model}$$
|
||||
$$
|
||||
6N_1 = 72\,n_{layer}\,d_{model}^{2},\quad 6N_2 = 72\,n_{layer}\,d_{model}^{2}+6\,n_{vocab}\,d_{model}
|
||||
$$
|
||||
|
||||
$$M = 72\,n_{layer}\,d_{model}^{2}+12\,n_{layer}\,d_{model}\,l_{seq}, \qquad C = MD$$
|
||||
$$
|
||||
M = 72\,n_{layer}\,d_{model}^{2}+12\,n_{layer}\,d_{model}\,l_{seq}, \qquad C = MD
|
||||
$$
|
||||
|
||||
其中 $6N_1/M$ 在 0.43–0.92、$6N_2/M$ 在 0.81–1.32 之间,偏差具有系统性。优化目标形式化为:
|
||||
|
||||
$$M_{\mathrm{opt}}(C), D_{\mathrm{opt}}(C)=\underset{M,D\ \mathrm{s.t.}\ C=MD}{\mathrm{argmin}} L(N,D)$$
|
||||
$$
|
||||
M_{\mathrm{opt}}(C), D_{\mathrm{opt}}(C)=\underset{M,D\ \mathrm{s.t.}\ C=MD}{\mathrm{argmin}} L(N,D)
|
||||
$$
|
||||
|
||||
采用 Chinchilla 的 IsoFLOP profile,取 8 个算力预算(1e17–3e20)、每预算约 10 种配比,超参数由上式确定,泛化误差在含 100M token 的独立验证集上以 bits-per-byte 度量。拟合结果:
|
||||
|
||||
$$M_{\mathrm{opt}} = 0.1715 \cdot C^{0.5243}, \qquad D_{\mathrm{opt}} = 5.8316 \cdot C^{0.4757}$$
|
||||
$$
|
||||
M_{\mathrm{opt}} = 0.1715 \cdot C^{0.5243}, \qquad D_{\mathrm{opt}} = 5.8316 \cdot C^{0.4757}
|
||||
$$
|
||||
|
||||
即模型规模指数略大于数据规模指数,算力增长应更多投向模型;该曲线成功预测了 7B/67B 性能(小规模实验可预测 1000 倍算力的模型)。
|
||||
|
||||
|
||||
@@ -23,13 +23,19 @@
|
||||
|
||||
论文先给出 Transformer 语言模型中通用的 MoE 范式作为基线。标准 Transformer 语言模型由 $L$ 层 Transformer 块堆叠而成,第 $l$ 层的自注意力与 FFN 计算为:
|
||||
|
||||
$$\mathbf{u}_{1:T}^{l} = \operatorname{Self-Att}\left(\mathbf{h}_{1:T}^{l-1}\right) + \mathbf{h}_{1:T}^{l-1}, \qquad \mathbf{h}_{t}^{l} = \operatorname{FFN}\left(\mathbf{u}_{t}^{l}\right) + \mathbf{u}_{t}^{l}$$
|
||||
$$
|
||||
\mathbf{u}_{1:T}^{l} = \operatorname{Self-Att}\left(\mathbf{h}_{1:T}^{l-1}\right) + \mathbf{h}_{1:T}^{l-1}, \qquad \mathbf{h}_{t}^{l} = \operatorname{FFN}\left(\mathbf{u}_{t}^{l}\right) + \mathbf{u}_{t}^{l}
|
||||
$$
|
||||
|
||||
构造 MoE 语言模型的典型做法,是按一定间隔把 Transformer 中的 FFN 替换为 MoE 层:每个 MoE 层包含多个结构上与标准 FFN 完全相同的专家,每个 token 被分配给 1 个(Switch Transformer)或 2 个(GShard)专家。第 $l$ 个 FFN 被替换为 MoE 层后,输出隐藏状态为:
|
||||
|
||||
$$\mathbf{h}_{t}^{l} = \sum_{i=1}^{N}\left(g_{i,t}\operatorname{FFN}_{i}\left(\mathbf{u}_{t}^{l}\right)\right) + \mathbf{u}_{t}^{l}$$
|
||||
$$
|
||||
\mathbf{h}_{t}^{l} = \sum_{i=1}^{N}\left(g_{i,t}\operatorname{FFN}_{i}\left(\mathbf{u}_{t}^{l}\right)\right) + \mathbf{u}_{t}^{l}
|
||||
$$
|
||||
|
||||
$$g_{i,t} = \begin{cases} s_{i,t}, & s_{i,t}\in\operatorname{Topk}\left(\{s_{j,t}\mid 1\leqslant j\leqslant N\},K\right),\\ 0, & \text{otherwise},\end{cases} \qquad s_{i,t} = \operatorname{Softmax}_{i}\left({\mathbf{u}_{t}^{l}}^{T}\mathbf{e}_{i}^{l}\right)$$
|
||||
$$
|
||||
g_{i,t} = \begin{cases} s_{i,t}, & s_{i,t}\in\operatorname{Topk}\left(\{s_{j,t}\mid 1\leqslant j\leqslant N\},K\right),\\ 0, & \text{otherwise},\end{cases} \qquad s_{i,t} = \operatorname{Softmax}_{i}\left({\mathbf{u}_{t}^{l}}^{T}\mathbf{e}_{i}^{l}\right)
|
||||
$$
|
||||
|
||||
其中 $N$ 为专家总数,$\mathbf{e}_{i}^{l}$ 是第 $l$ 层第 $i$ 个专家的质心(centroid),$s_{i,t}$ 为 token 与专家的亲和度,$g_{i,t}$ 为门控值。$g_{i,t}$ 的稀疏性($N$ 个门控值中只有 $K$ 个非零)保证了 MoE 层的计算效率——每个 token 只在 $K$ 个专家中被计算。
|
||||
|
||||
@@ -39,7 +45,9 @@ $$g_{i,t} = \begin{cases} s_{i,t}, & s_{i,t}\in\operatorname{Topk}\left(\{s_{j,t
|
||||
|
||||
针对知识混杂,论文的做法是:在保持专家参数量与计算成本不变的前提下,把每个专家 FFN 的中间隐藏维度压缩到原来的 $1/m$,从而把一个专家切成 $m$ 个更小的专家;由于每个专家变小了,相应地把激活专家数也提高到 $m$ 倍,以维持相同的计算量。公式上只需把 top-$K$ 的求和范围从 $N$ 扩到 $mN$、把激活数从 $K$ 扩到 $mK$:
|
||||
|
||||
$$\mathbf{h}_{t}^{l} = \sum_{i=1}^{mN}\left(g_{i,t}\operatorname{FFN}_{i}\left(\mathbf{u}_{t}^{l}\right)\right) + \mathbf{u}_{t}^{l}, \qquad g_{i,t} = \begin{cases} s_{i,t}, & s_{i,t}\in\operatorname{Topk}\left(\{s_{j,t}\mid 1\leqslant j\leqslant mN\},mK\right),\\ 0, & \text{otherwise},\end{cases}$$
|
||||
$$
|
||||
\mathbf{h}_{t}^{l} = \sum_{i=1}^{mN}\left(g_{i,t}\operatorname{FFN}_{i}\left(\mathbf{u}_{t}^{l}\right)\right) + \mathbf{u}_{t}^{l}, \qquad g_{i,t} = \begin{cases} s_{i,t}, & s_{i,t}\in\operatorname{Topk}\left(\{s_{j,t}\mid 1\leqslant j\leqslant mN\},mK\right),\\ 0, & \text{otherwise},\end{cases}
|
||||
$$
|
||||
|
||||
其收益可以从组合数上直观理解:当 $N=16$ 时,典型 top-2 路由只有 $\binom{16}{2}=120$ 种激活组合;若把每个专家切成 4 个小专家,细粒度路由的可能组合数变成 $\binom{64}{8}=4{,}426{,}165{,}368$。组合灵活性的暴涨意味着模型能更精确、更有针对性地组装所需知识,而落在每个小专家上的知识类型更单一,专家因此能保持更高的专业化程度。
|
||||
|
||||
@@ -47,9 +55,13 @@ $$\mathbf{h}_{t}^{l} = \sum_{i=1}^{mN}\left(g_{i,t}\operatorname{FFN}_{i}\left(\
|
||||
|
||||
针对知识冗余,论文隔离出 $K_{s}$ 个专家作为**共享专家**:不管路由器怎么算,每个 token 都会被确定性地分配给这些共享专家,由它们专门捕捉并沉淀跨上下文通用的知识。为了保证计算量不变,路由专家中被激活的专家数相应减少 $K_{s}$ 个。完整的 DeepSeekMoE 层可写为:
|
||||
|
||||
$$\mathbf{h}_{t}^{l} = \sum_{i=1}^{K_{s}}\operatorname{FFN}_{i}\left(\mathbf{u}_{t}^{l}\right) + \sum_{i=K_{s}+1}^{mN}\left(g_{i,t}\operatorname{FFN}_{i}\left(\mathbf{u}_{t}^{l}\right)\right) + \mathbf{u}_{t}^{l}$$
|
||||
$$
|
||||
\mathbf{h}_{t}^{l} = \sum_{i=1}^{K_{s}}\operatorname{FFN}_{i}\left(\mathbf{u}_{t}^{l}\right) + \sum_{i=K_{s}+1}^{mN}\left(g_{i,t}\operatorname{FFN}_{i}\left(\mathbf{u}_{t}^{l}\right)\right) + \mathbf{u}_{t}^{l}
|
||||
$$
|
||||
|
||||
$$g_{i,t} = \begin{cases} s_{i,t}, & s_{i,t}\in\operatorname{Topk}\left(\{s_{j,t}\mid K_{s}+1\leqslant j\leqslant mN\},mK-K_{s}\right),\\ 0, & \text{otherwise},\end{cases} \qquad s_{i,t} = \operatorname{Softmax}_{i}\left({\mathbf{u}_{t}^{l}}^{T}\mathbf{e}_{i}^{l}\right)$$
|
||||
$$
|
||||
g_{i,t} = \begin{cases} s_{i,t}, & s_{i,t}\in\operatorname{Topk}\left(\{s_{j,t}\mid K_{s}+1\leqslant j\leqslant mN\},mK-K_{s}\right),\\ 0, & \text{otherwise},\end{cases} \qquad s_{i,t} = \operatorname{Softmax}_{i}\left({\mathbf{u}_{t}^{l}}^{T}\mathbf{e}_{i}^{l}\right)
|
||||
$$
|
||||
|
||||
于是在 DeepSeekMoE 中:共享专家数为 $K_{s}$,路由专家总数为 $mN-K_{s}$,非零门控数为 $mK-K_{s}$。作者说明,共享专家隔离的原型可追溯到 Rajbhandari et al. (2022),关键区别在于后者是从工程视角出发,而本文是从算法视角出发,把它作为提升专家专精的手段。
|
||||
|
||||
@@ -59,11 +71,15 @@ $$g_{i,t} = \begin{cases} s_{i,t}, & s_{i,t}\in\operatorname{Topk}\left(\{s_{j,t
|
||||
|
||||
**专家级均衡损失**用于缓解路由崩塌,定义如下($N'=mN-K_{s}$,$K'=mK-K_{s}$,$\mathbb{1}(\cdot)$ 为指示函数,$\alpha_{1}$ 为专家级均衡因子):
|
||||
|
||||
$$\mathcal{L}_{\mathrm{ExpBal}} = \alpha_{1}\sum_{i=1}^{N'} f_{i}P_{i}, \quad f_{i} = \frac{N'}{K'T}\sum_{t=1}^{T}\mathbb{1}(\text{Token } t \text{ selects Expert } i), \quad P_{i} = \frac{1}{T}\sum_{t=1}^{T}s_{i,t}$$
|
||||
$$
|
||||
\mathcal{L}_{\mathrm{ExpBal}} = \alpha_{1}\sum_{i=1}^{N'} f_{i}P_{i}, \quad f_{i} = \frac{N'}{K'T}\sum_{t=1}^{T}\mathbb{1}(\text{Token } t \text{ selects Expert } i), \quad P_{i} = \frac{1}{T}\sum_{t=1}^{T}s_{i,t}
|
||||
$$
|
||||
|
||||
**设备级均衡损失**则针对跨设备计算均衡。作者强调:过度强制专家级均衡会损害模型性能,因此不必在专家层面做严格约束,真正要保证的是设备之间计算量均衡。把全部路由专家划分为 $D$ 组 $\{\mathcal{E}_{1},\dots,\mathcal{E}_{D}\}$ 并每组部署在一个设备上后:
|
||||
|
||||
$$\mathcal{L}_{\mathrm{DevBal}} = \alpha_{2}\sum_{i=1}^{D} f_{i}'P_{i}', \quad f_{i}' = \frac{1}{|\mathcal{E}_{i}|}\sum_{j\in\mathcal{E}_{i}} f_{j}, \quad P_{i}' = \sum_{j\in\mathcal{E}_{i}} P_{j}$$
|
||||
$$
|
||||
\mathcal{L}_{\mathrm{DevBal}} = \alpha_{2}\sum_{i=1}^{D} f_{i}'P_{i}', \quad f_{i}' = \frac{1}{|\mathcal{E}_{i}|}\sum_{j\in\mathcal{E}_{i}} f_{j}, \quad P_{i}' = \sum_{j\in\mathcal{E}_{i}} P_{j}
|
||||
$$
|
||||
|
||||
实践中的取舍是:专家级均衡因子设得较小(防止路由崩塌即可),设备级均衡因子设得较大(促进设备间计算均衡)。
|
||||
|
||||
|
||||
@@ -26,15 +26,23 @@ DeepSeek-V3 仍在 Transformer 框架内,沿用 DeepSeek-V2 的 MLA + DeepSeek
|
||||
|
||||
**MLA 的核心是对键值(KV)做低秩联合压缩**,以削减推理时的 KV 缓存:
|
||||
|
||||
$$\mathbf{c}_t^{KV} = W^{DKV}\mathbf{h}_t,\qquad [\mathbf{k}_{t,1}^C;\dots;\mathbf{k}_{t,n_h}^C]=\mathbf{k}_t^C = W^{UK}\mathbf{c}_t^{KV}$$
|
||||
$$\mathbf{k}_t^R = \operatorname{RoPE}(W^{KR}\mathbf{h}_t),\qquad \mathbf{k}_{t,i}=[\mathbf{k}_{t,i}^C;\mathbf{k}_t^R],\qquad \mathbf{v}_t^C = W^{UV}\mathbf{c}_t^{KV}$$
|
||||
$$\mathbf{o}_{t,i}=\sum_{j=1}^{t}\operatorname{Softmax}_j\!\left(\frac{\mathbf{q}_{t,i}^{T}\mathbf{k}_{j,i}}{\sqrt{d_h+d_h^{R}}}\right)\mathbf{v}_{j,i}^{C},\qquad \mathbf{u}_t=W^{O}[\mathbf{o}_{t,1};\dots;\mathbf{o}_{t,n_h}]$$
|
||||
$$
|
||||
\mathbf{c}_t^{KV} = W^{DKV}\mathbf{h}_t,\qquad [\mathbf{k}_{t,1}^C;\dots;\mathbf{k}_{t,n_h}^C]=\mathbf{k}_t^C = W^{UK}\mathbf{c}_t^{KV}
|
||||
$$
|
||||
$$
|
||||
\mathbf{k}_t^R = \operatorname{RoPE}(W^{KR}\mathbf{h}_t),\qquad \mathbf{k}_{t,i}=[\mathbf{k}_{t,i}^C;\mathbf{k}_t^R],\qquad \mathbf{v}_t^C = W^{UV}\mathbf{c}_t^{KV}
|
||||
$$
|
||||
$$
|
||||
\mathbf{o}_{t,i}=\sum_{j=1}^{t}\operatorname{Softmax}_j\!\left(\frac{\mathbf{q}_{t,i}^{T}\mathbf{k}_{j,i}}{\sqrt{d_h+d_h^{R}}}\right)\mathbf{v}_{j,i}^{C},\qquad \mathbf{u}_t=W^{O}[\mathbf{o}_{t,1};\dots;\mathbf{o}_{t,n_h}]
|
||||
$$
|
||||
|
||||
其中 $\mathbf{c}_t^{KV}\in\mathbb{R}^{d_c}$($d_c\ll d_h n_h$)为 KV 压缩潜在向量,$W^{KR}$ 产生携带 RoPE 的解耦键。**推理时只需缓存 $\mathbf{c}_t^{KV}$ 与 $\mathbf{k}_t^R$**,KV 缓存大幅缩小而性能与标准多头注意力相当;查询侧同样低秩压缩。
|
||||
|
||||
**DeepSeekMoE 相比 GShard 用更细粒度专家并隔离出共享专家**:
|
||||
|
||||
$$\mathbf{h}_t'=\mathbf{u}_t+\sum_{i=1}^{N_s}\operatorname{FFN}_i^{(s)}(\mathbf{u}_t)+\sum_{i=1}^{N_r}g_{i,t}\operatorname{FFN}_i^{(r)}(\mathbf{u}_t),\qquad s_{i,t}=\operatorname{Sigmoid}(\mathbf{u}_t^{T}\mathbf{e}_i)$$
|
||||
$$
|
||||
\mathbf{h}_t'=\mathbf{u}_t+\sum_{i=1}^{N_s}\operatorname{FFN}_i^{(s)}(\mathbf{u}_t)+\sum_{i=1}^{N_r}g_{i,t}\operatorname{FFN}_i^{(r)}(\mathbf{u}_t),\qquad s_{i,t}=\operatorname{Sigmoid}(\mathbf{u}_t^{T}\mathbf{e}_i)
|
||||
$$
|
||||
|
||||
与 V2 不同:**V3 用 sigmoid 计算亲和度,并对选中的亲和度归一化得到门控值**。
|
||||
|
||||
@@ -42,7 +50,9 @@ $$\mathbf{h}_t'=\mathbf{u}_t+\sum_{i=1}^{N_s}\operatorname{FFN}_i^{(s)}(\mathbf{
|
||||
|
||||
负载不均会导致路由崩溃并削弱专家并行的效率,而辅助损失过大又损害性能。V3 把均衡信号从损失挪进路由:为每个专家引入偏置 $b_i$,用它参与 top-$K$ 路由决策,
|
||||
|
||||
$$g'_{i,t}=\begin{cases}s_{i,t}, & s_{i,t}+b_i\in\operatorname{Topk}(\{s_{j,t}+b_j\},K_r)\\ 0, & \text{otherwise}\end{cases}$$
|
||||
$$
|
||||
g'_{i,t}=\begin{cases}s_{i,t}, & s_{i,t}+b_i\in\operatorname{Topk}(\{s_{j,t}+b_j\},K_r)\\ 0, & \text{otherwise}\end{cases}
|
||||
$$
|
||||
|
||||
**偏置只参与路由、不参与门控**。训练中每步监控批内负载:过载减 $\gamma$、欠载加 $\gamma$(前 14.3T token 取 0.001);另用极小的序列级互补辅助损失($\mathcal{L}_{\mathrm{Bal}}=\alpha\sum_i f_iP_i$,$\alpha=0.0001$)防单序列内极端失衡,并用节点受限路由限制每 token 至多发往 $M=4$ 个节点。均衡良好,故**训练与推理均不丢弃 token**。
|
||||
|
||||
@@ -50,7 +60,9 @@ $$g'_{i,t}=\begin{cases}s_{i,t}, & s_{i,t}+b_i\in\operatorname{Topk}(\{s_{j,t}+b
|
||||
|
||||
与 Gloeckle 等人并行预测 $D$ 个额外 token 不同,V3 **顺序预测并保持完整因果链**。第 $k$ 个 MTP 模块含共享嵌入层、共享输出头、Transformer 块与投影矩阵 $M_k\in\mathbb{R}^{d\times 2d}$:
|
||||
|
||||
$$\mathbf{h}_i'^{k}=M_k[\operatorname{RMSNorm}(\mathbf{h}_i^{k-1});\operatorname{RMSNorm}(\operatorname{Emb}(t_{i+k}))],\qquad \mathbf{h}_{1:T-k}^{k}=\operatorname{TRM}_k(\mathbf{h}_{1:T-k}'^{k}),\qquad P_{i+k+1}^{k}=\operatorname{OutHead}(\mathbf{h}_i^{k})$$
|
||||
$$
|
||||
\mathbf{h}_i'^{k}=M_k[\operatorname{RMSNorm}(\mathbf{h}_i^{k-1});\operatorname{RMSNorm}(\operatorname{Emb}(t_{i+k}))],\qquad \mathbf{h}_{1:T-k}^{k}=\operatorname{TRM}_k(\mathbf{h}_{1:T-k}'^{k}),\qquad P_{i+k+1}^{k}=\operatorname{OutHead}(\mathbf{h}_i^{k})
|
||||
$$
|
||||
|
||||
训练目标是各深度交叉熵损失的加权平均 $\mathcal{L}_{\text{MTP}}=\frac{\lambda}{D}\sum_{k=1}^{D}\mathcal{L}_{\text{MTP}}^{k}$。**推理时 MTP 模块可整体丢弃**,也可复用为投机解码。
|
||||
|
||||
|
||||
@@ -23,11 +23,15 @@
|
||||
|
||||
论文把开闭源模型差距归因于三点:朴素注意力令长序列低效、后训练算力不足、智能体泛化与指令遵循落后;DSA 针对第一点,由闪电索引器(lightning indexer)与细粒度 token 选择组成。索引器为查询与前序 token 打分:
|
||||
|
||||
$$I_{t,s}=\sum_{j=1}^{H^{I}}w_{t,j}^{I}\cdot\text{ReLU}\left(\mathbf{q}^{I}_{t,j}\cdot\mathbf{k}^{I}_{s}\right)$$
|
||||
$$
|
||||
I_{t,s}=\sum_{j=1}^{H^{I}}w_{t,j}^{I}\cdot\text{ReLU}\left(\mathbf{q}^{I}_{t,j}\cdot\mathbf{k}^{I}_{s}\right)
|
||||
$$
|
||||
|
||||
选 ReLU 纯为吞吐考虑;索引器头数少且可用 FP8,故效率很高。之后只对 top-$k$ 分数对应的键值条目做注意力:
|
||||
|
||||
$$\mathbf{u}_{t}=\text{Attn}\left(\mathbf{h}_t,\left\{\mathbf{c}_s \mid I_{t,s}\in\text{Top-k}\left(I_{t,:}\right)\right\}\right)$$
|
||||
$$
|
||||
\mathbf{u}_{t}=\text{Attn}\left(\mathbf{h}_t,\left\{\mathbf{c}_s \mid I_{t,s}\in\text{Top-k}\left(I_{t,:}\right)\right\}\right)
|
||||
$$
|
||||
|
||||
为便于从 V3.1-Terminus 继续训练,DSA 实例化在 MLA 的 MQA 模式上,使每个潜向量被同一查询 token 的所有查询头共享——这是内核层面的硬约束:各头独立选 top-$k$ 反而低效。
|
||||
|
||||
@@ -35,11 +39,15 @@ $$\mathbf{u}_{t}=\text{Attn}\left(\mathbf{h}_t,\left\{\mathbf{c}_s \mid I_{t,s}\
|
||||
|
||||
起点是上下文已扩至 128K 的 V3.1-Terminus 基座,两阶段数据分布与之对齐。稠密预热保持稠密注意力、冻结除索引器外全部参数,把主注意力分数沿头求和后沿序列 L1 归一化得目标分布 $p_{t,:}$,以 KL 散度训练索引器:
|
||||
|
||||
$$\mathcal{L}^{I}=\sum_{t}\mathbb{D}_{\mathrm{KL}}\left(p_{t,:}\,\middle\|\,\text{Softmax}\left(I_{t,:}\right)\right)$$
|
||||
$$
|
||||
\mathcal{L}^{I}=\sum_{t}\mathbb{D}_{\mathrm{KL}}\left(p_{t,:}\,\middle\|\,\text{Softmax}\left(I_{t,:}\right)\right)
|
||||
$$
|
||||
|
||||
学习率 $10^{-3}$,1000 步 × 16 条 128K 序列,共 2.1B tokens。稀疏训练引入选择机制并优化全部参数以适应稀疏模式,索引器只在被选集合 $\mathcal{S}_t$ 上对齐:
|
||||
|
||||
$$\mathcal{L}^{I}=\sum_{t}\mathbb{D}_{\mathrm{KL}}\left(p_{t,\mathcal{S}_t}\,\middle\|\,\text{Softmax}\left(I_{t,\mathcal{S}_t}\right)\right)$$
|
||||
$$
|
||||
\mathcal{L}^{I}=\sum_{t}\mathbb{D}_{\mathrm{KL}}\left(p_{t,\mathcal{S}_t}\,\middle\|\,\text{Softmax}\left(I_{t,\mathcal{S}_t}\right)\right)
|
||||
$$
|
||||
|
||||
关键设计是把索引器输入从计算图 detach,索引器只由 $\mathcal{L}^I$ 训练、主模型只按语言建模损失优化,二者解耦。此阶段学习率 $7.3\times10^{-6}$,每查询选 2048 个键值 token,15000 步 × 480 条 128K 序列,共 943.7B tokens。
|
||||
|
||||
|
||||
@@ -28,11 +28,15 @@
|
||||
|
||||
标准超连接(HC)把残差流宽度扩大 $n_{\text{hc}}$ 倍,引入输入映射 $A_l$、残差变换 $B_l$、输出映射 $C_l$:
|
||||
|
||||
$$X_{l+1}=B_lX_l+C_l\mathcal{F}_l(A_lX_l)$$
|
||||
$$
|
||||
X_{l+1}=B_lX_l+C_l\mathcal{F}_l(A_lX_l)
|
||||
$$
|
||||
|
||||
它把残差宽度与隐藏维度解耦,提供开销很小的额外扩展轴($n_{\text{hc}}\ll d$),但多层堆叠时训练频繁数值不稳定。mHC 的核心是把 $B_l$ 约束到双随机矩阵(Birkhoff 多面体)流形:
|
||||
|
||||
$$B_l\in\mathcal{M}\coloneq\{M\in\mathbb{R}^{n\times n}\mid M\mathbf{1}_n=\mathbf{1}_n,\ \mathbf{1}_n^{T}M=\mathbf{1}_n^{T},\ M\geqslant 0\}$$
|
||||
$$
|
||||
B_l\in\mathcal{M}\coloneq\{M\in\mathbb{R}^{n\times n}\mid M\mathbf{1}_n=\mathbf{1}_n,\ \mathbf{1}_n^{T}M=\mathbf{1}_n^{T},\ M\geqslant 0\}
|
||||
$$
|
||||
|
||||
该约束保证 $\|B_l\|_2\le 1$、残差变换非扩张,且 $\mathcal{M}$ 对乘法封闭,故深层堆叠仍稳定;$A_l$、$C_l$ 另用 Sigmoid 约束为非负有界以避免信号抵消。三个映射的参数动态生成(输入相关项 + 静态偏置 + 小初始化门控因子),投影到流形用 Sinkhorn-Knopp 迭代(先 $\exp$ 保证正性,再反复行列归一化,$t_{\max}=20$)。
|
||||
|
||||
@@ -61,7 +65,9 @@ Muon 用于绝大多数模块,embedding、预测头、mHC 的静态偏置与
|
||||
|
||||
后训练沿用 V3.2 流水线,但用同策略蒸馏(OPD)取代混合 RL:先按领域独立训练专家(SFT + GRPO),难验证的任务放弃标量奖励模型,改为在 rubric 引导下用生成式奖励模型(GRM)评价轨迹并把 RL 施加于 GRM 自身;随后用十余个教师模型做多教师 OPD 合并进单一学生:
|
||||
|
||||
$$\mathcal{L}_{\text{OPD}}(\theta)=\sum_{i=1}^{N}w_i\cdot \mathrm{D}_{\text{KL}}\!\left(\pi_\theta\parallel\pi_{E_i}\right)$$
|
||||
$$
|
||||
\mathcal{L}_{\text{OPD}}(\theta)=\sum_{i=1}^{N}w_i\cdot \mathrm{D}_{\text{KL}}\!\left(\pi_\theta\parallel\pi_{E_i}\right)
|
||||
$$
|
||||
|
||||
与以往把全词表 KL 简化为逐 token 估计不同,此处保留完整 logit 分布以降低梯度方差。基础设施还包括作用于 MoE 专家权重与 CSA 索引器 QK 路径的 FP4 量化感知训练(top-k 选择器加速 2×,保留 99.7% KV 召回)。
|
||||
|
||||
|
||||
@@ -32,7 +32,9 @@
|
||||
|
||||
CED 针对智能体频繁工具调用造成的预填充瓶颈(受 YOCO 启发):底部 $L/2$ 层作因果编码器,解码器($l>L/2$)的 KV 条目与压缩权重改由编码器末层隐状态 $H_{L/2}$ 逐层投影得到,
|
||||
|
||||
$$C_l=H_{L/2}W_l^{KV},\qquad Z_l=H_{L/2}W_l^{Z}$$
|
||||
$$
|
||||
C_l=H_{L/2}W_l^{KV},\qquad Z_l=H_{L/2}W_l^{Z}
|
||||
$$
|
||||
|
||||
故预填充只需算前一半层。SWA 仍逐层计算以保持局部表示深度,代价是解码器 SWA KV 需额外处理 $n_{\mathrm{win}}\times L/2$ 个 token——这引出解码器有界重放;与 CSA2 结合时,解码器 Full 模式层直接由 $H_{L/2}$ 计算全局 KV。
|
||||
|
||||
@@ -48,7 +50,9 @@ $$C_l=H_{L/2}W_l^{KV},\qquad Z_l=H_{L/2}W_l^{Z}$$
|
||||
|
||||
**Single-Pass m HC**:m HC 在相邻块间维持 $n$ 条残差流;V4 的三内核实现因数据依赖串行,激活访存达 $(4n+4)d$,而理想下界为 $(2n+2)d$。Single-Pass 把输入混合系数后移一个块,
|
||||
|
||||
$$X_{l+1}=B_lX_l+C_l\mathcal{F}_l(A_{l-1}X_l)$$
|
||||
$$
|
||||
X_{l+1}=B_lX_l+C_l\mathcal{F}_l(A_{l-1}X_l)
|
||||
$$
|
||||
|
||||
使输入混合不再依赖由 $X_l$ 算出的系数,分块可立即同时用于输入混合与系数预测,达到 $(2n+2)d$ 的理想访存而实测损失可忽略;部署侧融合内核 Mega-m HC 把激活访存减半。**Engram**:沿用 tokenizer 压缩、多头哈希与门控集成,去掉短因果卷积,196B 参数均分两模块($N$-gram 阶 $\{2,3,4\}$、8 哈希头、FP8),置于第 1、14 层,推理时经 RDMA 从主机内存预取。**DSpark**:3 个窗口 128 的块一次前向并行产出 5 个草稿位置 logits,Markov 头建模草稿间依赖、置信头估计前缀存活概率以选取验证长度;它预训练后单独训练,后训练同训但梯度不回传主干。
|
||||
|
||||
@@ -68,7 +72,9 @@ V4 已对 indexer 的 Q/K 使用 FP4 的 QAT;V4.1 把 QAT 扩展到主 KV,
|
||||
|
||||
后训练仍是 SFT → RL → OPD 且无算法改动,收益来自数据与环境:任务形式化为(问题、环境、验证系统)三元组;环境侧,通用智能体由伙伴回传的交互数据构建模拟工具,编码智能体取自内部编码会话与达星标公开仓库。RL 在算力与 scaffold 两维扩展;异步 rollout 与训练共置、按样本级派发维持并发;末段为多域全词表 OPD,用 40 多个可与学生异构的教师。可控推理力度方面,系统提示前插入 `Reasoning Effort: {effort}`($b\in\{1,\dots,100\}$),同 $(x,b)$ 子组内做奖励均值中心化,长度惩罚
|
||||
|
||||
$$r_{b,j}^{\mathrm{len}}=-\min\left\{C_{\max},\;k(b)\frac{\ell_{b,j}}{L_{\mathrm{norm}}}\right\},\qquad k(b)=k_{0}\exp\left(-\frac{b-b_{\min}}{\tau}\right)$$
|
||||
$$
|
||||
r_{b,j}^{\mathrm{len}}=-\min\left\{C_{\max},\;k(b)\frac{\ell_{b,j}}{L_{\mathrm{norm}}}\right\},\qquad k(b)=k_{0}\exp\left(-\frac{b-b_{\min}}{\tau}\right)
|
||||
$$
|
||||
|
||||
随请求力度指数衰减;公开 API 映射为 max=100、high=75、low=50 三档。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user