[{"data":1,"prerenderedAt":4},["ShallowReactive",2],{"readme:kev":3},"\u003Ch1>kev\u003C\u002Fh1>\n\u003Cp>Jev-inspired decision model. Typed questions in, calibrated probabilities out, one forward pass.\u003C\u002Fp>\n\u003Cp>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fjaredpalmer\u002Fkev\u002Factions\u002Fworkflows\u002Fci.yml\" rel=\"nofollow ugc noopener\">\u003Cimg alt=\"CI\" src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Factions\u002Fworkflow\u002Fstatus\u002Fjaredpalmer\u002Fkev\u002Fci.yml?style=for-the-badge&amp;labelColor=000000\" height=\"28\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fhuggingface.co\u002Fcollections\u002Fjaredpalmer\u002Fkev-6aad9d0ea49f2589665e07cd\" rel=\"nofollow ugc noopener\">\u003Cimg alt=\"Weights: kev-0.5b · 0.6b · 4b · 8b\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FWEIGHTS-0.5b%20%C2%B7%200.6b%20%C2%B7%204b%20%C2%B7%208b-0a0a0a.svg?style=for-the-badge&amp;labelColor=000000\" height=\"28\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fhuggingface.co\u002Fdatasets\u002Fjaredpalmer\u002Fkev-suites\" rel=\"nofollow ugc noopener\">\u003Cimg alt=\"Frozen eval suites\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FEVAL%20SUITES-frozen-0a0a0a.svg?style=for-the-badge&amp;labelColor=000000\" height=\"28\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fjaredpalmer\u002Fkev\u002Fblob\u002FHEAD\u002FPLAN.md\" rel=\"nofollow ugc noopener\">\u003Cimg alt=\"Research log\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FRESEARCH%20LOG-PLAN.md-0a0a0a.svg?style=for-the-badge&amp;labelColor=000000\" height=\"28\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fjaredpalmer\u002Fkev\u002Fblob\u002FHEAD\u002FLICENSE\" rel=\"nofollow ugc noopener\">\u003Cimg alt=\"License: Apache-2.0\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-Apache--2.0-0a0a0a.svg?style=for-the-badge&amp;labelColor=000000\" height=\"28\" \u002F>\u003C\u002Fa>\n\u003C\u002Fp>\u003Cp>\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fjaredpalmer\u002Fkev\u002FHEAD\u002Fdocs\u002Fplayground.png\" alt=\"kev playground\" \u002F>\u003C\u002Fp>\n\u003Cp>kev is a LoRA adapter and a small readout head on top of a Qwen base model (0.5B to 8B). It reads a document once and answers many typed questions about it in parallel, in a single prefill pass with no decoding. The document and every question are packed into one sequence; a block-causal mask lets each question see the document but never another question. A pointer head then scores each question's options against its decision token and applies softmax. Those probabilities are the output. The head is trained with cross-entropy against labelled outcomes, so the probabilities are learned rather than generated as text.\u003C\u002Fp>\n\u003Cp>The architecture follows the reconstruction of TypeSafe's Jev in \u003Ca href=\"https:\u002F\u002Farcherhume.com\u002Fposts\u002Fjevs-architecture-unmasked\" rel=\"nofollow ugc noopener\">Jev's Architecture Unmasked\u003C\u002Fa>. The API follows TypeSafe's \u003Ca href=\"https:\u002F\u002Fdocs.typesafe.ai\u002Fapi\" rel=\"nofollow ugc noopener\">System One\u003C\u002Fa> contract, so the official \u003Ccode>typesafe-sdk\u003C\u002Fcode> works against a local kev server with a \u003Ccode>base_url\u003C\u002Fcode> change.\u003C\u002Fp>\n\u003Ch2>Highlights\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>\u003Cstrong>Three question types.\u003C\u002Fstrong> \u003Ccode>noul\u003C\u002Fcode> (yes\u002Fno), \u003Ccode>choice\u003C\u002Fcode> (2–255 options), \u003Ccode>score\u003C\u002Fcode> (ordered levels). One shared readout.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>One pass, many answers.\u003C\u002Fstrong> The state is encoded once. Questions run as isolated branches under a block-causal mask.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Isolation is exact.\u003C\u002Fstrong> A question cannot see a sibling question. Packed and separate requests agree to \u003Ccode>4e-6\u003C\u002Fcode>.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Probabilities, not prose.\u003C\u002Fstrong> Trained with cross-entropy on labelled outcomes. Out of domain, \u003Ccode>kev-8b\u003C\u002Fcode> has Brier 0.34 and 8% confident errors on sources it never saw.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Drop-in API.\u003C\u002Fstrong> \u003Ccode>POST \u002Fv1\u002Fsystemone\u003C\u002Fcode> with TypeSafe's request and response shapes. Their SDK's quickstart runs unmodified.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>A family, measured the same way.\u003C\u002Fstrong> 0.5B, 0.6B, 4B and 8B checkpoints scored on frozen, checksummed suites with a locked test, against the real Jev on the same items. Out of domain: kev-4b 0.76, kev-8b 0.77, Jev 0.86.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Runs on a laptop; trains in the cloud.\u003C\u002Fstrong> \u003Ccode>kev-0.5b\u003C\u002Fcode> trains in ~1h45m on an Apple M5; the 4B\u002F8B recipes train in 40–70 min on one H100 via Modal and serve on a 32 GB Mac in bf16.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fjaredpalmer\u002Fkev\u002FHEAD\u002Fdocs\u002Fkev-family.png\" alt=\"kev family vs Jev on sources kev never trained on\" \u002F>\u003C\u002Fp>\n\u003Ch2>Installation\u003C\u002Fh2>\n\u003Cp>Requires Python 3.12+, \u003Ca href=\"https:\u002F\u002Fdocs.astral.sh\u002Fuv\u002F\" rel=\"nofollow ugc noopener\">uv\u003C\u002Fa>, and Node 20+ for the playground. Serving is tested on Apple Silicon (MPS); training and evaluation on CUDA (H100 via Modal) and MPS.\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-bash\">git clone https:\u002F\u002Fgithub.com\u002Fjaredpalmer\u002Fkev.git &amp;&amp; cd kev\nuv sync --extra serve\ncd playground &amp;&amp; npm install &amp;&amp; cd ..\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>Download the weights\u003C\u002Fh3>\n\u003Cp>All checkpoints are on the Hugging Face Hub in the \u003Ca href=\"https:\u002F\u002Fhuggingface.co\u002Fcollections\u002Fjaredpalmer\u002Fkev-6aad9d0ea49f2589665e07cd\" rel=\"nofollow ugc noopener\">kev collection\u003C\u002Fa>. \u003Ccode>--run\u003C\u002Fcode> accepts a Hub id; the base model downloads on first load. \u003Cstrong>\u003Ccode>kev-4b\u003C\u002Fcode> is the one to start with\u003C\u002Fstrong>: the best accuracy per byte, and it serves on a 32 GB Mac in bf16.\u003C\u002Fp>\n",1789861589697]