Available 2026-07-27
The flagship of the Neutrino family: 36 decoder layers behind a coded ternary-family container that serves a datacenter GPU, a MacBook, and a desktop CPU from one artifact.
Neutrino-1 8B is an 8.19B-parameter decoder-only transformer that ships as one 3.88 GB file. Every one of its 252 transformer linears is stored in a proprietary ternary-family weight format eight times smaller than fp16; the weights stay bit-packed at rest and are decoded inside the matrix kernels, so nothing in the decode path is stored as fp16 or fp32 weight material.
Small weights change the serving economics. Single-stream decode is bound by how many bytes move per token, so a 3.88 GB working set decodes at rates a 16 GB fp16 artifact cannot reach on the same memory system, and the whole model fits beside its KV cache on an 8 GB GPU or a 16 GB laptop. The same container serves every platform below without conversion.
A dense decoder-only transformer. Grouped-query attention holds the KV cache at a quarter of the query width, 144 KiB per token at fp16, so a 4k-token session costs 0.60 GB of cache beside the 3.88 GB of weights.
Only the transformer linears carry the coded format. The two embedding tensors stay int8 because their rows are read one token at a time, not multiplied against the full activation stream, and the normalization weights are too small to be worth coding. A third of the file is vocabulary.
Across the 6.95B coded weights, 62.63% sit at zero and the remainder splits 18.68% plus to 18.69% minus: sign-balanced to a hundredth of a point with no constraint asking for it. The balance is not uniform in depth. The gate and down feed-forward projections spike to 70 to 72% zeros in layers 1 through 3 while all four attention projections hold within about one point of 62% at every depth: the early feed-forward blocks shed weights the network does not need, and attention keeps a constant code density from layer 0 to layer 35.
gateupdownquery, key, value, output
One container, three doors. The download is a coded transport of the container, not a compressed copy of an fp16 model: it expands bit-exactly to the file every runtime executes, and that one file is what runs on a datacenter GPU and on a laptop alike.
24.9 tok/s on an Apple M5, CPU only, 9 threads
The one-command door: pip install fermion-research downloads the container and the platform-matching native binary. CPU runtimes for macOS arm64 and Linux x86-64, with a bit-exact torch reference path underneath.
30.7 tok/s on an NVIDIA L4, 4.68 GiB at 4k context
The llama.cpp door: the container converted to GGUF with our weight types, loaded by our public llama.cpp fork. Runs llama-completion and llama-bench, with full CUDA offload.
33.7 tok/s on a base M5 MacBook
The Apple-silicon door: Python-native runtime with custom Metal kernels. The container is memory-mapped and the packed planes are decoded inside the GEMV kernels.
The release battery runs on the shipped container with thinking disabled, so every grade below is the artifact you download and not a research checkpoint. Protocol rides every row: shot count, grading mode, and item count.
Single-stream decode, the rate that governs one prompt and one reply. Same artifact on every row; the surface changes, the weights do not.
Neutrino-1 0.6B drafts a run of tokens, the 8B scores the whole run in one forward pass, and the agreeing prefix is kept. A draft token is accepted only when it equals the 8B's own argmax, so the output stream is the plain greedy stream: on the shipping configuration, 27,648 consecutive tokens matched with zero divergences.
The speedup is draft-acceptance physics, so it is stated per prompt class over the 396 tok/s plain rate. On counting prompts the 8B accepts the full six-token draft on every pass, about seven tokens emitted per 8B forward; on factual prompts acceptance holds at 96.5%. A dynamic controller sizes each draft to the class it is decoding, which is why every class clears the plain rate.
Both containers are the same format and run on the same binaries, so the draft loads into the verifier's own process with no second deployment and no conversion step. Its 328 MB sit beside the 8B's 3.88 GB, and 4k tokens of shared context cost exactly one gibibyte of cache across the pair.
The pairing is not a datacenter feature. On a 16 GB Apple M5 both models load into one MLX process under a 6 GiB cap and peak at 4.3 GiB together, with the draft accounting for 0.53 GiB of it. The exactness gate returns 6 of 6 prompts token-identical with drafting on and off, and on factual prompts the drafted rate is 25.71 tok/s against 22.00 plain at an acceptance of 0.744.
$ pip install fermion-research
$ fermion chat
The first run pulls the container and the native binary for the host, then the prompt opens. Later runs load from cache.
A local OpenAI-compatible serverfermion serve
Serves at http://127.0.0.1:8000/v1. Point any OpenAI client at that base URL; the key can be any string.
Any of the three modelsfermion chat --model fermionresearch/Neutrino-0.6B-Chat
--model takes a repository id or a path on disk. --backend native pins the compiled runtime instead of the torch path.
GGUF, through our llama.cpp forkllama-completion -m neutrino-8b-fv5.gguf -ngl 99
Build the fork, then run the pack from the model repository. The CUDA build offloads all 36 layers.
MLX, on Apple siliconpython -m fermion_mlx --model neutrino-8b_v4.bin --mode chat --tokenizer .
Run from the mlx/ folder of the model repository, after installing its requirements file.
Neutrino-1 8B ships as a single public repository holding the weights, the native binaries, the GGUF pack, and the MLX pack together, so there is never a version of one that does not match the others. No waitlist, no gated preview.
Weights and engine in one repository.
Available 2026-07-27One public repositoryOpen weights, Apache 2.0
Open weights under the Apache License 2.0. Commercial use, modification, fine-tuning, and redistribution are permitted, with no access request and no acceptance form. The model is a derivative of Qwen3-8B, itself Apache-2.0. The pip package is Apache-2.0 too; the llama.cpp fork is MIT, following upstream llama.cpp.
@misc{fermionresearch2026neutrino,
title = {Neutrino-1 8B},
author = {{Fermion Research}},
year = {2026},
url = {https://fermionresearch.com/models/neutrino-8b/}
}