## 信息密度分析摘要
| 密度等级 | 内容 | 标记 |
|:--------:|:-----|:----:|
| 🔴 **高密度** | Core 循环块的梯度下降类比、训练崩溃的三次迭代修复、800B token 训练的工程参数、隐空间轨道的 PCA 可视化 | 核心论证依赖 |
| 🟠 **中密度** | 对数正态-泊松深度分布、截断反向传播、路径独立性验证、零样本推理优化(自适应计算/KV共享/自投机解码) | 支撑性机制 |
| 🟡 **低密度** | Transformer 基础结构、RNN 历史背景、Scaling Laws 概述 | 上下文铺垫 |
> **信息密度(Information Density)**:单位篇幅内承载的可操作洞见数量。高密度内容直接改变读者判断;中密度提供因果支撑;低密度建立共同语境。
---
## 逻辑架构
```
[观测] 固定深度 Transformer 的推理成本与参数规模线性绑定
↓
[问题] 能否解耦「内存占用」与「计算深度」?
↓
[方法] 权重共享循环块 + 随机深度训练 + 截断反向传播
↓
[验证] 3.5B 参数模型等效 50B 计算量,800B token 稳定训练
↓
[涌现] 隐空间轨迹出现轨道、滑块、收敛等结构化模式
↓
[应用] 零样本自适应计算、KV Cache 共享、自投机解码
↓
[Limit] 训练稳定性敏感、规模边界未验证、与 CoT 的互补性待研究
↓
[So-What] 第三条 Scaling 轴(深度)已具备工程可行性
```
**逻辑锚点**:
- **Setup**:固定深度 Transformer 的推理成本与参数规模绑定,扩展测试时计算只能靠更长上下文
- **Turn**:权重共享循环块可以解耦「内存占用」与「计算深度」
- **Payoff**:3.5B 参数实现等效 50B 计算量,且涌现结构化隐空间行为
- **Limit**:训练稳定性对初始化极度敏感;70B+ 规模未验证;隐空间可解释性缺失
- **So-What**:循环深度应被视为与「参数规模」「训练数据」并列的第三条 Scaling 轴
---
## 一、架构层:Prelude-Core-Coda 的设计原理
Huginn 的宏观架构由三个功能模块组成:
| 模块 | 功能 | 参数量 | 是否可循环 |
|:----:|:-----|:------:|:----------:|
| **Prelude(前奏)** | 将输入 token 嵌入隐空间 | ~1B | ❌ |
| **Core(核心)** | 在隐空间中迭代计算 | ~1.2B | ✅ 可任意循环 |
| **Coda(尾声)** | 将隐状态解码为输出分布 | ~1B | ❌ |
> **嵌入层(Embedding Layer)**:将离散的词汇 ID 映射到连续向量空间的线性变换。Huginn 使用共享的 tied embeddings,Prelude 和 Coda 共用同一套嵌入矩阵,减少参数量。
这一设计基于一个经验观察:**标准 Transformer 的中间层是可互换的。**
Kaplan 等(2024)与 Skean 等(2024)的研究表明,固定深度 Transformer 的前几层主要负责将子词(sub-word)token 聚合成概念级表示,后几层负责将概念映射回词汇概率,而**中间层的功能高度同质化**——这解释了为什么模型压缩技术(如层裁剪、层置换)在去掉若干中间层后仍能保持大部分性能。
Huginn 将这个观察推向了极端:既然中间层可互换,为何不**让同一个中间层循环多次**?
Core 块的输入不是单纯的隐状态 $h_t$,而是**输入嵌入 $x$ 与隐状态的拼接**:
$$
h_{t+1} = \text{Core}([h_t; x])
$$
> **拼接操作 $[h_t; x]$**:将两个向量沿特征维度连接。这确保了原始输入信息在每次循环中都被重新注入,类似于梯度下降中数据 $x$ 始终在每次迭代中参与计算。如果只注入一次($h_{t+1} = \text{Core}(h_t)$),循环将无法稳定收敛到数据相关的解。
这种设计与**梯度下降**存在形式上的同构:
| 梯度下降 | Huginn Core 循环 |
|:--------:|:----------------:|
| 优化变量 $\theta$ | 隐状态 $h_t$ |
| 数据 $x$ | 输入嵌入 $x$(每次注入) |
| 目标函数 $f(\theta; x)$ | 隐空间中的「问题表示」 |
| 迭代规则 $\theta_{t+1} = \theta_t - \eta \nabla f$ | $h_{t+1} = \text{Core}([h_t; x])$ |
| 收敛到局部最优 | 隐状态收敛到固定点或轨道 |
> **同构(Isomorphism)**:两个系统在结构上保持映射关系,使得一方的操作可以对应到另一方。这里不声称 Huginn「就是」梯度下降,而是指出两者在「从初始状态出发,通过数据驱动的迭代 refinement 逼近某个目标」这一抽象层面上的结构相似性。
---
## 二、训练层:随机深度与截断反向传播的工程权衡
### 2.1 随机深度分布
为确保模型在任意循环深度下都能工作,训练时对每条样本随机采样迭代次数。Huginn 使用**对数正态-泊松分布**:
$$
u \sim \mathcal{N}(\log(\mu_{\text{target}}), \sigma^2)
$$
$$
T \sim \text{Poisson}(\exp(\nu))
$$
其中 $\mu_{\text{target}} = 4$,$\sigma^2 = 2$。
> **对数正态-泊松分布**:先从一个对数正态分布采样一个「速率参数」,再用这个参数驱动泊松分布采样离散迭代次数。其特点是:大多数样本的迭代次数较少(集中在 1-6 次),但存在重尾——偶尔会出现需要 20+ 次的样本。这让模型既学会快速收敛,又为深度推理保留了能力。
这种分布的合理性在于:它强制模型主要优化「少迭代也能工作」的能力,同时通过重尾事件保留「多迭代更好」的潜力。
### 2.2 截断反向传播
若对全部 $T$ 次迭代都进行反向传播,内存和计算成本将随 $T$ 线性增长。Huginn 的解决方案是**截断反向传播(Truncated Backpropagation)**:
$$
\frac{\partial \mathcal{L}}{\partial \theta} \approx \frac{\partial \mathcal{L}}{\partial h_T} \cdot \frac{\partial h_T}{\partial h_{T-3}} \cdot \frac{\partial h_{T-3}}{\partial \theta}
$$
> **截断反向传播**:只回传最后 $k$ 步(Huginn 取 $k=3$)的梯度,忽略更早步骤的贡献。这类似于 BPTT(Backpropagation Through Time)在 RNN 中的标准做法。虽然会丢失长程梯度信号,但论文证明在 800B token 规模上仍然有效——可能因为循环块的权重共享使得短程梯度已足够更新参数。
这意味着:即使某条样本采样了 $T=32$ 次迭代,反向传播时只计算最后 3 步的梯度。最大激活内存与 $T$ 无关,仅取决于固定的截断窗口大小。
### 2.3 训练稳定性的三次迭代
Huginn 的大规模训练并非一帆风顺。论文诚实地记录了三次训练尝试:
| 尝试 | 配置 | 结果 | 诊断 |
|:----:|:-----|:----:|:----:|
| **Bad Run 1** | 无 embedding scale,参数-free RMSNorm,无 adapter,学习率 $3\times10^{-4}$ | 训练快速停滞 | **表征崩溃**:token 维度相关性趋近 1.0,所有 token 被映射到相同隐状态 |
| **Bad Run 2** | 加入 embedding scale,改为 pre-norm,加入 learned adapter | 初期恢复,但测试时深度不提升 | **局部最优**:模型学会了忽略输入状态 $h_t$,循环块退化固定深度 |
| **Main Run** | 改用 sandwich norm($\text{Norm} \to \text{Layer} \to \text{Norm}$),降低学习率至 $10^{-4}$ | 训练稳定,800B token 无中断,测试时深度有效扩展 | 归一化结构和低学习率防止了状态坍塌 |
> **Sandwich Normalization**:一种「夹心」式归一化布局——在每一层前后都放置归一化层。这与标准的 Pre-Norm(归一化在残差连接之前)或 Post-Norm(归一化在残差连接之后)不同。论文证明,对于循环架构,这种双重归一化是防止状态坍缩的关键。
这一经验揭示了循环深度架构的一个**结构性脆弱点**:权重共享使得误差在多次迭代中被放大,因此对初始化、归一化和学习率的选择远比固定深度模型敏感。
---
## 三、缩放层:第三条轴的工程经济学
### 3.1 FLOPs / 参数比的优势
Huginn 的 3.5B 参数模型在训练时的 FLOPs 消耗接近 **32B 固定深度 Transformer**:
$$
\text{Training FLOPs} \approx 6 \times N_{\text{param}} \times D_{\text{tokens}} \times \mu_{\text{depth}}
$$
> **FLOPs(浮点运算次数)**:衡量计算量的指标。对于 Transformer,前向传播约需 $2 \times N_{\text{param}}$ 次运算,反向传播约需 $4 \times N_{\text{param}}$ 次,合计 $6 \times N_{\text{param}}$ 每 token。Huginn 的 Core 块被循环 μ=4 次,因此等效计算量为 $6 \times 3.5\text{B} \times 800\text{B} \times 4 \approx 67\text{E}$ FLOPs。
但在推理时,Huginn 的优势更加显著:
| 指标 | 固定深度 7B | Huginn 3.5B (μ=4) | Huginn 3.5B (μ=16) |
|:----:|:-----------:|:-----------------:|:------------------:|
| **内存占用** | 7B 参数 | 3.5B 参数 | 3.5B 参数 |
| **每次前向 FLOPs** | ~2×7B = 14B | ~2×3.5B×4 = 28B | ~2×3.5B×16 = 112B |
| **等效固定深度参数** | 7B | ~14B | ~50B |
| **KV Cache(每token)** | 与层数线性增长 | Core 共享,大幅减少 | Core 共享,大幅减少 |
> **KV Cache(键值缓存)**:自回归生成时缓存之前 token 的 Key 和 Value 向量,避免重复计算。固定深度 Transformer 的 KV Cache 大小与层数成正比;Huginn 的 Core 块权重共享,且支持 KV Cache 复用(见 Layer 5),显著降低内存占用。
### 3.2 通信成本的结构性降低
在大规模分布式训练中,**卡间通信**通常是瓶颈。固定深度 Transformer 的张量并行需要在每一层进行多次 all-reduce 操作;而 Huginn 由于参数总量小(3.5B),在 4096 GPU 上训练时**仅需数据并行**,不需要张量并行或流水线并行。
论文报告:在 4096 AMD MI250X GPU 上,Huginn 的 AFU(Achievable Flop Utilization)达到 **41-51%**。作为对比,大多数大规模 Transformer 训练在数千 GPU 上的 AFU 通常低于 40%,因为通信开销吃掉了大量时间。
> **AFU(Achievable Flop Utilization)**:实际达到的浮点运算效率占硬件理论峰值的比例。MI250X 的理论峰值约为 192 TFLOP/s(bf16),Huginn 在 4096 GPU 上达到 52-64 TFLOP/s,即 41-51% 的利用率。单节点(8 GPU)时可达 87%。
---
## 四、涌现层:隐空间中的结构化计算
Huginn 最引人注目的发现是**隐空间轨迹的结构化行为**。研究者对 128 次循环迭代的隐状态进行 PCA 降维,观察到三种模式:
| 模式 | 几何特征 | 典型 token | 可能的功能 |
|:----:|:--------:|:----------:|:----------:|
| 🌀 **轨道(Orbit)** | 在 PCA 平面中画出闭合或准闭合曲线 | 数字(如 "3") | 周期性计算,类似数值迭代 |
| 📏 **滑块(Slider)** | 沿单一方向持续漂移 | 语义关键动词(如 "wrong") | 计数或累积判断 |
| 🎯 **收敛(Convergence)** | 快速逼近固定点 | 功能词、标点 | 无需深度计算的简单决策 |
> **PCA(主成分分析)**:将高维隐状态向量投影到方差最大的低维子空间,使得原本不可见的轨迹可视化。论文使用了前 6 个主成分,展示了多组二维投影平面。
这些模式的涌现是**自组织的**——它们不是通过训练目标显式诱导的,而是从 next-token prediction 目标中自然生长出来的。这与固定深度 Transformer 中发现的「算术电路」类似,但 Huginn 的轨道模式是**动态的、迭代的、高维的**。
更重要的是**路径独立性(Path Independence)**:无论初始状态 $h_0$ 从哪个随机点开始,经过足够多次迭代后,轨迹都会收敛到相似的结构。这说明 Core 块学会了一个**稳定的动力学系统**,而不是对初始条件敏感的混沌映射。
> **路径独立**:动力系统的一个性质,指系统的长期行为不依赖于初始状态。Huginn 在数学上并未保证这一点(Core 块不是收缩映射),但经验上观察到不同初始化收敛到相似轨迹。这可能是因为训练目标(预测下一个 token)对隐状态施加了强约束,使得「有用的」状态空间被限制在一个吸引子附近。
---
## 五、推理层:零样本工程优化的系统性实现
Huginn 的循环架构**天生兼容**多种通常需要专门训练的推理优化技术:
### 5.1 零样本自适应计算
用 KL 散度作为收敛判据:
$$
D_{\text{KL}}(P_{t+1} || P_t) < \tau \quad \Rightarrow \quad \text{停止循环,采样输出}
$$
> **KL 散度判据**:比较相邻两次迭代的输出分布差异。当分布变化很小时,说明隐状态已收敛,进一步迭代的边际收益递减。论文取 $\tau$ 使得模型在简单任务上平均 4-5 步退出,复杂任务上 8-9 步退出。
### 5.2 KV Cache 循环复用
由于 Core 块权重共享,不同迭代的 K/V 投影矩阵相同。因此可以设定固定预算(如 16 步),用**环形缓冲区**覆盖旧缓存:
$$
\text{KV}_{\text{cache}}^{(i \mod B)} \leftarrow \text{KV}^{(i)}, \quad B = 16
$$
> **环形缓冲区(Ring Buffer)**:固定大小的数组,新数据覆盖最旧的数据。Huginn 用 16 步预算,第 17 步覆盖第 1 步的缓存。由于 K/V 投影矩阵相同,不同深度的缓存「兼容」,注意力层可以直接读取最近可用的缓存。
### 5.3 自投机解码
用较少迭代(如 2 步)快速起草下一个 token,再用较多迭代(如 8 步)验证。起草阶段计算的状态可直接复用于验证阶段,无需重新计算。
> **投机解码(Speculative Decoding)**:一种加速自回归生成的方法。传统做法需要一个小型「草稿模型」快速生成候选 token,再用大模型验证。Huginn 不需要草稿模型——同一个模型在不同迭代深度下自然形成「快思考」和「慢思考」两种模式。
---
## 六、Limit & So-What:边界与第三条轴的确立
### 6.1 关键局限
| 局限 | 描述 | 影响 |
|:----:|:-----|:----:|
| **训练稳定性** | 对初始化、归一化、学习率极度敏感;论文经历 3 次尝试才成功 | 大规模复现门槛高 |
| **规模边界** | 仅验证到 3.5B 参数;70B+ 规模的循环稳定性未知 | 工业级应用存疑 |
| **数据混合** | 训练数据偏重代码/数学,未充分验证通用语言能力 | 通用性受限 |
| **可解释性** | 隐空间轨迹虽可可视化,但无法直接「阅读」模型在想什么 | 对齐与安全挑战 |
| **与 CoT 的关系** | 未探索循环推理与显式 CoT 的互补或替代关系 | 应用策略未定 |
### 6.2 第三条 Scaling 轴的确立
传统 Scaling Laws 定义了两条轴:
$$
\text{Performance} \propto N_{\text{param}}^\alpha \cdot D_{\text{tokens}}^\beta
$$
Huginn 引入了第三条变量——**测试时循环深度 $T$**:
$$
\text{Performance} \propto f(N_{\text{param}}, D_{\text{tokens}}, T_{\text{depth}})
$$
> **第三条 Scaling 轴**:与「预训练时扩展参数/数据」不同,「测试时扩展深度」不需要重新训练模型,只需要在推理时增加循环次数。这是一种「部署时弹性」——同一套权重可以根据任务难度和预算动态调整计算量。
**结构性建议**:
| 场景 | 推荐策略 | 理由 |
|:----:|:--------:|:----:|
| 资源受限部署 | 循环深度架构 | 小参数、大计算、低通信 |
| 高吞吐服务 | 固定深度 + 投机解码 | 成熟、稳定、工程生态完善 |
| 复杂推理任务 | 循环深度 + 自适应退出 | 难题自动分配更多计算 |
| 可解释性关键场景 | 显式 CoT | 思考过程人类可读、可审计 |
> **互补性假设**:循环深度与显式 CoT 不是零和竞争,而是互补。Huginn 可以在隐空间中完成快速直觉判断,再生成简短的 CoT 进行验证;或者对需要严格可审计的任务,使用固定深度的长 CoT 模型。未来的最优系统可能是两者的混合架构。
---
## 📚 论文详细信息(已核实)
| 项目 | 内容 |
|:----:|:-----|
| **标题** | Scaling up Test-Time Compute with Latent Reasoning: A Recurrent Depth Approach |
| **作者** | Jonas Geiping, Sean McLeish, Neel Jain, John Kirchenbauer, Siddharth Singh, Brian R. Bartoldson, Bhavya Kailkhura, Abhinav Bhatele, Tom Goldstein |
| **机构** | University of Maryland(马里兰大学)等 |
| **arXiv ID** | [2502.05171](https://arxiv.org/abs/2502.05171) |
| **发表日期** | 2025年2月7日 (v1),2025年2月17日 (v2) |
| **模型名称** | Huginn |
| **模型/代码/数据** | https://huggingface.co/tomg-group-umd/huginn-0125 / https://github.com/seal-rg/recurrent-pretraining |
| **核心架构** | Prelude-Core-Coda 三段式 Transformer;Core 为权重共享循环块,输入拼接隐状态与原始嵌入 |
| **训练目标** | 对数正态-泊松随机深度采样(μ=4, σ²=2);截断反向传播(k=3);标准 next-token cross-entropy |
| **归一化策略** | Sandwich Norm(Norm→Layer→Norm);RMSNorm;embedding scale factor;learned adapter |
| **初始化策略** | Takase 方差缩放;truncated normal;out-projection 层以 $1/\sqrt{L_{\text{eff}}}$ 缩放($L_{\text{eff}}=132$) |
| **模型规模** | 3.5B 总参数(Core 1.2B,Prelude/Coda 各 ~1B,共享嵌入 0.1B);隐藏维度 2560;32 注意力头;MLP 内维度 6912 |
| **训练数据** | 800B tokens;代码+数学推理为主,少量通用文本;自定义 BPE tokenizer(支持 LaTeX、代码、收缩词);序列长度 4096 |
| **训练硬件** | Oak Ridge Frontier 超算,4096 AMD MI250X GPU,bf16,PyTorch 2.6 |
| **训练效率** | 单节点 87% AFU,4096 GPU 41-51% AFU;仅需数据并行+optimizer sharding+梯度检查点 |
| **关键结果** | GSM8k CoT 34.80% (μ=4) / 42.08% (μ=16);MBPP 24.80%;HumanEval 23.17%;ARC-E 69.91%;等效 50B 参数计算量 |
| **涌现行为** | 隐空间轨道(orbits)、滑块(sliders)、收敛模式;路径独立性验证 |
| **推理优化** | 零样本自适应计算(KL 收敛判据)、KV Cache 环形复用、连续思维链、自投机解码 |
---
*#智柴 #隐空间推理 #循环深度 #Huginn #ScalingLaws #智柴系统实验室🎙️*
登录后可参与表态
讨论回复
0 条回复还没有人回复,快来发表你的看法吧!
推荐
推荐
智谱 GLM-5 已上线
我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。
领取 2000万 Tokens
通过邀请链接注册即可获得大礼包,期待和你一起在 BigModel 上畅享卓越模型能力