aHapBean/xHC
GitHub: aHapBean/xHC
xHC 是一种通过稀疏残差流更新和时间特征增强来扩展 Transformer 残差连接宽度的模型架构方法,以更低的计算成本实现更优的训练损失和下游性能。
Stars: 38 | Forks: 0
xHC 将残差状态扩展为 N=16 个流,读取所有流,并稀疏地仅更新 k=4 个活跃流。
## 概述 Hyper-Connections (HC) 将 Transformer 的残差流扩展为 $N$ 个并行流,引入了一个与模型宽度和深度互补的内存扩展轴。Manifold-Constrained Hyper-Connections (mHC) 在大规模下稳定了这种公式化,但现有的 HC 系列方法通常止步于 $N=4$。 我们展示了直接将 mHC 扩展到超过 $N=4$ 会遇到两个瓶颈: - **信息供应:** 一个写回向量必须向越来越多的流提供新信息,使得增加的流逐渐变得冗余。 - **残差映射成本:** 从 $NC$ 维状态生成密集的 $N\times N$ 映射,其复杂度呈 $O(N^3C)$ 增长。
将 mHC 从 N=4 扩展到 N=16,在成本迅速增加的同时带来的收益却在递减;xHC 改变了这种权衡。
**xHC (Expanded Hyper-Connections)** 是第一个在 $N=4$ 之后实现实质性扩展的 HC 系列方法。它的主要配置使用 $N=16$ 个残差流,并在每个子层仅更新 $k=4$ 个流。 ## 方法 xHC 结合了两个互补的设计: 1. **时间特征增强** 通过对相邻 token 进行因果深度卷积,利用产生的多尺度局部特征丰富了 MLP 的写回。随着残差流数量的增加,这提供了更多样化的信息基础。 2. **稀疏残差流更新** 在保留对所有 $N$ 个流的密集读取访问的同时,仅通过 $k$ 个活跃流来路由残差混合和写回。主要的残差映射生成成本从 $O(N^3C)$ 降低到了 $O(k^3C)$。 为了实际部署,**xHC-Flash** 在连续的子层之间共享全状态操作,并通过轻量级的校正来重构后续子层的输入。它在保留几乎全部完整 xHC 性能增益的同时,大幅减少了内存流量。 ## 结果 ### 18B 规模下的广泛增益![]() |
![]() |
![]() |
| Training loss | Average downstream score | Benchmark-level gains |
在整个训练计算过程中,xHC 的损失曲线始终低于 mHC 和普通残差基线。
- 在 18B MoE 模型上,xHC 达到的最终训练损失为 **1.758**,而 mHC 为 **1.776**,普通基线为 **1.799**。 - 为了达到与 xHC 相同的损失,普通基线和 mHC 基线分别需要 **$1.50\times$** 和 **$1.19\times$** 的训练计算量。 - 在 xHC 中将 $N$ 从 4 增加到 16,仅增加 **4%** 的训练 FLOPs 即可将损失改善 **0.012**。同样的扩展在 mHC 中仅将损失改善了 **0.006**,却增加了 **32%** 的训练 FLOPs。 - xHC 在 Muon 下依然有效,表明其增益并非 AdamW 特有。 ### 内存效率 预计的每 token 内存流量,按每个 Transformer 子层进行摊销。这里,$C$ 表示隐藏维度,验证损失是在 10B 消融设置下测量的。 | 方法 | 每个子层的 I/O | 验证损失 | |:--|--:|--:| | mHC ($N=4$) | $34C$ | 2.004 | | xHC | $73.5C$ | **1.983** | | xHC-Flash | $51C$ | **1.983** | | xHC-Flash-4sub | $40C$ | 1.984 | **xHC-Flash-4sub 在接近 $N=4$ 时 mHC 内存流量的同时,保留了明显的性能优势。** ### 实际运行时间 我们的实现使用了融合的前向和反向 kernel,以减少中间 tensor 的具体化以及 kernel 启动开销。 - 在 18B MoE 模型上,我们融合的 mHC 实现比普通基线增加了约 **15%** 的训练开销,而 xHC-Flash-4sub 在 mHC 的基础上又增加了约 **11%**。在这些测量中禁用了流水线通信重叠,以隔离残差流操作的计算开销。 - 对于 2K token 的推理预填充,mHC 和 xHC-Flash-4sub 分别比普通基线增加了 **11.4%** 和 **12.9%** 的开销。xHC-Flash-4sub 的总预填充延迟仅比 mHC 高 **1.3%**。默认 xHC 配置
| 设置 | 值 | |:--|:--| | 扩展流 | $N=16$ | | 活跃流 | $k=4$ | | 固定 / 路由的活跃流 | 2 / 2 | | 时间增强 | 仅限 MLP 侧 | | 因果卷积核 | $\{4,8,12\}$ | | 残差混合 | 在活跃流上进行 Sinkhorn 归一化 |标签:DLL 劫持, Transformer, Vectored Exception Handling, 人工智能, 凭据扫描, 大语言模型, 深度学习算法, 用户模式Hook绕过, 神经网络架构, 逆向工具


