Cascadia — ternary-3 packages

7 models from the LFM2 and LFM2.5 families at 0.64-0.69 bytes per weight, executable on CPU by a C runtime whose entire dependency list is libc, libm and libgomp.

modelpackageRAM to runcompressionperplexityrel L2
LFM2.5-230M161 MB198 MB2.89x+8.43%0.0485
LFM2-350M241 MB294 MB2.96x+1.10%*0.0533
LFM2-700M495 MB573 MB3.01x+12.51%0.0547
LFM2-1.2B774 MB873 MB3.03x+9.91%0.0553
LFM2.5-2.6B1.77 GB2.00 GB3.05x-2.65%0.0544
LFM2.5-8B-A1B5.49 GB6.33 GB3.09x+2.58%*0.0548
LFM2-24B-A2B15.37 GB17.84 GB3.10xnone detected0.0561

* resolvable individually but not after correcting for 7 simultaneous tests, which needs |t| > 2.89.

Two numbers, because they answer different questions

Relative L2 is how faithfully the weights are reproduced — 0.049–0.056 across every model here, holding steady across four tokenizers, dense and Mixture-of-Experts architectures, and a 100× range in parameter count. It is the figure that describes the compression.

Perplexity is how a model scores on a corpus, measured against the bf16 checkpoint on identical tokens and clustered by 512-token window. 1 of these show no detectable cost. It varies with each model’s sensitivity and with how well general web text matches its domain — two models here compressed to the same 0.055 rel L2 measure +13.4% and −3.2%.

Running one

git clone https://github.com/EntroMorphic/cassie && cd cassie
cmake -S src/c -B build -DCMAKE_BUILD_TYPE=Release && cmake --build build -j

huggingface-cli download ZTFlynn/LFM2-350M-Cascadia-ternary3 --local-dir ./pkg
./build/cascadia_generate ./pkg 512 --chat "Explain gradient descent."

Acknowledgements

Deeply inspired by Magneato/deepseek-r1-qwen-7b-lutc, which demonstrated LUT-cascade compression at 5.45 bits per weight. Base models by Liquid AI, used under the LFM Open License. Method and measurements: github.com/EntroMorphic/cassie.