SenseNova-Loop-9B-Previewlooped transformermHC hyper-connections

How Does SenseNova-Loop-9B-Preview's Looped Transformer Work?

SenseNova-Loop-9B-Preview reuses 24 layers twice with two-stream mHC and 3:1 hybrid attention: ~9B stored parameters, ~14.6B at inference, 256K context.

Portrait of Luis Chavez-Mattos
Edited by Luis Chavez-Mattos, Director, Product··RSS
Diagram-like illustration of a 24-layer transformer stack with a two-strand path looping through it twice, alongside a smaller stored-weights stack and a long context strip.

How does SenseNova-Loop-9B-Preview's looped architecture work?

SenseNova-Loop-9B-Preview is a 32-layer multimodal decoder in which one contiguous block of 24 layers (layers 4 to 27) runs twice with shared weights. That gives 56 decoder-layer executions per forward pass while storing only 32 layers of weights. Two residual streams, managed by manifold-constrained hyper-connections (mHC), carry information through the looped section. Attention alternates three linear layers with one full-attention layer. The card lists roughly 9B total parameters and about 14.6B inference parameters.

TL;DR

  • The model reuses 24 of its 32 layers twice, so a forward pass executes 56 layers from 32 sets of stored weights.
  • The card lists ~9B total parameters but ~14.6B inference parameters, which is the practical cost of looping: more compute per token without more stored weights.
  • Two-stream mHC replaces a single residual path inside the loop, and Sinkhorn normalization (20 iterations in the documented config) constrains how the streams mix.
  • Hybrid attention uses three linear-attention layers followed by one full-attention layer, and the loop boundaries line up with those four-layer groups.
  • Training recipes go up to 262,144 tokens and cover text, images, code, and tool trajectories, aimed at long-context and agentic work.
  • This is a preview: the technical report is listed as TBD, and the model needs trust_remote_code=True plus a compatible inference implementation.

What does "looped" mean in a transformer?

A standard decoder passes the hidden state through each layer once, and every layer has its own weights. A looped transformer feeds the output of a block of layers back into the same block. Depth goes up, but the parameter count does not.

SenseNova-Loop-9B-Preview does this with a single block. Layers 0 to 3 run first. Then the block of layers 4 to 27, call it B, runs on the hidden state h, and runs again on its own output, so the computation is B(B(h)). Layers 28 to 31 and the output head finish the job.

The arithmetic is simple:

SegmentLayersExecutions
Prelude0 to 34
Looped block (two passes)4 to 27 (24 layers)48
Coda28 to 314
Total32 distinct56

The second pass takes the first pass's output as input, and both passes use the same weights.

Why is it ~9B stored but ~14.6B at inference?

The card gives both numbers: roughly 9B total parameters and roughly 14.6B inference parameters. The gap comes from the repeated block. Its weights are stored once but used twice, so the compute per token looks like a larger model than the checkpoint on disk.

This matters when you plan hardware. Weight memory tracks the stored size. Per-token compute tracks the 56 executions. The card says practical speedups and costs depend on workload, hardware, and serving configuration, and it does not publish latency or throughput figures. Treat any claim about efficiency as unmeasured until the technical report or independent tests arrive.

What is two-stream mHC and why does the loop need it?

Hyper-connections generalize the residual connection. Instead of one residual path, the model keeps several parallel streams and learns how layers read from them, write to them, and mix them. Making the mixing "manifold-constrained" keeps those learned maps in a well-behaved family so the signal stays stable through deep or repeated computation.

Here is what the card documents for this model:

  • mHC runs inside the looped section and carries two residual streams around the decoder-layer computations.
  • Learned mappings govern how a layer reads from the streams, how stream information is mixed, and how the layer output is added back into the residual state.
  • Sinkhorn normalization constrains the stream-mixing map. The documented configuration uses 20 iterations.

Sinkhorn normalization alternately rescales rows and columns of a positive matrix until it is close to doubly stochastic. A doubly stochastic mixing matrix redistributes signal between streams without amplifying or shrinking it overall. That plausibly helps when the same block is applied twice, since a badly scaled map would compound across passes. The card does not give the authors' reasoning or ablations, so read this as the general purpose of the technique, not a documented result for this model.

One practical consequence: the loop range, pass count, and mHC routing parameters are part of the checkpoint's execution configuration. An inference engine must load them and reproduce the same execution order. A stock decoder implementation will not run this model correctly.

How does the 3:1 hybrid attention fit in?

The decoder interleaves linear attention and full attention in a repeating four-layer pattern: three linear-attention layers, then one full-attention layer. Linear attention avoids the quadratic cost of full attention over long sequences. The periodic full-attention layers keep global token-to-token lookup available.

The design detail that makes this work with looping is alignment. The loop covers 24 layers, which is exactly six four-layer groups, and it starts at layer 4, a group boundary. Each pass therefore sees the same attention pattern. Across all 56 executions, that works out to 14 groups of four: 42 linear-attention executions and 14 full-attention executions (my arithmetic from the stated pattern, not a figure from the card).

Full-attention layers use 16 heads with 4 KV heads, a grouped-query setup that shrinks the KV cache compared with full multi-head attention.

What are the core specs?

PropertyValue
Input / outputText and images in, text out
Distinct decoder layers32
Looped range / passes[4, 28) / 2
Layer executions per forward pass56
Hidden dimension4,096
Feed-forward dimension12,288
Vocabulary size248,320
mHC streams / Sinkhorn iterations2 / 20
Training contextUp to 262,144 tokens
Export precisionBF16 backbone, FP32 mHC routing parameters
LicenseApache 2.0

The FP32 routing parameters are worth noting. The mixing maps stay in higher precision while the backbone runs in BF16.

What is it built for, and how do you run it?

The card positions the model for long-context and agentic workflows: document understanding, coding, and interaction with external tools. Its benchmark chart compares it against other models on BIRD-Dev, WorkBuddy Bench, AIDABench, TeamBench, Terminal Bench 2.1, T³-Banking, AutomationBench, and RaccoonPPTBench. The card presents those results as an image, so this article does not quote scores.

Documented ways to run it:

  • Transformers: the checked environment is Transformers 5.18.0 with PyTorch 2.11.0 and CUDA 13.0, loading with trust_remote_code=True. Thinking mode toggles through enable_thinking in the chat template.
  • LightLLM: a Docker-based server, shown with four-way tensor parallelism and an OpenAI-style chat endpoint.
  • SGLang: requires a build containing the SenseNova Loop implementation from a specific pull request, not a stock release.
  • Fine-tuning: an 8-GPU single-node recipe using a torchtitan fork, covering SFT, with DPO and MTP training described in the linked guide.

For faster decoding, MTP (multi-token prediction) is available. Dspark and Dflash2 draft-model methods are listed as training in progress.

Is it ready for production use?

Not yet, by the project's own labeling. The name says Preview, the technical report is TBD, and the Transformers implementation's publication details are still to be announced. SGLang support depends on an unmerged pull request as of the card. The card also recommends the documented deployment environment and configuration for best performance, which suggests behavior may vary elsewhere.

Open questions a builder would want answered: how much of the extra compute translates into quality versus a conventional 9B or 14B model, how the KV cache behaves across two passes, and what real throughput looks like. The card does not answer these.

Frequently Asked Questions

5 questions

How many parameters does SenseNova-Loop-9B-Preview have?

The card lists about 9B total parameters and about 14.6B inference parameters. The difference exists because 24 layers are stored once but executed twice. Weight memory follows the stored count, while per-token compute follows the larger effective depth.

Which layers are repeated?

Layers 4 through 27, written as [4, 28) in the card, run twice with shared weights. Layers 0 to 3 run before the loop and layers 28 to 31 run after it. That makes 56 layer executions from 32 distinct layers.

What does the 3:1 attention ratio mean?

Every group of four layers has three linear-attention layers and one full-attention layer. Linear attention keeps long-sequence cost down, and the full-attention layer preserves global attention. The loop boundaries align with complete four-layer groups, so both passes share the same pattern.

Can I use it commercially?

The model is released under Apache 2.0, a permissive license that generally allows commercial use. Check the license file in the repository for exact terms before relying on this.

Does it support images?

Yes. It accepts text and images as input and generates text. It does not generate images.

How we source, write, and correct our articles. Editorial standards

Related articles

Straight to your inbox.
New pieces as they publish. No noise.