alt.freeweights.qwen / kev-0.6b-ONNX
From: onnx-community <huggingface.co/onnx-community>Newsgroups: alt.freeweights.qwenSubject:

kev-0.6b-ONNX

Date: 2026-11-15Commit: 5a82709Signed: 2DC28CC7B26A283B ✓

Text classification model. Onnx weights, 726 MB in all. Published by onnx-community under Apache-2.0.

qwen726MBkev-0.6b-ONNXonnxpermissive
FactsParamsnot statedSize726 MBFormatsonnxTasktext classificationLicenseApache-2.0From sourcepermissive
$ fw get onnx-community/kev-0.6b-ONNX
# manifest sha256 5b316247aa06… · 726 MB · 13 files
$ fw verify ./kev-0.6b-ONNX onnx-community/kev-0.6b-ONNX
From sourceHosted (signed)onnx-community/kev-0.6b-ONNXLast check: 2026-11-15 05:01 UTC

Get help: custom fine-tune or private deploy. We review your setup before we quote.

Quantized of Qwen3-0.6B-Base.

Works with

Runs with

Ranked by fit to this model (onnx), then by GitHub stars.

Convert with

Scan with

Overview

Size
726 MB
Weights
339 MB (smallest of 2 ONNX variants)
Parameters
not stated
Formats
onnx
Task
text classification
License
Apache-2.0 (permissive)
Files
13, each with a sha256
Publisher
onnx-community
Added
2026-11-15
Section
alt.freeweights.qwen
Lineage

Original release from the publisher.

Base model: Qwen/Qwen3-0.6B-Base

Where these bytes come from
Publisher at the pinned commit→You

Sources are tried in order. A file counts only when its size and sha256 match the manifest. Sources are checked when you ask for them, not on a timer.

Sources
BadgeHostLast checkResult
From sourcehuggingface.co2026-11-15 05:01 UTCpassed

Model card

From the publisher at commit 5a82709. Shown as plain text with links; images open at the publisher.

This is a Transformers.js-ready ONNX conversion of the original Hugging Face model jaredpalmer/kev-0.6b. The original model card content follows below.

Usage with Transformers.js#

Variants under onnx/: q4f16 (default) and q4 (4-bit MatMulNBits weights, block 32, embedding as GatherBlockQuantized, pointer head in fp32; q4f16 runs the rest of the graph in fp16 for WebGPU). The full-precision export is not published.

Kev is not a text generator and not a plain sequence classifier. One document (the state) and any number of typed questions are packed into a single sequence with five delimiter tokens; a block-causal mask lets every question see the state and itself only, and a pointer head scores each option's </opt> token against its question's <decide> token. The graph takes only input_ids and attention_mask (right padded) and derives segments, positions and the mask from the delimiter ids in-graph. Its logits output has one value per token: read the value at every option's </opt> position and softmax within the question. config.json carries the delimiters, ids and limits under kev.

Transformers.js resolves qwen3 to its text-generation class, which expects a KV-cache graph, so load this graph through the base PreTrainedModel class: unknown or unmapped types take the single-session encoder-only path, which feeds every graph input by name. It logs one warning ("assuming encoder-only architecture"), which is expected.

import { AutoTokenizer, PreTrainedModel, Tensor } from "@huggingface/transformers";

const repo = "onnx-community/kev-0.6b-ONNX";
const tokenizer = await AutoTokenizer.from_pretrained(repo);
const model = await PreTrainedModel.from_pretrained(repo, { dtype: "q4f16", device: "webgpu" });

// Caller text can never produce a delimiter: <|name|> -> <¦name¦> (kev.model.user_tokens)
const enc = (t) => Array.from(tokenizer(t.replace(/<\|([A-Za-z0-9_]+)\|>/g, "<¦$1¦>"), { add_special_tokens: false }).input_ids.data, Number);
const [STATE, Q, OPT, END, DECIDE] = ["<|fim_prefix|>", "<|fim_middle|>", "<|box_start|>", "<|box_end|>", "<|fim_suffix|>"].map((t) => enc(t)[0]);

// TypeSafe request: choice = criteria object (name -> description or null), noul = yes/no, score = ordered levels
const state = "I was charged twice for the same order and nobody answers my emails. I want my money back now.";
const questions = [
  { instr: "Which team should handle this ticket?", options: ["billing: Charges, refunds, invoices", "technical support: Bugs, outages, login problems", "sales", "account management"] },
  { instr: "Is the customer asking for a refund?", options: ["no", "yes"] },
  { instr: "How positive is the sentiment of this message?", options: ["very negative", "negative", "neutral", "positive", "very positive"] },
];

const tokens = [STATE, ...enc(state)];
const groups = questions.map((q) => {
  const spans = q.options.map((o) => [OPT, ...enc(o), END]);
  const branch = [Q, ...enc(q.instr), ...spans.flat(), DECIDE];
  const base = tokens.length;
  let cursor = 1 + enc(q.instr).length;
  const ends = spans.map((s) => { cursor += s.length; return base + cursor - 1; }); // index of each </opt>
  tokens.push(...branch);
  return ends;
});

const { logits } = await model({
  input_ids: new Tensor("int64", BigInt64Array.from(tokens, BigInt), [1, tokens.length]),
  attention_mask: new Tensor("int64", new BigInt64Array(tokens.length).fill(1n), [1, tokens.length]),
});
const scores = Array.from(logits.to("float32").data);
const softmax = (xs) => { const m = Math.max(...xs); const e = xs.map((x) => Math.exp(x - m)); const s = e.reduce((a, b) => a + b); return e.map((x) => x / s); };
const answers = groups.map((ends) => softmax(ends.map((i) => scores[i])));
// choice: argmax over the criteria keys; noul: answers[i][1] is p(yes); score: expected level = sum(i * p[i])

Limits: the state is cut to 8,192 tokens and each question branch (instruction, options, delimiters) plus the state must fit in 8,192 tokens (training used 384 and 1,024; longer inputs run but are untested). Choice questions take 1 to 255 options. Option descriptions render as name: description; structured state or instructions (objects, lists) render as indented key: value text as in the source kev.api.render.


Original model card#

Kev-0.6B#

Kev-0.6B is a decision model: one document (the state) and a set of typed questions in, a probability distribution per question out, in one forward pass. No text generation. It is a LoRA adapter (r=16) plus a pointer head on Qwen/Qwen3-0.6B-Base, and it serves TypeSafe's public /v1/systemone contract.

The small member of the Kev family. It is the best 0.6B checkpoint under a frozen, checksummed evaluation protocol: the 4B/8B recipe's data (decision-v7) at lr 1e-4, three seeds (transfer 0.613 / 0.605 / 0.620), after eight one-knob mutations and three seeds of the previous data found nothing better than 0.61. Out of domain it is a 0.6B model — use Kev-4B for accuracy; use this one where memory or latency rule the 4B out, and measure on your own data.

  • Hub: jaredpalmer/kev-0.6b (this repo; trial v7-06b/02-trial-2, seed 2 of 3)
  • Code, suites, results, and the full research log: github.com/jaredpalmer/kev — see PLAN.md, runs/leaderboard.md, and evals/v4/*/manifest.json

What changed since Kev-0.5B#

Kev-0.5BKev-0.6B (this)
backboneQwen2.5-0.5BQwen3-0.6B-Base
training records9,000 (six sources)12,576 (ten public sources + 896 policy minimal pairs + 1,680 records from 60 random rule structures)
none-of-the-aboveaugmentation fix only+ minimal pairs: same state rendered with the true option present and removed
in-distribution accuracy (decision-v4 dev)0.7120.801
out-of-domain accuracy (transfer-v4 dev)0.5610.620
none-option present, accuracy0.25 (transfer-v1)0.80
seeds behind the number13 (transfer 0.605–0.620)

Jev (typesafe-ai/jev via Vercel AI Gateway) on the same frozen development sets: 0.845 in-distribution, 0.857 out-of-domain. Per-source transfer accuracy for this checkpoint: QNLI 0.85, SciQ 0.93, TweetEval-offensive 0.69, PAWS 0.59, Emotion 0.49, MMLU 0.50; held-out policy structures near chance.

Known limits#

  • Out of domain it is a 0.6B model. Transfer accuracy is flat at ~0.60 across every hyperparameter we tried (eight one-knob mutations, three seeds). The same recipe at 4B reaches 0.72–0.75 and at 8B 0.74–0.77; capacity, not data, is the bottleneck at this size.
  • Held-out policy reasoning fails: on programmatic policy pairs whose rule structure was never trained, both-siblings-correct is 6–11% (Kev-4B 0.73, Jev 0.86).
  • Ordinal hedging: on 3-level Score questions with date arithmetic it collapses to the middle level.
  • Confident-error rate out of domain is 11% (≥0.9 confidence and wrong); raw ECE 0.09 in-domain, 0.15 out of domain. Probabilities are usable in-domain; treat them as advisory elsewhere.
  • Locked test, read once (runs/locked/kev-06b-v7-ungated/): in-distribution accuracy 0.808 (Brier 0.266, ECE 0.089), out-of-domain 0.642 (Brier 0.483, ECE 0.128, confident errors 7.9%). This partition will not be read again for this checkpoint.

Architecture#

Prefill-only causal LM with a block-causal attention mask: a shared state prefix, one isolated branch per question, and a pointer readout over option boundary tokens. Questions packed into one request get exactly the probabilities they would get alone (measured max delta 4e-6). Details in the repository README.

Training#

Frozen suite evals/v7/decision-v7 (manifest pins dataset and base-model revisions): 10,000 public records (1,000 per source), 896 policy minimal-pair records over nine template families, and 1,680 records from 60 randomly generated rule structures, two epochs, LoRA r=16 on attention and MLP projections at lr 1e-4, pointer head from scratch, cross-entropy on the option distribution, bf16 autocast with fp32 master weights on one H100 (~12 min). Augmentation: option permutation, none-of-the-above insertion, distractors, and none minimal pairs on 25% of Choice records. No Jev outputs were used for training.

Evaluation protocol#

Development partitions select models; a locked test partition exists and is read at most once per promoted candidate. Every number above carries the suite hash, code hashes, and git commit in result.json. Comparisons use a record-clustered paired bootstrap. See PLAN.md for the corrections we made to our own earlier claims.

Use#

from typesafe import TypeSafeClient   # any TypeSafe-compatible client
client = TypeSafeClient(api_key="local", base_url="http://127.0.0.1:8008", model="kev-latest")

Serve with uv run --extra serve python -m kev.serve --run jaredpalmer/kev-0.6b --port 8008 from the repository.

License#

Apache-2.0 for the adapter and head. The base model is Apache-2.0 (Qwen3). Training datasets carry their own licenses.

Files

13 files · 726 MBWeights 339 MB (smallest of 2 ONNX variants). Sizes and sha256 from the signed manifest.
Hide all 13 files with their sha256
FileSizesha256
.gitattributes1.64 KBb11547abff64e526968e0c2e43ad07af9c448db7c35d3bbd0716e955abec9437
README.md9.34 KBc1e475f5e8642ed37005c58b15b09f7e5a92d20a91ab37e96e4e683126c7d214
added_tokens.json707 Bc0284b582e14987fbd3d5a2cb2bd139084371ed9acbae488829a1c900833c680
config.json2.27 KB40ce1c875acf016ab7742ecdc45d3bad0fe8c51d3ead0ca2263ec5eb4e96f42d
merges.txt1.67 MB8831e4f1a044471340f7c0a83d7bd71306a5b867e95fd870f74d0c5308a904d5
onnx/model_q4.onnx1.25 MBdb4657bb2f14f073cb4d289260dfc50af31adc1260a04cb2fe17c4f03da0881a
onnx/model_q4.onnx_data375 MB20668ed757f5de294c254cab111910fbc37fb11addca8189e3f58b3c695f90f1
onnx/model_q4f16.onnx3.34 MB26e059ddd954efd9897772b098db10b9eeda9b873984dc1c73b32a9ce177c7c8
onnx/model_q4f16.onnx_data335 MB777335dbc052e2e02ec7591f6eefcfb29e2c28caf52075e492d226fc27e0824b
special_tokens_map.json616 B6676f091c8bc4d1b50146427cfde92073402866b87b6e39223227931b70083e9
tokenizer.json7.03 MBc0382117ea329cdf097041132f6d735924b697924d6f6fc3945713e96ce87539
tokenizer_config.json9.68 KB3c04ed3ca964ea2f6b2b5faf0dc4d31aec1cb1e8b4bcf63f402d295046b422b5
vocab.json2.78 MBca10d7e9fb3ed18575dd1e277a2579c16d108e32f27439684afa0e10b1440910
VersionsEach time the pinned upstream commit or file list changed in this repo. Newest first.
Upstream commitDateContents
5a827091b3 pinned now2026-11-15 05:01 UTC13 files · 726 MB

Use it

$ fw get onnx-community/kev-0.6b-ONNX
# manifest sha256 5b316247aa06… · 726 MB · 13 files
$ fw verify ./kev-0.6b-ONNX onnx-community/kev-0.6b-ONNX
fw.pyChecks the signature and every sha256, tries each source in order, resumes.
$ python3 fw.py get https://freeweights.allternit.com/manifests/onnx-community/kev-0.6b-ONNX.json --dir ./kev-0.6b-ONNX $ python3 fw.py verify ./kev-0.6b-ONNX ./onnx-community__kev-0.6b-ONNX.json
hfThe Hugging Face CLI with one setting. Same repo id.
$ HF_ENDPOINT=https://freeweights.allternit.com hf download onnx-community/kev-0.6b-ONNX --revision 5a827091b3d58fe4fdfc02a5a5b2ce364047d678 --local-dir ./kev-0.6b-ONNX

License

Name
Apache License 2.0
Id
Apache-2.0
Class
Permissive
Redistribution
yes
Listing
Hosted (signed)
Decided
License as declared by the publisher. No person read it. 2026-11-15
Text in
README.md
Text sha256
c1e475f5e8642ed37005c58b15b09f7e5a92d20a91ab37e96e4e683126c7d214
Terms gate
No extra terms beyond the license.

Read the license text

Licenses are checked against the license table. A custom license passes only after a person reads it.

Provenance

From: onnx-community <huggingface.co/onnx-community>Newsgroups: alt.freeweights.qwenSubject: kev-0.6b-ONNXDate: 2026-11-15Commit: 5a82709Signed: 2DC28CC7B26A283B ✓
Upstream
onnx-community/kev-0.6b-ONNX
Pinned commit
5a827091b3d58fe4fdfc02a5a5b2ce364047d678
Manifest
kev-0.6b-ONNX.json · .minisig
Manifest sha256
5b316247aa068cf243d33c770e66bebd2595ecec12a518a764da1b1b253c8a2b
Signature
minisign, Ed25519, key 2DC28CC7B26A283B
Created
2026-11-15 05:01 UTC
Generator
freeweights-manifest/0.1.0
Takedowns
None.

How to verify

$ curl -O https://freeweights.allternit.com/manifests/onnx-community/kev-0.6b-ONNX.json $ curl -O https://freeweights.allternit.com/manifests/onnx-community/kev-0.6b-ONNX.json.minisig $ minisign -Vm kev-0.6b-ONNX.json -P RWQ7KGqyx4zCLXtUFOqvfv8L3g+8fpKJ1FsuxPyOYMF+4KufbUxKq1Oq $ shasum -a 256 <file> # compare with the Files tab

A manifest whose signature fails must be rejected. A file whose size or sha256 does not match must be discarded. Verify a download

Model tree

Parent

Qwen/Qwen3-0.6B-Base · this model is a quantization of it

No model in the catalog names this one as its parent.

Get it
Download
$ HF_ENDPOINT=https://freeweights.allternit.com hf download onnx-community/kev-0.6b-ONNX
Open in Freeweights Studio

Pull, verify and run it in the Allternit app on Desktop, web or phone.

Signed manifest
minisign, key 2DC28CC7B26A283B. kev-0.6b-ONNX.json. Provenance. Takedown history: none.
From: BAAI <huggingface.co/BAAI>Subject: Aquila-VL-2B-llava-qwen
From: Perciqa <huggingface.co/Perciqa>Subject: Aurora-Code-1
From: BAAI <huggingface.co/BAAI>Subject: bge-reasoner-embed-qwen3-8b-0923
From: amazon <huggingface.co/amazon>Subject: BMOJOF-primed-HQwen3-8B-Instruct
From: nbeerbower <huggingface.co/nbeerbower>Subject: Bubba-Qwen3.6-27B-LoRA
From: bartowski <huggingface.co/bartowski>Subject: bytkim_Qwen3.8-27B-pi-GGUF