Text Generation
MLX
Safetensors
sensenova_loop
sensenova
sensenova-loop
looped-transformer
mhc
qwen3_5
apple-silicon
conversational
4-bit precision
Instructions to use netprojects/SenseNova-Loop-9B-Preview-MLX-4bit with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- MLX
How to use netprojects/SenseNova-Loop-9B-Preview-MLX-4bit with MLX:
# Make sure mlx-lm is installed # pip install --upgrade mlx-lm # Generate text with mlx-lm from mlx_lm import load, generate model, tokenizer = load("netprojects/SenseNova-Loop-9B-Preview-MLX-4bit") prompt = "Write a story about Einstein" messages = [{"role": "user", "content": prompt}] prompt = tokenizer.apply_chat_template( messages, add_generation_prompt=True ) text = generate(model, tokenizer, prompt=prompt, verbose=True) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- LM Studio
- Pi
How to use netprojects/SenseNova-Loop-9B-Preview-MLX-4bit with Pi:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "netprojects/SenseNova-Loop-9B-Preview-MLX-4bit"
Configure the model in Pi
# Install Pi: npm install -g @earendil-works/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "mlx-lm": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "netprojects/SenseNova-Loop-9B-Preview-MLX-4bit" } ] } } }Run Pi
# Start Pi in your project directory: pi
- MLX LM
How to use netprojects/SenseNova-Loop-9B-Preview-MLX-4bit with MLX LM:
Generate or start a chat session
# Install MLX LM uv tool install mlx-lm # Interactive chat REPL mlx_lm.chat --model "netprojects/SenseNova-Loop-9B-Preview-MLX-4bit"
Run an OpenAI-compatible server
# Install MLX LM uv tool install mlx-lm # Start the server mlx_lm.server --model "netprojects/SenseNova-Loop-9B-Preview-MLX-4bit" # Calling the OpenAI-compatible server with curl curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "netprojects/SenseNova-Loop-9B-Preview-MLX-4bit", "messages": [ {"role": "user", "content": "Hello"} ] }' - Hermes Agent
How to use netprojects/SenseNova-Loop-9B-Preview-MLX-4bit with Hermes Agent:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "netprojects/SenseNova-Loop-9B-Preview-MLX-4bit"
Configure Hermes
# Install Hermes: curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash hermes setup # Point Hermes at the local server: hermes config set model.provider custom hermes config set model.base_url http://127.0.0.1:8080/v1 hermes config set model.default netprojects/SenseNova-Loop-9B-Preview-MLX-4bit
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use netprojects/SenseNova-Loop-9B-Preview-MLX-4bit with OpenClaw:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "netprojects/SenseNova-Loop-9B-Preview-MLX-4bit"
Configure OpenClaw
# Install OpenClaw: npm install -g openclaw@latest # Register the local server and set it as the default model: openclaw onboard --non-interactive --mode local \ --auth-choice custom-api-key \ --custom-base-url http://127.0.0.1:8080/v1 \ --custom-model-id "netprojects/SenseNova-Loop-9B-Preview-MLX-4bit" \ --custom-provider-id mlx-lm \ --custom-compatibility openai \ --custom-text-input \ --accept-risk \ --skip-health
Run OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"
|
Download README.md from netprojects/SenseNova-Loop-9B-Preview-MLX-4bit: direct link, hf CLI and curl.
- Browser
- Download file 4.59 kB
-
https://huggingface.co/netprojects/SenseNova-Loop-9B-Preview-MLX-4bit/resolve/main/README.md
- Command line
-
hf download hf://netprojects/SenseNova-Loop-9B-Preview-MLX-4bit/README.md
-
curl -L -o README.md https://huggingface.co/netprojects/SenseNova-Loop-9B-Preview-MLX-4bit/resolve/main/README.md
4.59 kB
| license: apache-2.0 | |
| base_model: sensenova/SenseNova-Loop-9B-Preview | |
| base_model_relation: quantized | |
| library_name: mlx | |
| pipeline_tag: text-generation | |
| tags: [mlx, sensenova, sensenova-loop, looped-transformer, mhc, qwen3_5, apple-silicon] | |
| # SenseNova-Loop-9B-Preview — MLX 4-bit | |
| A 4-bit MLX conversion (affine, group size 64) of [sensenova/SenseNova-Loop-9B-Preview](https://huggingface.co/sensenova/SenseNova-Loop-9B-Preview) (revision `9937e91`, released 30 October 2026) for Apple Silicon. 5.1 GB of weights. Text model; image input is not part of this build yet. The smallest build. It follows the reference less closely than 8-bit and 6-bit (89% same top token); pick 6-bit or 8-bit when quality matters most. | |
| Published by [NetProjects](https://netprojects.com) (Internet Projects Ltd). Not affiliated with SenseTime / SenseNova. | |
| ## A faithful port of the looped architecture | |
| SenseNova-Loop is a Qwen3.5-based model with two additions, and this build runs both exactly as SenseNova's own code does: | |
| - **Looped execution:** layers 0–3 run once, layers 4–27 run **twice** with shared weights, then layers 28–31: 56 layer passes per token. Every pass has its own cache slot (KV cache for full attention, conv and recurrent state for Gated DeltaNet). | |
| - **Two-stream mHC** on layers 4–27: the hidden state is split into two residual streams that are routed by small float32 routers (pre / post gates and a 2×2 Sinkhorn mixing matrix, 20 iterations). The 96 router tensors stay in float32 and are never quantized. | |
| The model code is `sensenova_loop.py`, included in this repo and loaded by mlx-lm through `trust_remote_code=True`. Source, converter, parity and benchmark scripts: [github.com/internet-projects/sensenova-loop-mlx](https://github.com/internet-projects/sensenova-loop-mlx). | |
| ## Results (MacBook Pro M5 Max, 128 GB, 7 November 2026) | |
| Agreement with SenseNova's own PyTorch code (Transformers 5.18, bf16) on 16 prompts, every position: | |
| | | 8-bit | 6-bit | 4-bit | | |
| |---|---|---|---| | |
| | Same top token as the reference | 97.6% | 97.2% | 89.2% | | |
| | KL divergence at the last token | 0.0011 | 0.0037 | 0.064 | | |
| | Size | 9.6 GB | 7.3 GB | 5.1 GB | | |
| Short public benchmark (same harness for every build; first 300 ARC-Challenge test questions, log-likelihood over the 4 choices; first 50 GSM8K test questions, chat template, thinking off, greedy): | |
| | | bf16 | 8-bit | 6-bit | 4-bit | | |
| |---|---|---|---|---| | |
| | ARC-Challenge acc / acc_norm | 48.7 / 51.0 | 48.7 / 50.3 | 47.7 / 49.0 | 45.7 / 45.0 | | |
| | GSM8K (50) | – | 94.0 | 88.0 | 92.0 | | |
| GSM8K on 50 questions moves 2 points per question. | |
| Decode speed for this build: about 22 tokens/s on the M5 Max (short run). The loop doubles the work of the middle 24 layers, so it is slower than a plain 9B model; that is the cost of the extra depth. | |
| ## Use | |
| Needs Python 3.11 or newer and mlx-lm 0.32 or newer (the macOS system Python 3.9 only gets an older mlx-lm that can't load this model). | |
| ```bash | |
| pip install -U "mlx-lm>=0.32" | |
| ``` | |
| ```python | |
| from mlx_lm import load, generate | |
| model, tokenizer = load("netprojects/SenseNova-Loop-9B-Preview-MLX-4bit", trust_remote_code=True) | |
| messages = [{"role": "user", "content": "Explain in two sentences why the sky is blue."}] | |
| prompt = tokenizer.apply_chat_template(messages, add_generation_prompt=True, enable_thinking=False) | |
| print(generate(model, tokenizer, prompt=prompt, max_tokens=256)) | |
| ``` | |
| Set `enable_thinking=True` for thinking mode. Server: `mlx_lm.server --model netprojects/SenseNova-Loop-9B-Preview-MLX-4bit --trust-remote-code`. | |
| **Other sizes:** [8-bit](https://huggingface.co/netprojects/SenseNova-Loop-9B-Preview-MLX-8bit) (9.6 GB) · [6-bit](https://huggingface.co/netprojects/SenseNova-Loop-9B-Preview-MLX-6bit) (7.3 GB) | |
| ## License | |
| SenseNova-Loop-9B-Preview is released by SenseNova under the **Apache License 2.0** (`LICENSE` included). This repository contains converted and quantized weights of that model (modified from the original: converted to MLX format and quantized to 4-bit) and an MLX implementation of its architecture, distributed under the same license. | |
| Credits: SenseNova / SenseTime (SenseNova-Loop-9B-Preview), Qwen team (Qwen3.5), Apple MLX and mlx-lm. Conversion and MLX port by Paris Michalas, Partner at [NetProjects](https://netprojects.com). Not affiliated with SenseTime / SenseNova. | |
| **More NetProjects MLX builds:** [NetProjects MLX builds collection](https://huggingface.co/collections/netprojects/netprojects-mlx-builds-6ae3b2683a59a1b4fc4c0c3a) · [all models at huggingface.co/netprojects](https://huggingface.co/netprojects) | |