Kev Model by Jared Palmer: Setup, Sizes & Benchmarks vs Jev

Kev is Jared Palmer's open, Jev-compatible System One model family (0.8B to 27B): how to run and fine-tune it, benchmarks vs Jev, and its limits.

Last updated: Sep 25, 2026

Kev is an open-source family of System One decision models by Jared Palmer. It is fine-tuned from Qwen base models and released under Apache 2.0, and it serves the same POST /v1/systemone API as TypeSafe Jev. You give it a state and typed questions, and it returns a probability for every option in one forward pass.

MakerJared Palmer
CheckpointsKev-0.8B, Kev-4B, Kev-9B, Kev-27B
Base modelsQwen3.5 Base (0.8B, 4B, 9B); Qwen3.8-27B (27B)
LicenseApache 2.0
Question typeschoice, noul, score
APIJev-compatible POST /v1/systemone; the TypeSafe SDK works unchanged
Runs onCUDA, ROCm, Apple Silicon (MLX)

Sources: Kev on GitHub and the Kev collection on Hugging Face. Figures below are the project's own measurements.

Which Kev checkpoint to use

CheckpointHugging FaceBase model
Kev-0.8Bjaredpalmer/kev-0.8bQwen3.5-0.8B-Base
Kev-4Bjaredpalmer/kev-4bQwen3.5-4B-Base
Kev-9Bjaredpalmer/kev-9bQwen3.5-9B-Base
Kev-27Bjaredpalmer/kev-27bQwen3.8-27B

The project lists hardware at both ends: Kev-0.8B runs on any Apple Silicon Mac or an NVIDIA L4. Kev-27B needs an 80 GB-class GPU (H100, H200 or B200) and has no Mac path.

Older checkpoints on Qwen3 (kev-0.6b, kev-8b, and kev-4b@qwen3) are still published.

Run Kev locally

Kev needs Python 3.12 or 3.13 and uv:

git clone https://github.com/jaredpalmer/kev.git && cd kev
uv sync --extra serve
uv run --extra serve python -m kev.serve --run jaredpalmer/kev-4b --port 8009

Then send a Jev-style request:

curl -s localhost:8009/v1/systemone -H 'content-type: application/json' -d '{
  "state": "Shoes arrived two weeks late and in the wrong size.",
  "model": "kev-latest",
  "questions": {
    "escalate": {"type": "noul", "instructions": "Urgent?"},
    "frustration": {"type": "score", "instructions": "How frustrated?",
                    "criteria": ["Calm", "Frustrated", "Very angry"]}
  }}'

Existing TypeSafe SDK code only needs a new base URL:

from typesafe_sdk import TypeSafeClient

client = TypeSafeClient(
    api_key="local",
    base_url="http://127.0.0.1:8009",
    model="kev-latest",
)

For a hosted endpoint, the repository includes a Modal deploy script that scales to zero when idle, at the cost of a cold start of about 35 seconds.

Kev benchmarks vs Jev

Accuracy on question sources that were not in training (development / test):

ModelAccuracyBrier score (lower is better)
Kev-0.8B0.648 / 0.6970.481 / 0.416
Kev-4B0.817 / 0.8380.269 / 0.242
Kev-9B0.822 / 0.8520.286 / 0.237
Kev-27B0.848 / 0.8960.236 / 0.164
Jev (hosted)0.857 / –0.211 / –

On knowledge-heavy questions the gap is wider: Kev-9B scores 0.74 on MMLU against Jev's 0.90.

Each checkpoint ships with a temperature fitted on held-out data. For Kev-9B it cuts calibration error from 0.106 to 0.042, and confident errors from 8.7% to 4.0%.

Fine-tune Kev on your own decisions

Kev is built to be fine-tuned. Training data is JSONL with a label on each question. Start from a released checkpoint with --init_from. The project reports that training from the raw base model scored 0.33 on its evaluation set, against 0.84 for the released model.

uv run python -m kev.train --data train.jsonl --base Qwen/Qwen3.5-4B-Base \
    --init_from jaredpalmer/kev-4b --epochs 2 --lr 2e-5 --batch 1 \
    --accum 8 --dtype bf16 --device cuda --out runs/mine

A kev-finetune agent skill can also collect your existing Jev questions and labels and run training on Modal. The project puts that at about $1 of H100 time.

Kev vs Laya

KevLaya
ArchitectureFine-tuned decoder LLM (Qwen)Encoder (ModernBERT, mmBERT) with decision heads
Size0.8B to 27B322M / 421M
Jev APIYesYes, through laya-serve
CPU servingNot the target; hundreds of ms on a MacSupported; see Laya on CPU
LanguagesNot statedEnglish, plus a 100+ language checkpoint
Best fitHighest accuracy when you have a GPULow latency and cost, including CPU-only servers

When not to use Kev

  • Knowledge questions. Kev decides from the text you give it; it is weaker than Jev when the answer depends on world knowledge.
  • Long documents. Training used states of up to 384 tokens. The server accepts 8,192 tokens, but accuracy drops on long inputs.
  • Order-sensitive setups. Changing the order of options can change the answer.
  • Tight latency on a Mac. On Apple Silicon, answers take hundreds of milliseconds, not tens.

FAQ

Is Kev a drop-in replacement for Jev?

For the request format, yes: it serves POST /v1/systemone and the TypeSafe SDK works unchanged. For accuracy, Kev-27B is close to Jev on the project's own tests, and the smaller checkpoints trade accuracy for speed.

Which Kev model should I start with?

Kev-4B is the default in the project's examples. Use Kev-0.8B for a Mac or small GPU, and Kev-9B or Kev-27B when accuracy matters more than cost.

Is Kev free for commercial use?

The code and weights are released under Apache 2.0. Also check the license of the Qwen base model you deploy.

Last verified against the Kev repository: September 25, 2026.