计算和延迟:圈数是串行的
固定每圈工作量时,循环块的计算量随圈数增加;输入层、输出层等固定成本要另算。同一个位置后一圈依赖前一圈,不能直接同时计算。调度器可以穿插独立请求,提高利用率,但不会消除这个数据依赖。端到端延迟还受 batch、访存和排队影响,不一定严格按圈数成倍增长。
KV cache 随圈数增长
权重共享,不代表各圈的 K/V 相同:投影收到的隐藏状态(hidden state)已经变了。若要保留完整的逐圈历史,缓存需要区分(圈,层)。以 24 层、4 圈、每个 K/V 宽度 2048、BF16 为例:
$$\text{bytes/token}=2\times24\times4\times2048\times2=786{,}432$$
这里前一个 2 表示 K 和 V,后一个 2 是每元素字节数。结果为 768 KiB,即约 0.786 MB;单条 4096-token 序列就是 3 GiB。这个账不包含模型权重、临时 activation、allocator 和服务预留,用 GQA 时要换成实际的 KV 宽度。
如果模型还有只执行一次的 prelude / coda 层,它们的 KV 不随圈数重复。以 Huginn 的 2+4+2 结构为例,在各层 KV 宽度相同、保留完整逐圈缓存时,$R$ 圈需要 $2+4R+2$ 份层级 KV;4 圈相对 1 圈是 $20/8=2.5$ 倍,不是 4 倍。这是存储量推算,不是延迟或准确率测量。
能不能各圈共享 KV
可以研究,但共享通常改变原来的计算,而不是等价的存储压缩。看报告时,要区分 checkpoint、prefill 是否共享、decode 共享规则和输出长度:
- Ouro报告了一些 decode-only 共享设置下较小的质量变化;这里减少的是相应 decode KV,不是整张卡的所有显存。
- Continuous Depth Batching(v2,2026-09-25)表 4:GSM8K-CoT 的 greedy decoding / flexible-match 准确率,Ouro 1.4B(4 圈)的完整缓存 / 单槽共享 / 首圈独立、后续共享分别为 78.09% / 0.23% / 72.40%;Huginn 3.5B(16 圈)为 30.93% / 32.52% / 32.83%。两者评测协议不同,所以这组数字不能直接否定 Ouro 报告的小幅变化。该文吞吐实验回放(replay)预先记录的长度与退出决策,也要与独立的质量评估分开看。
- MELT(v3,2026-09-28)附录 B、表 6 中,严重退化的是 Ouro-1.4B-Thinking 上的免训练共享基线(baseline),不是 MELT 方法本身;MELT 的主方法另加缓存机制和后训练(post-training),再评估质量。不同生成长度和格式可能放大缓存误差。
- Mixture-of-Recursions比较按圈稀疏存储与跨圈共享,效果依路由方案而变;不能忽略跳过 token 后还剩哪些 keys 可用。
- Huginn研究过循环槽位复用,但实验表现不等于数学等价,更不能推出其他模型也适用。
最小验证可以先固定 prompt 和解码,比较 full-cache 与共享版的 logits,再看短答案、长推理和峰值内存。检查差异是否超出预期的浮点舍入误差,再讨论近似方案的质量与收益;少量样例的输出一致也不能证明两种缓存等价。
训练更难
更深的反传链可能带来梯度和显存问题,但不必然不稳定。完整反传中,共享权重会接收各次使用的梯度;截断反传省下激活,却改变梯度。Input injection 提供持续访问输入的路径,也不是普适的稳定性保证。
别把知识容量实验当成定理
Ouro 论文 §6.1(v5;v6 未变)的约 2 bit/parameter 来自 1M–40M 参数的 GPT-2 风格模型和合成人物传记训练,不是对发布的 1.4B / 2.6B checkpoint 的容量测量,更不是所有神经网络的统一上限。循环不新增权重,但训练质量、编码方式、外部记忆和输入信息都会影响能答出多少知识。应把参数存储、从上下文取用事实、对事实继续推理分开评估。
什么时候值得
- 权重存储受限,且能接受额外计算;仍需确认 KV 没有成为新瓶颈。
- 在目标任务上,多圈比少圈确有收益,并且没有明显伤害其他任务。
- 能用同一预算比较 dense、looped、CoT 或检索(retrieval)方案,而不是只按参数大小挑模型。
本页术语 5
- 隐藏状态 hidden state
- 递归模型在时间步之间传递的压缩表示
- 回放 replay
- 用固定输入重新执行一段数据或模型链路,检查结果是否一致
- 基线 baseline
- 用来比较新方法的参考方法或配置
- 后训练 post-training
- 预训练之后为特定任务和行为做的所有训练
- 检索 retrieval
- 从外部语料里找出相关内容