1. Three models, one format
An 8B-class model in fp16 is 16 GB of weights, and producing a single token moves nearly all of them through the processor. Neutrino-1 8B holds 8,190,735,360 parameters in a proprietary ternary-family weight format at one eighth the bytes of fp16, which puts the whole model in a 2.56 GB download and 3.88 GB on disk. Three models ship today in that format. Neutrino-1 8B is the capable one. Neutrino-1 0.6B is 596,049,920 parameters in 328 MB that decode at 225 tokens per second on a laptop, and it is the certified draft model that makes the 8B decode faster than the 8B can decode alone. Neutrino-1 0.6B-Chat is that small model finished for conversation.
The three share a tokenizer, a container layout, and an engine. One artifact per model, one loader, one set of kernels: the file that runs on an H100 is byte-identical to the file that runs on a MacBook, and the drafted path exists because two of the three containers can sit in the same process without a second runtime.
2. Architecture
Neutrino-1 8B is a 36-layer decoder-only transformer with a residual stream 4,096 wide. Attention is grouped-query: 32 query heads share 8 key-value heads at 128 dimensions per head, a 4:1 grouping that divides the decode-time cache by four, with rotary position embeddings over the full head dimension and RMS normalization applied per head to queries and keys before they reach the cache. Each layer carries a gated feed-forward block that expands 4,096 to 12,288 and projects back. The vocabulary is 151,936 tokens with separate input and output embedding tables, and the position range extends to 40,960 tokens.
Neutrino-1 0.6B is the same design at a quarter of the width. It runs 28 layers over a 1,024-wide stream, 16 query heads over the same 8 key-value heads for a 2:1 grouping, the same 128-dimension heads, and a feed-forward block of 3,072. It carries the identical 151,936-token vocabulary, and at that width a separate output table would cost more than the layers it serves, so the small model ties its input and output embeddings into one 156 MB table. Sharing the tokenizer with the 8B is what makes the two composable: drafted tokens need no remapping between models.
Neutrino-1 8B
- Parameters
- 8,190,735,360
- Layers
- 36
- Residual stream
- 4,096
- Attention
- 32 query / 8 KV heads
- Feed-forward
- 12,288
- Embeddings
- untied, 622 MB each
- On disk
- 3.88 GB
- Download
- 2.56 GB
- Vocabulary share of the file
- 32.1%
Neutrino-1 0.6B
- Parameters
- 596,049,920
- Layers
- 28
- Residual stream
- 1,024
- Attention
- 16 query / 8 KV heads
- Feed-forward
- 3,072
- Embeddings
- tied, 156 MB
- On disk
- 328 MB
- Download
- 238 MB
- Vocabulary share of the file
- 47.5%
Same tokenizer, same format, same engine. The small model spends 47.5 percent of its file on the vocabulary against the 8B’s 32.1 percent.
3. The container
The format decides what those parameters physically are. All 252 transformer projection matrices of the 8B, seven per layer across attention and the feed-forward block, live in the ternary lane: each stored weight is a three-way choice among minus, zero, and plus, and each output row carries scale metadata that sets the magnitude of the choice. The format extends the ternary family with proprietary structure, and the extensions are unpublished; the measurable consequence is that 6.95 billion projection weights occupy 2.60 GB of the container. Zero is a stored state, not a rounding outcome: 62.6 percent of all ternary weights are exactly zero, 18.7 percent positive, 18.7 percent negative. The signs land balanced to within two hundredths of a percentage point across 6.95 billion weights, with nothing in training enforcing that symmetry.
Occupancy is not uniform with depth. The attention projections hold a flat code density across all 36 layers, inside a band of about one percentage point. The feed-forward blocks of layers 1 through 3 spike instead: the down projection reaches 72.5 percent zeros at layer 2 and the gate 70.5 percent at layer 3, roughly ten points above the model-wide baseline. The earliest feed-forward blocks silence most of their connections; attention never does.
Measured over the shipping container, 2026-07-27. Attention holds a flat code density at every depth; the first feed-forward blocks silence hardest.
Two thirds of the file is that ternary weight lane. Nearly a third is vocabulary: the two untied embedding tables stay outside the ternary lane as int8 rows with per-row scales, 622 MB each. That choice costs 1.24 GB and buys precision on the only tensors where a single row carries a token’s whole identity. Normalization vectors stay at full precision, 1.2 MB in total. Nothing in the container is fp16, and every one of the 36 layers costs exactly 72,351,744 bytes, 21.7 percent attention and 78.3 percent feed-forward.
The download is smaller than the artifact because the two lanes code differently. The ternary lane compresses losslessly to roughly 55 percent of its raw bytes, and the layers that silence hardest code tightest: layers 1 through 3 reach 0.516 where a typical layer sits near 0.550. The int8 embeddings hold at 88 percent. The shipped transport lands at 2.56 GB and expands to the byte-identical container.
Every layer costs the same 72,351,744 bytes of weight lane, and the two embedding tables together cost more than seventeen layers.
4. Training
Neutrino-1 8B was trained natively in its shipping format. There is no full-precision product model that was rounded afterward: the ternary representation is the medium the weights learned in, and the training methods that hold this quality at this depth are the lab’s unpublished work. The findings below are the part that travels.
Post-training ran as staged, single-axis behavioral campaigns: instruction following, tool calling, termination discipline, each stage graded against the full battery of every axis already installed. The staging exists because of a phenomenon we measured early and now design around: training pressure on one behavioral axis does not degrade the model uniformly. It degrades specific other axes, and which ones is an empirical property of each training diet, not of the model. One tool-calling stage in this lineage moved its tool-use score by twenty points while strict instruction following bled nine points on the same checkpoints and termination behavior improved. A mathematics-heavy diet collapsed tool calling instead. The damage chooses axes, so every stage has to watch all of them.
Protection is equally axis-specific. Folding an installed axis’s own training signal into a stage’s batches held that axis through the stage, and held only that axis: the nine-point instruction-following bleed fell to under half a point once the axis was represented, the tool-calling gain survived, and no axis absent from the mix was ever protected by accident. Dose behaves the same way. Tool-calling gains completed within roughly twenty-five optimization steps in every densely measured campaign, instruction following needed about fifty, and knowledge-heavy stages peaked mid-course and decayed past the peak. A dose plan copied from one axis to another is a category error.
Two more findings shaped the release. When a reward-driven stage plateaued, the cause was never a model ceiling: the model had exhausted its training material, corrective pressure faded, and further steps bought nothing that harder material did not. And a checkpoint that passes on the evaluation rig can still behave differently on a shipping runtime, so each stage’s winner is graded on the runtimes it ships on before it ships. Stages were accepted only when every installed axis held above preset floors. Several failed their floors and shipped nothing. The model that ships is the sequence of stages that held.
5. Evaluation
MMLU 72.1, five-shot, all 57 subjects, the full 14,042-question set. MMLU-Redux, the re-annotated subset, 67.8, run generatively with thinking off. IFEval 77.2 prompt-strict; the same run reads 80.2 instruction-strict and 76.3 prompt-loose. BFCL v3 68.9, macro-averaged over its thirteen categories.
GSM8K is scored twice, under both extraction rules the field uses, and the pair is more informative than either number. Flexible extraction takes the last number the model produced and reads 53.4. The stated rule accepts an answer only where the prompt asked for it, and reads 51.73: the arithmetic and the obedience are measured separately, and the gap between them is under two points. Both runs are zero-shot with no chain of thought, against the eight-shot chain-of-thought setting most published mathematics figures use.
The table below carries every model in the byte class on one measurement stack, with the same prompt format, shot count, extraction rule and generation cap on every side. Two cells are worth naming in advance. Requiring the answer in the stated form costs an instruction-tuned 16-bit rival almost everything it scored under the flexible rule, which is a formatting failure and not an arithmetic one.
| Axis | Neutrino-1 8B8.19B | Gemma-4-E4B4B effective | Llama-3.1-8B8B | Ternary-Bonsai-8B8B | Gemma-3n-E4B4B effective | AQLM 2-bit Llama-3-8B8B |
|---|---|---|---|---|---|---|
| How the weights were made | Ternary, trained in it | 16-bit, uncompressed | 16-bit, uncompressed | Ternary, trained in it | 16-bit, uncompressed | 2-bit, after training |
| Download | 2.56 GB | 16.02 GB | 16.06 GB | 2.18 GB | 15.70 GB | 4.08 GB |
| MMLUfive-shot | 72.1 | 70.57 | 68.3 | 65.75 | 64.9zero-shot | 58.72 |
| IFEvalprompt-strict | 77.2 | 88.26our run, thinking off | 80.4vendor, mean of four readings | 83.65our run; their card 81.8 | 84.41external published run | not published |
| BFCLv3, macro over 13 subsets | 68.9 | not published | 76.1vendor, version unstated | 71.45our run; their card 73.9 | not published | not published |
| GSM8K, stated format | 51.73 | 1.00 | not published | 39.67 | not published | not published |
| GSM8K, flexible extraction | 53.4 | 30.67 | 84.58-shot, with reasoning | 35.00our rule; card 91 | 60.12external published run | 50.878-shot |
| Context windowtokens | 40,960 | 131,072vendor card | 131,072vendor card | 65,536vendor card | 32,768vendor card | 8,192inherits Llama-3 |
| Decode, Apple laptoptok/s | 33.7base M5 | 30community M4 Pro, 4-bit | 32.0community M3 Max, llama.cpp | 49.0our run, base M5, MLX | vendor publishes no rate | no laptop runtime |
| Decode, one H100 80 GBtok/s | 396 | not published | 158 | not published | not published | not published |
| Drafted decode, same machinetok/s | 763 | no rate published | 373 | none for the 8B | not published | no drafting path |
| Runs in 16 GB of laptop memory | Yes | No at 16.02 GB | No at 16.06 GB | Yes | Yesvendor targets laptops; PLE offload | No laptop runtime |
| Neutrino-1 8B | Ternary, trained in it |
|---|---|
| Gemma-4-E4B | 16-bit, uncompressed |
| Llama-3.1-8B | 16-bit, uncompressed |
| Ternary-Bonsai-8B | Ternary, trained in it |
| Gemma-3n-E4B | 16-bit, uncompressed |
| AQLM 2-bit Llama-3-8B | 2-bit, after training |
| Neutrino-1 8B | 2.56 GB |
|---|---|
| Gemma-4-E4B | 16.02 GB |
| Llama-3.1-8B | 16.06 GB |
| Ternary-Bonsai-8B | 2.18 GB |
| Gemma-3n-E4B | 15.70 GB |
| AQLM 2-bit Llama-3-8B | 4.08 GB |
| Neutrino-1 8B | 72.1 |
|---|---|
| Gemma-4-E4B | 70.57 |
| Llama-3.1-8B | 68.3 |
| Ternary-Bonsai-8B | 65.75 |
| Gemma-3n-E4B | 64.9zero-shot |
| AQLM 2-bit Llama-3-8B | 58.72 |
| Neutrino-1 8B | 77.2 |
|---|---|
| Gemma-4-E4B | 88.26our run, thinking off |
| Llama-3.1-8B | 80.4vendor, mean of four readings |
| Ternary-Bonsai-8B | 83.65our run; their card 81.8 |
| Gemma-3n-E4B | 84.41external published run |
| AQLM 2-bit Llama-3-8B | not published |
| Neutrino-1 8B | 68.9 |
|---|---|
| Gemma-4-E4B | not published |
| Llama-3.1-8B | 76.1vendor, version unstated |
| Ternary-Bonsai-8B | 71.45our run; their card 73.9 |
| Gemma-3n-E4B | not published |
| AQLM 2-bit Llama-3-8B | not published |
| Neutrino-1 8B | 51.73 |
|---|---|
| Gemma-4-E4B | 1.00 |
| Llama-3.1-8B | not published |
| Ternary-Bonsai-8B | 39.67 |
| Gemma-3n-E4B | not published |
| AQLM 2-bit Llama-3-8B | not published |
| Neutrino-1 8B | 53.4 |
|---|---|
| Gemma-4-E4B | 30.67 |
| Llama-3.1-8B | 84.58-shot, with reasoning |
| Ternary-Bonsai-8B | 35.00our rule; card 91 |
| Gemma-3n-E4B | 60.12external published run |
| AQLM 2-bit Llama-3-8B | 50.878-shot |
| Neutrino-1 8B | 40,960 |
|---|---|
| Gemma-4-E4B | 131,072vendor card |
| Llama-3.1-8B | 131,072vendor card |
| Ternary-Bonsai-8B | 65,536vendor card |
| Gemma-3n-E4B | 32,768vendor card |
| AQLM 2-bit Llama-3-8B | 8,192inherits Llama-3 |
| Neutrino-1 8B | 33.7base M5 |
|---|---|
| Gemma-4-E4B | 30community M4 Pro, 4-bit |
| Llama-3.1-8B | 32.0community M3 Max, llama.cpp |
| Ternary-Bonsai-8B | 49.0our run, base M5, MLX |
| Gemma-3n-E4B | vendor publishes no rate |
| AQLM 2-bit Llama-3-8B | no laptop runtime |
| Neutrino-1 8B | 396 |
|---|---|
| Gemma-4-E4B | not published |
| Llama-3.1-8B | 158 |
| Ternary-Bonsai-8B | not published |
| Gemma-3n-E4B | not published |
| AQLM 2-bit Llama-3-8B | not published |
| Neutrino-1 8B | 763 |
|---|---|
| Gemma-4-E4B | no rate published |
| Llama-3.1-8B | 373 |
| Ternary-Bonsai-8B | none for the 8B |
| Gemma-3n-E4B | not published |
| AQLM 2-bit Llama-3-8B | no drafting path |
| Neutrino-1 8B | Yes |
|---|---|
| Gemma-4-E4B | No at 16.02 GB |
| Llama-3.1-8B | No at 16.06 GB |
| Ternary-Bonsai-8B | Yes |
| Gemma-3n-E4B | Yesvendor targets laptops; PLE offload |
| AQLM 2-bit Llama-3-8B | No laptop runtime |
Measured on standard public harnesses, July 2026. Byte counts are the whole artifact in decimal gigabytes. MMLU is five-shot everywhere except Gemma-3n-E4B, whose published figure is zero-shot. Our GSM8K is zero-shot with no chain of thought under two extraction rules: flexible takes the last number in the answer, stated requires the answer in the form the prompt asked for. Nobody else publishes a stated-format reading, so rival cards contribute only to the flexible row, and both of the ones that do are eight-shot. IFEval is prompt-level strict for every cell we measured; Llama-3.1-8B publishes one IFEval number that is the mean of its four prompt and instruction readings under strict and loose grading. BFCL is the thirteen-subset macro of version three; Llama-3.1-8B publishes a zero-shot BFCL accuracy without naming a version, so the two are not the same meter. The Ternary-Bonsai-8B and Gemma-4-E4B scores are our own runs of those checkpoints at settings identical to ours, Gemma-4-E4B from its base repository and with its reasoning mode off; where those runs disagree with the vendor card the cell prints the card figure beside ours. The Llama-3.1-8B figures are its published ones, as is the AQLM row. The two-bit rounded row is a published study of an 8B with no released artifact, so its bytes are a class figure. Not published means the vendor states no number and we hold none.
Read down the byte row and the knowledge row together and the trade the class is built on comes apart. Every 16-bit artifact in the table buys its score with fifteen to sixteen gigabytes, and the two after-the-fact two-bit cuts buy their bytes with the score. Training in the shipping format is what breaks the trade, and the break is large enough to see as a shape rather than read as a number.
Six artifacts, each joined from its download to its MMLU: three 16-bit, two ternary, one rounded to 2-bit after training. Every rival line falls; the Neutrino-1 8B line is the only one that climbs.
6. Tool use
The BFCL macro average is one number over thirteen separately scored suites, so the thirteen are published individually. Function composition against held signatures is the strongest block, 70.0 to 85.0 across simple, multiple, parallel, and parallel-multiple calls, and relevance detection sits alongside it at 77.1 to 80.0: the model declines to call a function nearly as reliably as it calls the right one. The live suites draw their schemas from real-world APIs collected in the wild, where argument names and nesting are nobody’s house style.
Scored subsets from the preceding run on one colour scale. The current independently measured macro is 68.9.
7. Memory and decode
Decode is a bandwidth problem before it is a compute problem. Producing one token requires streaming essentially the whole model through the processor once: the 2.60 GB ternary lane, then the 622 MB output embedding to score the vocabulary. The ceiling on single-stream tokens per second is memory bandwidth divided by those bytes. Kernels decide how close a machine runs to its ceiling; only byte count moves the ceiling itself.
The clearest evidence is a pair of measurements on one laptop. A base-M5 MacBook decodes the optimized shipping artifact at 33.7tokens per second; the separately measured CPU-only path reaches 24.9 with the GPU idle. Both paths stream the same packed weights through one memory system, so the format’s job is to make each token cost fewer bytes. On an H100 80 GB the same artifact runs 396 tokens per second on the plain path.
The engine is separable from our weights, which makes the Apple number checkable against someone else’s model. Loading the public BitNet b1.58-2B4T ternary weights into our container and decoding them on a 16 GB Apple M5 reaches 102.4 tokens per second, against 89.0 from the reference bitnet.cpp build on the same machine in the same session, batteries and thermals shared. No published number for a ternary model on Apple silicon is higher than 102.4.
Weights are the flat cost; context is the growing one. With the 4:1 grouped-query cache, one token of context costs 147,456 bytes at 16-bit precision across the 36 layers, so 4,096 tokens of history hold 604 MB and the full 40,960-token range 6.0 GB against the constant 3.88 GB of weights. Ungrouped 32-head attention would multiply the cache by four and push the full-context total past 28 GB. Grouping is why the whole object, model plus maximal cache, stays under 10 GB.
Computed from the container’s attention geometry: 8 KV heads of 128 dimensions over 36 layers is 147,456 bytes per token of context at 16-bit precision.
8. Drafted decode
Drafted decode is a system of two models in one format. Neutrino-1 0.6B proposes a short run of tokens. The 8B scores the entire run in a single batched forward pass, one pass for up to seven positions instead of one pass per token. The engine keeps the longest prefix on which the two models agree exactly, takes the next token from the 8B’s own distribution, and repeats. Under greedy decoding this procedure cannot emit a token the 8B would not have produced alone, and the implementation is checked the same way: drafted path against plain path, token by token, 27,648 consecutive tokens with zero divergences.
Delivered speed follows acceptance, and acceptance follows the text. On an H100 80 GB the drafted path reaches 763 tokens per second on counting-style output against 396.7 plain, 500 on facts, 437 on code, 422 on prose, and 402 on chat. The spread is not tuning: on counting the 8B accepted every one of six drafted tokens on every verify pass, which emits about seven tokens per forward pass of the 8B.
The pairing also runs on a laptop. Both models load into one process on a 16 GB Apple M5 under a hard 6 GiB cap, peak at 4.3 GiB resident, and deliver 25.71 tokens per second on factual prompts against 22.00 undrafted in the same session, accepting 74 percent of drafted tokens. Six prompts came back token-identical with drafting on and off, which is the property that matters: on Apple silicon drafting changes the speed and never the text.
- 01The 0.6B draftsOne to seven tokens, length chosen from recent acceptance.
- 02The 8B verifies in one passEvery drafted position scored in a single batched forward pass.
- 03The agreed prefix is keptThe longest run where both models chose the same token.
- 04The 8B emits the next tokenFrom its own distribution, then the loop restarts.
Factual prompts leave 5.0 drafted tokens alive per pass and need 86 passes for 512 tokens; code leaves 1.8 and needs 181.
Stage means come from the 2026-07-25 mechanics probe. The drafted path is certified exact on the shipping configuration: 27,648 consecutive tokens compared against plain decode with zero divergences.
Draft length is chosen per step rather than fixed, because the same draft model behaves differently on different text. Factual completions accept 96 to 99 percent of drafted tokens at every draft length tested, so the controller rides seven-token drafts there and the histogram piles up at the maximum. Elsewhere acceptance decays with length, and the controller reads recent acceptance and shortens the draft to one or two tokens, spending draft work only where it survives verification.
Nine prompt classes, one runtime, one draft model, 2026-07-25 probe. Factual text accepts long drafts almost losslessly, so the engine rides seven-token drafts there and shortens elsewhere.
9. The small models
Neutrino-1 0.6B does two jobs. The first is drafting, and it is certified in that role rather than asserted: standing alone on an H100 80 GB it walks at 1,177 tokens per second, and paired with the 8B it produced 27,648 consecutive tokens with zero divergences from plain decode, carrying the 8B to 762.6 tokens per second on counting-class prompts with every one of six drafted tokens accepted on every verify pass. No published model of this size ships a bit-exact acceptance certificate for its drafted path.
The container is 596,049,920 parameters, 328 MB on disk and a 238 MB download, and it decodes at 225 tokens per second through the native binary on a 16 GB Apple M5, 201.2 through MLX inside 0.526 GiB of memory. It carries the 8B’s tokenizer, which is what makes the pairing composable: drafted tokens need no remapping between models. The vocabulary is the largest single object in the file at 47.5 percent of its bytes against 32.1 percent on the 8B, which is why the embeddings are tied. At this width the tokenizer is the model’s main expense.
The reference point for a format is the base model it was built from, at full precision, same parameter count, same harness. That reference is Qwen3-0.6B: 1.50 GB of bf16 weights, reading 60.82 on ARC-easy at zero-shot. The Neutrino container reads 53.45 from 238 MB, and it does that inside 0.526 GiB of process memory, just over a third of what the bf16 weights alone occupy.
87.9 percent of Qwen3-0.6B’s ARC-easy, at 6.3 times fewer bytes.
Both sides graded on our harness at zero-shot accuracy. Qwen3-0.6B is the base model this container was built from, and the Neutrino side is the shipping artifact.
Neutrino-1 0.6B-Chat is the same container finished for conversation, and the finishing is measurably small. The chat tune moved state occupancy by less than a tenth of a percentage point on every projection and left the tied embedding table byte-identical. Alignment at this scale is a rearrangement of ternary states inside the projections, not a rewrite of the model.
The chat model is graded on conversation and on the surfaces it ships on. Sentence fragments of the kind a person actually types get an answer instead of a request for clarification, factual prompts get the fact, absurd requests get a refusal rather than an agreement, and no reply carries chat-template scaffolding into the output. Stop discipline is measured on the compiled binary and on the MLX pack, because that is where a serve-time defect reaches a user, and the same container returns the same grades on both.
Decode rate
Neutrino-1 0.6B, single-stream greedy
- 225
- tok/s, native binary on an Apple M5
- 201.2
- tok/s, MLX on the same M5
- 0.53
- GiB peak memory, MLX
- 1,177
- tok/s drafting on an H100 80 GB
Conversation
Neutrino-1 0.6B-Chat, held-out prompts, shipping container
- 20/20
- sentence fragments answered
- 30/30
- factual prompts answered
- 0
- absurd answers
- 0/5
- chat-template leaks
Form and identity
Neutrino-1 0.6B-Chat, 100 held-out probes
- 8/8
- identity probes held
- 1.000
- well-formed replies
- 0.000
- nonsense affirmation rate
- 0.000
- parrot rate
Stop discipline
Neutrino-1 0.6B-Chat, on both shipping runtimes
- 0.885
- termination, static C binary
- 0.045
- loop rate, static C binary
- 0.85
- termination, MLX pack
- 0.05
- loop rate, MLX pack
10. Deployment surfaces
The reference surface is the pip package: engine, loader, and chat front end in one wheel. The same repository carries prebuilt static binaries for macOS arm64 and Linux x86-64 that decode the container at native CPU speed with no Python in the path. Weights and engine version together; there is no build of one that does not match the other.
$ 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 server
fermion serveServes 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 models
fermion 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 fork
llama-completion -m neutrino-8b-fv5.gguf -ngl 99Build the fork, then run the pack from the model repository. The CUDA build offloads all 36 layers.
- MLX, on Apple silicon
python -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.
For the llama.cpp ecosystem the release carries a GGUF pack and a public fork that adds the format as two tensor types. The CUDA build offloads all 36 layers: on an NVIDIA L4 the pack decodes at 30.7 tokens per second in 4.68 GiB of peak VRAM at 4,096 context, inside an 8 GB card. The CPU build is token-identical under greedy decoding against the container’s own full-precision expansion. An MLX pack serves Apple GPUs. Every pack is checked token for token against the shipping container before publication.
11. Availability
All three models are available now. Neutrino-1 8B ships as a single public repository holding the weights and the engine together, a 2.56 GB download. All three models ship as open weights under the Apache License 2.0, which permits commercial use, modification, fine-tuning, and redistribution. No waitlist, no gated preview.
Weights, native binaries, GGUF pack, MLX pack.
The draft model, and a fast model on its own.
The conversational small model.
The engine, the loader, and the chat front end.
Adds the format to the llama.cpp toolchain.
Two research posts accompany this one: one on what survives when a model leaves floating point, and one on the engine.

