/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */
#content_views .toc,
/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */
#content_views.markdown_views > p:empty:has(+ .toc),
#content_views.markdown_views > .toc + p:empty,
/* 富文本旧版目录标记 */
#content_views.htmledit_views #main-toc,
#content_views.htmledit_views #hr-toc,
#content_views.htmledit_views p[id*=\”-toc\”] {
display: none !important;
}
/* 目录去掉后,紧跟的首个标题不再多出一块上边距 */
#content_views.markdown_views > .toc + h1,
#content_views.markdown_views > .toc + h2,
#content_views.markdown_views > .toc + h3,
#content_views.markdown_views > .toc + h4,
#content_views.markdown_views > .toc + p:empty + h1,
#content_views.markdown_views > .toc + p:empty + h2,
#content_views.markdown_views > .toc + p:empty + h3,
#content_views.markdown_views > .toc + p:empty + h4 {
margin-top: 0 !important;
}
结论:同预算(15000 步 × 184M tokens、95-105M 参数)下,v3.5 在全部 7 个上下文长度上超过同预算现代 Transformer 基线(RoPE + RMSNorm + SwiGLU + FlashAttention),总体 PPL 领先 10.7%,2048 长度区领先 58.5%,同时保持 O(S) 训练复杂度与 O(1) 推理状态。
1. 架构概要
v3.5 的每层注意力由三条 O(1) 状态通道混合构成,全部基于每层专属的低秩状态嵌入 state_em(23004×64) @ state_proj(64→768)(c 流,一次查表三处复用):
| 快 max-scan | e_j = max(γ_j·e_{j-1}, c_j),γ = exp(−softplus(c·v+b)) | query 无关(新鲜峰值跟踪) | 半衰期 ~4 tok | 局部信号、整体质量 |
| 慢 max-scan | 同上,γ ∈ [0.995, 0.9995](层 6-11) | query 无关(长时保持) | 半衰期 ~245 tok | 远程信息保持、长度外推 |
| KV 检索 | S_j = a_j·S_{j-1} + β·k̂_j⊗c_j,读出 r_j = q_j·S_j | query 相关(k̂ L2 归一化) | a≈0.98 可学习 | 归纳头/精确键值召回 |
三通道输出在 gen_model 多项式融合(Triton kernel):head(cat[a,b,c,d,e])·e + a·b + α₁·b + α₂·d + a·(α₃·e+d) + b·(c+e) + c·e + kv_gate·r。
配套现代化:pre-norm RMSNorm ×2、SiLU-GLU FFN、final RMSNorm、max_seq_len=2048、分层多尺度 γ 初始化(v3.3)。
2. 演进链与消融数据(全部同预算 A/B,seed/数据顺序对齐)
| v3.0 pure cummax | 无衰减 | 84.53 | — |
| v3.1 decay-max | 衰减扫描 + Triton 训练/推理 kernel | 59.07 | −30.1% |
| v3.2 现代化 | pre-norm RMSNorm + SiLU + γ 慢尾 + 输入相关衰减 + pos 2048 | 46.90 | −20.6% |
| v3.3 分层慢通道 | 层 6-11 慢 γ(245 tok 半衰期存活) | 46.80 | 持平(长程 +) |
| v3.4 +KV 通道 | query 相关检索(sum 写入) | 41.17 | −12.0% |
| v3.5 归一化键 | k̂ L2 归一化 + per-head 写入门 | 40.27 | −2.2% |
3. 主实验一:2500 步小数据(11.5M tokens)对决
v3.5 37.05 vs tf 37.03 —— 总体追平(±0.05%)。长度扩展上 v3.5 从 512 起反超(512: 37.01 vs 39.32)。
4. 主实验二:15000 步大数据(488M tokens 数据集、184M 训练 tokens)——最终裁决
| 64 | 18.56 | 19.47 | +4.7% |
| 128 | 17.03 | 18.05 | +5.7% |
| 256 | 16.36 | 17.69 | +7.5% |
| 384 | 16.01 | 17.93 | +10.7% |
| 512 | 15.92 | 19.01 | +16.3% |
| 1024 | 15.71 | 25.55 | +38.5% |
| 2048 | 15.64 | 37.68 | +58.5% |
- 七个长度全部领先;v3.5 曲线随长度持续下降(42.2→15.6),tf 从 512 起崩溃(无位置外推适配)
- 训练轨迹呈教科书式交叉:早期 tf 略领先,step ~8000 起交叉,之后 v3.5 持续拉开且终点未饱和
- 远程复制(重复 span 探针):绝对 CE 全程更低(3.13~4.12 vs 3.32~5.11);gain 口径 gap=128 反超(+0.74 vs +0.58),gap=32 tf 保留优势(+1.28 vs +0.89)
- 上下文利用曲线:全桶领先,tf 尾桶恶化(3.01)而 v3.5 保持(2.79)
5. 长程能力探针套件(bench_longrange.py)
6. 工程实现要点
- 训练 297 ms/step(bf16 autocast,bs=32×S=384;KV Triton 前向 0.42 ms/层 + torch 重算反向 4.3 ms/层)
- O(1) 双状态增量推理:state 元组携带 (max-scan e 向量, KV 矩阵 S);fp32 下逐 token 解码 vs 全序列前向 diff = 3.7e-06
- 显存:训练峰值 12.4 GiB(bs=32),DecayScanFn 系数反向重算省 1.8 GB
- 稳定性发现(重要):本环境 Triton 对"循环携带累加寄存器 + 循环出口 store"存在 codegen 非确定性(miscompilation 嫌疑);循环内逐步 store 模式完全稳定——所有 kernel 遵循该模式设计,多形状 × 多次发射零漂移验证
- 数值安全:max-scan 无除法;KV 分块权重 C[j,i] = exp(l_j − l_i) 因果掩码后 ≤ 1,无除法无下溢
7. 复现指南
# 同预算 A/B(架构可选 v30/v31/v32/v33/v34/v35/v35d/tf)
python train_ab.py –arch v35 –steps 3000 –out ab_v35_3k
# 大数据缩放
python train_ab.py –arch v35 –steps 15000 –warmup 500 \\
–data minimind_data/pretrain_cached_1270238_384.pt –out big_v35
# 长程四探针(编辑 MODEL_KEYS 选择对比模型)
python bench_longrange.py
# 正确性回归(58 项:max-scan 前向/反向、gen_model、fusedCE、KV scan)
python bench_v3_triton.py
# 增量推理等价性
python <见 test_incremental.py 模式> # fp32 全序列 vs 逐 token:3.7e-06
产物:longrange_results.json(四探针原始数据)、各 ab_*/big_*/train_log.json(训练曲线)。
8. 边界与后续方向
9. 后续任务执行结果(2026-11-05 更新)
| tf 位置插值公平性(PI ×4) | tf@2048 恢复 37.68→35.20,v3.5 仍领先 22.8%(15.64);优势对公平性补强稳健 |
| 增量 O(1) 推理兑现 | state 元组携带 (e, S);fp32 逐 token vs 全序列 diff 3.7e-06;demo_o1_decode.py 端到端演示(常数状态 894k 数值/12 层,生成质量连贯) |
| KV 瘦身消融(kv_dh 96→48) | v35s PPL 40.87 vs 完整版 41.34(3000 步)——参数 -3.5M、KV 状态/计算减半且质量略优;48 维键空间检索更锐利。v35s 成为新推荐配置 |
| delta-rule 写入 | naive 版性质验证 PASS(重复键精确覆盖);分块 GPU 版存在双向状态依赖(反向 gq_j = Σ_v λ_j·S_j 需 λ 反向递推与 S 正向重算同场)——精确形式需 Gated DeltaNet(arXiv 2412.06464)论文级 UT/WY 实现;已交付 naive 参考实现(性质验证 PASS)与 TBPTT 诚实评估(384 步 Python 循环 18s/step 不可训练)。大数据版 gap=128 检索已反超 tf,紧迫性下降 |
| KV scan 手工 Triton 反向 | 降级:重算反向(4.3 ms/层)已够快,手工推导收益 ~2 ms/层、风险高 |
v35s 增量发现
KV 通道 48 维键空间相对 96 维是质量-效率双优(更少参数、更锐检索、更小状态 36,864→18,432 数值/层)。架构叙述更新为:快/慢 max-scan + 48 维归一化 KV 检索。
https://github.com/dfytensor/OpenAshAnyWhere/tree/master
网硕互联帮助中心


评论前必须登录!
注册