In this categoryLocal AI · 70
More guides
Local AIIntermediate

SenseNova-Loop-9B-Preview: A Looped Multimodal Model for Long-Context Work, and How to Run It

SenseNova-Loop-9B-Preview is a 9.66 billion parameter multimodal model that accepts text and images and generates text. Its unusual design runs 32 distinct decoder layers through 56 layer-executions per forward pass by looping a shared block of weights twice, giving it deeper computation without a proportional increase in stored parameters.

8 minIntermediate

SenseNova-Loop-9B-Preview is a 9.66 billion parameter multimodal model released by SenseNova on October 28, 2026 under Apache 2.0. It takes text and images as input and produces text, and it is built for long-context tasks and agentic workflows. The architecture loops a shared block of 24 decoder layers twice per forward pass, producing 56 layer-executions per inference step from 32 distinct sets of weights.

Written by Priya Raghunathan, local-AI hardware reviewer. I verify parameter counts, licenses, hardware requirements, and every install command against the primary source before recommending a setup path.

A new top-20 entrant on Hugging Face's image-text-to-text list

SenseNova-Loop-9B-Preview entered the top 20 of Hugging Face's image-text-to-text trending list shortly after its October 28, 2026 release. At time of writing the model page shows 94 likes and 566 downloads, and the GitHub repository has 31 stars. The most-linked Space built on it is a VRAM and GPU cost calculator (16 likes), useful for estimating what hardware you actually need before you download 19 GB of weights.

Specs at a glance

FieldValue
PublisherSenseNova (OpenSenseNova)
PipelineImage-text-to-text (multimodal)
Total parameters9.66B (per HF API safetensors metadata)
Inference parameters~14.6B (looped execution inflates effective depth)
Distinct decoder layers32
Layer executions per forward pass56
Training context lengthUp to 262,144 tokens
LanguagesEnglish, Chinese
LicenseApache 2.0
Release dateOctober 28, 2026

How the looped architecture works

The model splits its 32 decoder layers into three sections. Layers 0 to 3 run once as a preamble. Layers 4 to 27, a block of 24 layers, run twice in sequence with shared weights. Layers 28 to 31 and the output head finish the pass. The second loop through the shared block takes the first loop's output as its input, so the model performs B(B(h)) where B is the repeated block and h is the state entering it.

This gives the model an execution depth equivalent to a 56-layer decoder while only storing 32 sets of layer weights. The design trades additional compute per token for a smaller parameter footprint, a useful property if you want more reasoning depth without proportionally larger model files.

Alongside the looped block, the model uses two-stream manifold-constrained hyper-connections (mHC) to route information between two parallel residual streams inside the looped section, and a hybrid attention pattern that alternates three linear-attention layers with one full-attention layer in every four-layer group.

24 decoder layers are applied twice in sequence, producing 56 decoder-layer executions from 32 distinct layers.

SenseNova-Loop-9B-Preview model card, Model specifications

Install and run with Transformers

No published VRAM minimum
The model card does not state a minimum GPU memory figure. With 9.66B stored parameters in BF16, you are looking at roughly 19 GB of weight data before any KV cache or activation overhead. A 24 GB GPU (RTX 3090, RTX 4090, A5000) is a reasonable starting point. The model card specifies PyTorch 2.11.0 with CUDA 13.0 and Transformers 5.18.0; other versions may work but are not tested by the authors.
bash - install dependencies
$python -m pip install "transformers==5.18.0" accelerate safetensors
$
run_sensenova_loop.py
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

model_id = "sensenova/SenseNova-Loop-9B-Preview"
device = "cuda:0"

tokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
    model_id,
    trust_remote_code=True,
    dtype=torch.bfloat16,
    device_map={"": device},
).eval()

messages = [{"role": "user", "content": "What is 13 times 7? Reply with the number only."}]
prompt = tokenizer.apply_chat_template(
    messages,
    tokenize=False,
    add_generation_prompt=True,
    enable_thinking=False,
)
inputs = tokenizer(prompt, return_tensors="pt").to(device)

with torch.inference_mode():
    outputs = model.generate(
        **inputs,
        max_new_tokens=256,
        do_sample=False,
        use_cache=True,
    )

response = tokenizer.decode(
    outputs[0, inputs.input_ids.shape[1]:],
    skip_special_tokens=True,
)
print(response)

The script above is the minimal path from the model card. trust_remote_code=True is required because the model uses a custom architecture (sensenova_loop) that isn't in the Transformers core at time of writing, so Transformers loads the model code from the downloaded repository files rather than from its own library. do_sample=False and enable_thinking=False give you greedy, deterministic output with no reasoning preamble; drop enable_thinking=False if you want the model's thinking mode instead.

Multi-GPU deployment with LightLLM

The model card documents a 4-GPU deployment path using LightLLM via Docker. This is the path to use if you are serving the model to multiple users or need throughput rather than just a one-off test.

bash - LightLLM 4-GPU deployment
$docker pull ghcr.io/modeltc/lightllm:main
$docker run --rm --gpus all --ipc=host -p 8000:8000 \ -v /path/to/SenseNova-Loop-9B-Preview:/model \ -e LOADWORKER=4 -e LIGHTLLM_TRITON_AUTOTUNE_LEVEL=1 \ ghcr.io/modeltc/lightllm:main \ python -m lightllm.server.api_server \ --model_dir /model --model_name SenseNova-Loop-9B-Preview \ --tp 4 --host 0.0.0.0 --port 8000
$

SGLang deployment

SGLang support for SenseNova-Loop-9B-Preview requires a custom branch from an open pull request. The commands below follow the model card exactly.

bash - SGLang with custom branch
$git clone https://github.com/sgl-project/sglang.git
$cd sglang
$git fetch origin pull/47281/head
$git checkout -b sensenova-loop FETCH_HEAD
$python -m pip install -e ./python
$sglang serve --model-path /path/to/SenseNova-Loop-9B-Preview
$
SGLang branch may change
The pull request number (47281) is the one documented in the model card at time of writing. Once the PR merges, the main SGLang branch will work without the checkout step. Check the GitHub repository for the current status before building.

What it is built for

The model card frames SenseNova-Loop-9B-Preview around three application areas: document understanding, coding, and interaction with external tools inside agentic workflows. The 262,144-token training context makes it practical for tasks that involve long documents or multi-step tool call sequences rather than just short chat turns.

The multimodal input (text plus images) means you can pass in screenshots, diagrams, or scanned pages alongside text instructions. The model generates text only, so image output is not part of this architecture.

Benchmarks reported in the model card cover BIRD-Dev, WorkBuddy Bench, AIDABench, TeamBench, Terminal Bench 2.1, T-Banking, AutomationBench, and RaccoonPPTBench, with results shown as a figure rather than a published table. Specific per-benchmark numbers are not listed in the README at time of writing.

License and use

SenseNova-Loop-9B-Preview ships under Apache 2.0, which allows commercial use, modification, and redistribution without a separate agreement. The technical report is listed as forthcoming (TBD) in the model card, so architecture details beyond what the README and config files contain are not yet published.

FAQ

What is SenseNova-Loop-9B-Preview?

A 9.66 billion parameter multimodal model from SenseNova that takes text and images as input and generates text. It uses a looped decoder that runs 32 distinct layers through 56 executions per forward pass, giving it an effective depth closer to a 56-layer model while storing far fewer weights.

How much VRAM does it need?

The model card does not specify a minimum. The BF16 weights alone are roughly 19 GB, so a 24 GB GPU is a practical starting point for single-card inference. The 4-GPU LightLLM deployment splits the load across four cards using tensor parallelism.

Does it support Chinese?

Yes. The model card lists English and Chinese as supported languages, and the README ships with a full Chinese translation.

What makes the looped architecture different?

Most transformer models run each layer once. SenseNova-Loop-9B-Preview runs layers 4 to 27 twice per forward pass with shared weights, so the model does more computation per token than a flat 9B model without storing a larger set of parameters. The tradeoff is slower inference per token compared to a shallower model of similar size.

Is it free for commercial use?

Yes. Apache 2.0 permits commercial use, modification, and redistribution without additional permission.

Where to go from here

Local models run better with more VRAM. CompareRTX GPUs on Amazonbefore you upgrade.(affiliate link. We may earn a commission at no extra cost. Disclosure)

Watch related tutorials

Free weekly email

Weekly local AI drops

New models, what runs on your hardware, and the guides to set them up. One email a week, unsubscribe any time.

Tags
#sensenova loop 9b#sensenova loop preview#run sensenova locally#looped transformer model#multimodal long context model#local ai image text to text