SenseNova-Loop-9B on a Mac: a looped language model in MLX
Paris Michalas, Partner, NetProjects (Internet Projects Ltd)
Most language models run each layer once per token. SenseNova-Loop-9B-Preview is SenseNova's preview of a looped language model built on Qwen3.5: its middle layers, 4 to 27, run twice with the same weights, so a 9B model does 56 layer passes per token, and a two-stream routing scheme, mHC, mixes the passes.
It is a preview model, and it reads and writes text only. We ported it to MLX, Apple's machine-learning framework, so it runs on a Mac with Apple Silicon in standard mlx-lm. SenseNova's original: https://huggingface.co/sensenova/SenseNova-Loop-9B-Preview
Always up to date. We keep these builds and the engine that runs them current on Hugging Face and GitHub. When SenseNova releases a new version of SenseNova-Loop-9B, we rebuild, re-test and publish it there, so the links on this page always point to the latest version. The numbers in this article were measured on the version named in each section; the README on GitHub and the model card on Hugging Face carry the current figures and a dated change log.
- Hugging Face: https://huggingface.co/netprojects
- GitHub: https://github.com/internet-projects
- NetProjects MLX builds collection: https://huggingface.co/collections/netprojects/netprojects-mlx-builds
What we released
Three MLX builds on Hugging Face. They run in standard mlx-lm, and the routers stay in float32.
| Hugging Face | Precision | Size |
|---|---|---|
| netprojects/SenseNova-Loop-9B-Preview-MLX-8bit (recommended) | 8-bit | 9.6 GB |
| netprojects/SenseNova-Loop-9B-Preview-MLX-6bit | 6-bit | 7.3 GB |
| netprojects/SenseNova-Loop-9B-Preview-MLX-4bit | 4-bit | 5.1 GB |
How well it matches the original
We compared every build with SenseNova's PyTorch code in bf16 on 16 prompts, and ran two small benchmarks.
Measured on sensenova-loop-mlx v0.1.0, 7 November 2026.
| Build | Same top token | ARC-Challenge (300), acc / acc_norm | GSM8K (50) |
|---|---|---|---|
| 8-bit | 97.6% | 48.7 / 50.3 | 94.0 |
| 6-bit | 97.2% | 47.7 / 49.0 | 88.0 |
| 4-bit | 89.2% | 45.7 / 45.0 | 92.0 |
The benchmark sets are small, so a difference of a few points between builds is noise.
How fast is it?
Measured on sensenova-loop-mlx v0.1.0, 7 November 2026, MacBook Pro M5 Max (128 GB).
The builds generate about 18, 20 and 22 tokens a second at 8-bit, 6-bit and 4-bit. The loop doubles the work per token; that is the price of the design.
Try it
pip install -U "mlx-lm>=0.32"
mlx_lm.server --model netprojects/SenseNova-Loop-9B-Preview-MLX-8bit --trust-remote-codeFrom Python:
from mlx_lm import load
model, tokenizer = load("netprojects/SenseNova-Loop-9B-Preview-MLX-8bit", trust_remote_code=True)You need Python 3.11 or later; the macOS system Python is too old. The README has the full commands: https://github.com/internet-projects/sensenova-loop-mlx
Honest limits
- It is a preview model.
- Text only.
- It needs trust_remote_code.
- Our evaluations are small.
- All figures come from one machine.
- We have no memory or prompt-reading speed figures yet.
Links
- Code on GitHub: https://github.com/internet-projects/sensenova-loop-mlx
- 8-bit build (recommended): https://huggingface.co/netprojects/SenseNova-Loop-9B-Preview-MLX-8bit
- 6-bit build: https://huggingface.co/netprojects/SenseNova-Loop-9B-Preview-MLX-6bit
- 4-bit build: https://huggingface.co/netprojects/SenseNova-Loop-9B-Preview-MLX-4bit
- SenseNova's original: https://huggingface.co/sensenova/SenseNova-Loop-9B-Preview
- NetProjects MLX builds collection: https://huggingface.co/collections/netprojects/netprojects-mlx-builds
- Another looped model on a Mac, NVIDIA Dory 1.0 4B: https://netprojects.com/insights/nvidia-dory-4b-on-apple-silicon-mlx
- How we use AI: https://netprojects.com/standards/ai
Always up to date. We keep these builds and the engine that runs them current on Hugging Face and GitHub. When SenseNova releases a new version of SenseNova-Loop-9B, we rebuild, re-test and publish it there, so the links on this page always point to the latest version. The numbers in this article were measured on the version named in each section; the README on GitHub and the model card on Hugging Face carry the current figures and a dated change log.
- Hugging Face: https://huggingface.co/netprojects
- GitHub: https://github.com/internet-projects
- NetProjects MLX builds collection: https://huggingface.co/collections/netprojects/netprojects-mlx-builds
Credits
SenseNova-Loop-9B-Preview is by SenseNova, built on Qwen3.5, under the Apache-2.0 licence; our code is Apache-2.0 licensed too. The MLX port is by Paris Michalas, Partner, NetProjects (Internet Projects Ltd). Not affiliated with SenseTime / SenseNova.
Paris Michalas is a partner at NetProjects, the trading name of Internet Projects Ltd: https://netprojects.com. This article was drafted with AI assistance, then edited and approved by people on our team. You can read more about how we use AI at https://netprojects.com/standards/ai.