AI前沿

商汤开源 SenseNova-Loop-9B:32 层跑出 56 次解码,9B 参数够到 27B 的活

存 9B,算 14.6B:这道算术题才是重点

10 月 30 日,商汤把 SenseNova-Loop-9B-Preview 的权重放上了 Hugging Face,代码在 GitHub 的 OpenSenseNova 组织下,Apache 2.0 许可。它不是又一个靠参数堆出来的模型,而是一次架构上的取巧:32 个不同的解码层,在推理时跑出 56 次解码层计算。

拆开看很清楚。输入先过第 0 到 3 层;中间的第 4 到 27 层构成一个共享权重的循环块,连续跑两遍,第二遍的输入就是第一遍的输出,写成 B(B(h));最后再过第 28 到 31 层和输出头。显存里只需要装 32 套层权重,但每个 Token 走的是 56 层深度的计算路径。

官方规格表里有一行容易被跳过:总参数约 9B,但推理参数约 14.6B。这不是笔误。循环块被复用时,激活值、KV 缓存和中间态的占用按执行深度算,所以算力账单按 14.6B 出,显存账单才按 9B 出。它省的是装得下,不是跑得快。

mHC 与混合注意力:让循环不发散

把同一批权重连跑两遍,最大的风险是信号漂移和梯度失稳。商汤的解法是双流流形约束超连接,英文缩写 mHC:循环段里带两条残差流,每一层怎么从流里读、怎么混合流的信息、怎么把输出并回残差态,都由可学习映射决定,混合矩阵再用 Sinkhorn 归一化做约束,官方配置写的是 20 次迭代。约束的作用是让残差范数在第一遍和第二遍之间不至于失控。

注意力层也是刻意设计的:每四层一组,三层线性注意力加一层全注意力。循环边界正好对齐完整的四层组,所以两遍走的注意力模式一致,不会在接缝处错位。隐藏维 4096、前馈 12288、词表 248320、全注意力 16 头而 KV 头只有 4 个——这组数字指向长上下文与多模态输入,训练上下文最长 262144 Token。

据 IT之家报道,加 mHC 之后的消融结果里,GPQA Diamond 提高 4.42 分,TeamBench 提高 13.34 分。后者涨幅远大于前者,说明这套机制的收益主要落在多步骤 Agent 任务上,而不是单轮问答。

当更大不再是唯一答案,参数效率就成了开源模型最能打的一张牌。

跑起来之前,先记四个坑

官方给的推理环境是 Transformers 5.18.0 加 PyTorch 2.11.0 与 CUDA 13.0,加载时把 trust_remote_code 打开,模型实现跟着仓库走而不是 transformers 主干。

四个容易踩的点。第一,trust_remote_code=True 是必须的,sensenova_loop 这个架构不在主干里。第二,权重精度不统一:主干是 BF16,mHC 的路由参数是 FP32,自己做量化时要单独保护这一组。第三,循环区间、遍数、mHC 路由参数都属于 checkpoint 的执行配置,换成自己的推理实现必须原样复现执行顺序,否则结果会错而且不报错,这是最危险的一类失败。第四,MTP 投机解码已经可用,Dspark 和 Dflash2 还在训练,别急着按官方速度跑基准。

服务化三条路官方都给了:LightLLM 有现成镜像,四卡 tp=4 直接起;SGLang 需要拉 PR 47281 的分支自己编译;微调走 torchtitan 的 fork,单节点 8 卡跑 mhc2_loop2_titan.sh 就能起一轮。

真正值得自己验证的是长上下文和工具调用这类真实负载。榜单上它在 WorkBuddy Bench、RaccoonPPT Bench、AutomationBench 上超过了 Qwen3.5-27B,但榜单是榜单,参数共享架构在最难的场景里会不会露怯,得用自己的数据问一遍。站住了,本地部署的成本结构就被改写:显存按 9B 算,能力按 27B 看。