No description
  • Python 92.6%
  • Just 7.4%
Find a file
2026-09-26 19:52:19 +02:00
docs docs and justfile 2026-09-26 19:52:19 +02:00
examples v0 2026-09-26 19:51:56 +02:00
scripts v0 2026-09-26 19:51:56 +02:00
src/system_one_lfm v0 2026-09-26 19:51:56 +02:00
tests v0 2026-09-26 19:51:56 +02:00
.gitignore init 2026-09-26 19:51:34 +02:00
.python-version init 2026-09-26 19:51:34 +02:00
AGENTS.md init 2026-09-26 19:51:34 +02:00
CLAUDE.md init 2026-09-26 19:51:34 +02:00
justfile docs and justfile 2026-09-26 19:52:19 +02:00
pyproject.toml init 2026-09-26 19:51:34 +02:00
README.md init 2026-09-26 19:51:34 +02:00
uv.lock init 2026-09-26 19:51:34 +02:00

Sources

What system-one models are, what jev is. long: https://flaviocopes.com/jev/

jev-like with diffusion models (DiffusionGemma, 1-step canvas readout): https://medium.com/google-cloud/how-to-build-a-jev-style-classifier-with-diffusiongemma-and-vllm-ef2e0bfa9ad7 (local copy: how-to-build-a-jev-style-classifier-with-diffusiongemma-and-vllm.md)

jev-like based on qwen: https://github.com/jaredpalmer/kev extra: https://opper.ai/blog/jev-vs-kev-open-decision-model

jev-like based on qwen, no extra head (label-token logits): https://github.com/akivet/Mica-v0.1-4B

how jev is probably built (reverse-engineered, speculative; take with a pinch of salt): https://archerhume.com/posts/jevs-architecture-unmasked

what jev's confidence actually is (a rescaled top probability, not calibration): https://bernoulli.app/articles/is-jev-confident

other open sources approaches: https://www.reddit.com/r/LocalLLaMA/comments/1wouby6/jev_almost_dead_clm_vs_jev/

model families: https://huggingface.co/collections/LiquidAI/lfm25, https://huggingface.co/inclusionAI/LLaDA2.2-mini, https://huggingface.co/IFM/K2-Horizon-0.9B, https://huggingface.co/IFM/K2-Horizon-3.7B (quants: https://huggingface.co/models?other=base_model:quantized:IFM/K2-Horizon-3.7B, we use https://huggingface.co/cyankiwi/K2-Horizon-3.7B-AWQ-FP8), https://huggingface.co/IFM/K2-Horizon-3.7B-GGUF, https://huggingface.co/IFM/K2-Horizon-0.9B-Uno

evals that work against any /v1/systemone endpoint: https://huggingface.co/datasets/jaredpalmer/kev-suites (via kev.benchmark --remote), https://github.com/fstandhartinger/jevbench

Idea

Phase 1

build our own toy-system-one model. typesafe api: state + questions (noul, score, choice).

  • --kind colbert: LFM2.5-ColBERT-350M. state = document, instructions + option = query, softmax over MaxSim. relevance ≠ entailment; needs fine-tuning (supported: sentence-transformers trainer + LoRA via peft).
  • --kind lfm --size 230M|350M|1.2B|2.6B and --kind k2 --size 0.9B|3.7B (3.7B = FP8 quant with FP8 kernels, ~6.6 GiB peak): Mica-style label-token readout (prefill + label rows of the LM head only); thinking checkpoints get an empty closed thought. LoRA later.
  • diffusion: DiffusionGemma (25B MoE, djev) and LLaDA2.x-mini (16B MoE) both need more than 8 GB of VRAM, and the shared-canvas recipe breaks question isolation (one canvas per question would fix it). K2-Horizon-0.9B-Uno is a decoding speed-up, not a reader.
  • dropped for now: modernbert-class encoders.
  • keep it simple: no cuda graphs / shared-prefix kernels / packed masks until a profile says so.

Next

  1. ColBERT: fine-tune / LoRA. Supported via sentence-transformers (MultiVectorEncoderTrainer, add_adapter + peft). Plan: Kev decision-v7 loader with train/dev split → custom listwise CE over MaxSim(option, state) (built-in losses rank the wrong direction) → full FT vs LoRA vs distillation from LFM-2.6B → fit T on dev → JevBench.
  2. More decoder backends. One checkpoints.py entry each; verify label rows = full logits and greedy output = a label (and diff remote code for third-party quants).
  3. Decoder LoRAs (future). Same data; CE on label logits at the answer position.
  4. Diffusion (parked, VRAM). 1-step mask-slot readout, but one canvas per question (batched, shared state prefix) to keep answers isolated.

See AGENTS.md for source notes and design decisions.

Stack-agnostic how-to: docs/writing-your-own-jev.md.

Phase 2

Use a vision-capable base so we can provide vision capabilities (state can be or contain an image). Eg. https://www.liquid.ai/blog/lfm2-5-vl-450m

Usage

just test && just check
just serve --kind lfm --size 2.6B         # also: --temperature, --query-length (colbert), --device
curl -s localhost:8009/v1/systemone -H 'content-type: application/json' -d '{
  "state": "I was charged twice. Please fix this ASAP.",
  "questions": {"billing": {"type": "noul", "instructions": "Is this ticket about billing?"}}}'

The first request pays CUDA warmup (~17 s on an RTX 5070 Laptop); after that, ~45 ms.

Benchmark (JevBench public set, per tier), with the server running in another terminal:

just bench lfm-2.6B-t1                     # results in runs/jevbench/lfm-2.6B-t1/