ドキュメント

Kev-0.8B

モデル概要

Kev-0.8B は意思決定モデルです。1 つの文書(状態)と、それについての型付きの質問群を読み、各質問に添えられた選択肢上の較正された確率分布を、一度のフォワードパスで、テキストを生成せずに返します。TypeSafe の公開 System One API(POST /v1/systemone)を実装しているので、TypeSafe SDK が変更なしに動きます。最小の Kev です: Qwen3.5-0.8B-Base 上の LoRA アダプタとポインタヘッドで、ノート PC か 4 GB の GPU で動きます。メモリやコストがより大きいサイズを排除し、タスクが訓練されたものに似ている場面に向けられています。域外では Kev-4B より目立って不正確です。このカードは Kev 1.0 のチェックポイントを記述しており、2026-09-24 に初めて公開されました。

モデルの詳細

開発 Jared Palmer(github.com/jaredpalmer/kev)
モデル種別 意思決定モデル: 因果言語モデルのバックボーンを prefill-only で走らせ、選択肢上のポインタヘッドを備える
バックボーン Qwen/Qwen3.5-0.8B-Base(リビジョン dc7cdfe2): 24 層、18 が Gated DeltaNet(線形注意)で 6 が完全注意。凍結
アダプタ LoRA、ランク 16、α 32、attention・MLP・DeltaNet の射影上(1,130 万パラメータ)
ヘッド ポインタヘッド: 2 つの射影が各選択肢の閉じトークンを質問の最終トークンに対して採点し、softmax が確率を与える
精度 fp32 重み上の bf16 autocast で訓練。bf16 で提供(アダプタは読み込み時にベースにマージ)。fp32 で評価
コンテキスト 最大 65,536 トークンの状態を提供し、質問ごとにさらに少なくとも 8,192 トークン。訓練の状態は最大 7,552 トークンでした。
検証済みコンテキスト長 8,192 トークン(「長文書」を参照)
較正 1 つの温度、T = 2.35。head.pt に保存され、読み込み時に適用される
言語 英語
ライセンス Apache-2.0(アダプタとヘッド)。ベースモデルは Apache-2.0
バージョン Kev 1.0: jaredpalmer/kev-0.8b の main、リビジョン 9a45d25e(2026-09-24 公開)
以前のバージョン Hub タグ night2-du-release と v7-base

入力。 状態(テキスト、またはラベル付きテキストとして描画された JSON オブジェクトか配列)と、任意の数の名前付き質問。各質問は 3 種のいずれかです:

種別 選択肢 出力
choice 1–255 の名前付き選択肢、それぞれ任意の説明付き 選択肢ごとの確率、最も可能性の高い選択肢、信頼度
score 1–255 の順序付き段階 段階ごとの確率、期待段階指数
noul はい/いいえ、任意の説明付き はいの確率

各質問は、共有された状態から続く自分の行として答えられるので、質問は互いに影響できません。状態は一度だけ計算され、キャッシュされます。

想定用途

  • Kev-4B には小さすぎるハードウェア(ノート PC、L4、4 GB の GPU)での、訓練ファミリーに近い型付きの決定(文書分類、ルーティング、述べられたルール上のポリシー検査)。
  • 訓練コストが重要になる場面での、ユーザー自身のラベルでのファインチューニングの出発点(kev.train --init_from jaredpalmer/kev-0.8b)。
  • より大きい Kev に移る前に、System One API に対してプロトタイピングする。

範囲外の用途

  • テキスト生成、チャット、要約、自由形式の質問応答。モデルは与えられた選択肢を採点するだけです。
  • ツール呼び出しのルーティング(ツールを呼ぶか、欠けたパラメータを尋ねるか、断るか): その When2Call 精度はチャンスを下回ります(「限界」を参照)。
  • 人に対する法的、医療、金融、雇用、または同様の帰結を伴う、人によるレビューなしの完全自動の決定。
  • 知識重視の質問、日付演算、65,536 トークンを超える状態、英語以外の言語。

使い方

Kev リポジトリで提供します。CUDA では、融合 DeltaNet カーネルと CUDA graphs を使って bf16 で動きます(L4 で十分)。Apple Silicon では、同じコマンドが自動で選ばれる MLX 経由で提供します。

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-0.8b --port 8008        # Kev 1.0 (this card)
uv run --extra serve python -m kev.serve --run jaredpalmer/kev-0.8b@v1.0 --port 8008   # the same weights, pinned
from typesafe_sdk import Choice, Noul, TypeSafeClient

client = TypeSafeClient(api_key="local", base_url="http://127.0.0.1:8008", model="kev-latest")
response = client.system_one(
    state="I was charged twice for order 1182. Please refund one of the charges.",
    questions={
        "team": Choice(instructions="Which team should handle this?",
                       criteria={"billing": "Charges and refunds", "shipping": "Deliveries", "returns": "Exchanges"}),
        "urgent": Noul(instructions="Does this need a reply today?"),
    },
)
print(response.choices["team"].choice, response.nouls["urgent"].noul)

較正された温度は既定で適用されます。KEV_TEMPERATURE=1.0 は生の確率を返します。KEV_DTYPE=fp32 は評価に使う正確な経路を選びます。65,536 トークンを超える状態は、そのトークン数を示す 422 で拒否されます。

訓練データ

段階 レコード 内容とラベル
ベースレシピ(decision-v7) 12,576 10 の公開分類データセットからの 10,000 レコード(各 1,000、このカードのメタデータに列挙)をそのままのラベルで。9 つのテンプレートファミリーにわたる生成ポリシー最小対 896。4 つの描画でランダムに生成したルール構造 60 件からのレコード 1,680。ラベルはコードが計算
日付と欠落した証拠 1,425 生成: 日付を含むポリシーケース 900(plain、日数文付き、または date_facts フィールド付き)。決め手の文を除き一様なターゲットにしたケース 255、そして無傷の対照 270
文書とスキル、1 段階 16,539 documents-v1 train: 5,219 の米国消費者金融苦情ナラティブ(CFPB、最大約 7k トークン)と 7,488 質問。2 つのオープンウェイトの teacher が消費者の申告と一致したところでラベルを保持。hard-v1 train: 7 つのスキルファミリー(長いポリシー、トレードオフ、確率、マルチホップ、日付と算術、提案回答の判定、欠落事実の棄権)のプログラム的にラベル付けされた 6,000 レコード、テンプレート 0–3。devtools-v1 train: CodeReviewer、CommitPackFT、FlakeFlagger、Aegis からの 5,320 レコードを各データセット自身のラベル付きで

2 つのファインチューニング段階は decision-v7 のレコードを 2,000 と 6,000 再生します。Jev(TypeSafe のホスト型意思決定モデル)の出力は使用していません。CodeReviewer と FlakeFlagger は Zenodo 由来、CFPB ナラティブは米国政府の著作物です。ソースごとのライセンスとリビジョンはスイートの manifest に記録されています。下の eval 専用スイート(breadth-v1、tasksource-heldout-v1、transfer-v4、longdoc-v1、そして devtools-v1 の When2Call とプロンプトインジェクションのソース)は決して訓練に入りません。

訓練手順

  1. ベースレシピ。 ベースから decision-v7 で 2 エポック: LoRA ランク 16、α 32。学習率 1e-4、one-cycle スケジュール。バッチ 8。bf16 autocast。シード 2。損失は各質問の選択肢上の交差エントロピーです。選択肢順序はシャッフルされ、「none of the above」選択肢とディストラクタがランダムに挿入され、choice レコードの 4 分の 1 は最小対も生みます(「none of the above」選択肢付きの質問を、正解選択肢がある状態と除いた状態で 1 回ずつ)。
  2. 日付と欠落した証拠。 段階 1 から 1 エポック、学習率 4e-5、2,000 の再生レコード付き。
  3. 文書とスキル。 段階 2 から 3 つの訓練セットを一緒に 1 エポック、学習率 2e-5、6,000 の再生レコード付き。バッチ 4 × 2 蓄積。状態は最大 7,552 トークン。勾配チェックポイント。シード 1。オプティマイザステップ 2,818。
  4. 較正。 1 つの温度、T = 2.35。段階 3 のトライアルの decision-v7 開発行(1,264 質問)で負の対数尤度を最小化します。これらは訓練コーパスのホールドアウト項目です。ホールドアウトデータセットでの再フィットを評価しましたが採用しませんでした(「較正」を参照)。

評価

方法論。 特に断りのない限り、すべての数値は出荷温度での fp32 評価経路です。開発分割を選択に使い、テスト分割はこのチェックポイントのために一度だけ読みました。transfer-v4 テストはロック済み(候補ごとに一度読む)で、事前に固定した水準に対して判定されました。ペア付き区間は、レコード全体をリサンプルする 95 % ブートストラップ(2,000 リサンプル)なので、状態を共有する質問は一緒に動きます。差はパーセンテージポイント(pp)です。Jev(TypeSafe のホスト型モデル、Vercel AI Gateway 経由で照会)は、同じ項目で読まれたところに示します。スイート:

  • breadth-v1: 5 領域(知識、言語、検索、ツール、芸術)の 14 のホールドアウト公開データセット。一度も訓練していない。
  • tasksource-heldout-v1: 公開マルチタスクコレクションの 24 のタスクファミリー全体。一度も訓練していない(ファミリー名は非公開)。
  • transfer-v4: 6 つの未訓練公開ソース(QNLI、SciQ、TweetEval-offensive、PAWS、MMLU、Emotion)からの分布外決定と、ホールドアウトのポリシー・ルール構造。
  • hard-v1: 上のスキルファミリー。テスト分割は訓練済みジェネレータのテンプレートをホールドアウトします。
  • devtools-v1: 6 つのライセンス確認済みソース(4 つ訓練、2 つ eval 専用)からの開発者ツール決定。
  • documents-v1 / documents-v2: CFPB 苦情ナラティブ。v2 は非公開のホールドアウトテストセット。
  • longdoc-v1: CUAD 商業契約と生成した合意バンドル。状態は 4k から 64k トークン。

「audited」と印付けられた主要パネルは、ラベル監査が不健全と判断した項目を除外します¹。どの除外も、比較の両側から同じ行を除きます。

ホールドアウトデータ(一度も訓練していない)。

パネル(質問数) Kev-0.8B Jev
ホールドアウト公開データセット、breadth-v1 開発、audited、10 データセット (2,475) 0.653 –
breadth-v1 開発、全 14 データセット (3,075) 0.597 0.757
breadth-v1 テスト、全 14 データセット (3,089) 0.586 0.757
breadth-v1 テスト、チャンス補正指数² [95 % CI] 23.3 [21.2, 25.9] 54.0 [51.2, 57.0]
ホールドアウトのタスクファミリー、tasksource-heldout-v1 開発、audited、17 ファミリー (1,993) 0.515 –
tasksource-heldout-v1 開発、全 24 ファミリー (2,788) 0.513 –
分布外、transfer-v4 開発 (656): 精度 / Brier 0.648 / 0.430 0.857 / 0.211
分布外、transfer-v4 ロック済みテスト (656): 精度 / Brier 0.697 / 0.397 –
transfer-v4 ロック済みテスト: ECE / ≤ 5 % 誤りでの被覆 0.045 / 0.274 –
MMLU-Pro、10 択(transfer-v9 開発) 0.230 0.840
答えられない項目を p ≥ 0.9 で答えた(低いほど良い) 0.00 0.09

訓練済みファミリー(ホールドアウト項目とテンプレート)。

パネル(質問数) Kev-0.8B Jev
documents-v1 開発 (920) / テスト (936) 0.842 / 0.851 0.868 / –
documents-v2、非公開ホールドアウトテスト (953) 0.848 –
hard-v1 開発 (1,083) / テスト (1,088) 0.594 / 0.665 0.777 / –
devtools-v1 開発、audited ソース (772) 0.633 –
devtools-v1 開発 (1,072) / テスト (1,071)、全ソース 0.602 / 0.637 0.713 / –
decision-v7 開発 (1,264) / ロック済みテスト (1,200) 0.827 / 0.838 0.845 / –
生成された決定のホールドアウト領域、ood-v2 (4,988) 0.661 –

Jev の devtools-v1 の値は全 1,074 開発質問に対するものです。Kev の行は、スイートの builder が 2 レコードに再利用した CodeReviewer id(2 質問)を除きます。

以前のバージョン比(タグ night2-du-release、それ自身の温度 2.41。登録済み基準、各テストを一度読む):

パネル Δ [95 % CI]
documents-v1 テスト +24.4 [+21.3, +27.6]
documents-v2 +23.2 [+19.9, +26.4]
hard-v1 テスト +26.9 [+23.4, +30.4]
devtools-v1 テスト +16.4 [+13.1, +19.4]
hard-v1 + devtools-v1 テスト、プール +21.7 [+19.5, +24.0]
transfer-v4 ロック済みテスト +1.2 [−1.1, +3.7]

長文書。

  • 検証済みコンテキスト長: 8,192 トークン、訓練長。16k バケットは許容差の外です: その下限は −8.5 pp で、−3 pp を下回るので、より長い長さは検証されません。
  • 読みの前に固定したルール: 検証済み長は、16,384 トークン以上から、それと 8,192 との間のすべてのバケットが許容差内にあるような最大バケットの公称サイズです。許容差内とは、8k バケット(6,553–7,618 トークンの状態、訓練長)からの CUAD 精度差が、同じ契約・反復・質問でペアにされ、95 % 下限が少なくとも −3 pp で、すべてのレコードが答えられていることです。16k バケットが失敗すれば、検証済み長は 8,192 トークンです。

公称状態長ごとの CUAD 精度、ECE、8k バケットからのペア差(longdoc-v1 開発):

公称状態長 CUAD 質問数 精度 ECE 8k との Δ、pp [95 % CI]
4k 443 0.779 0.128 –
8k 453 0.711 0.066 reference
16k 452 0.659 0.047 −5.2 [−8.5, −2.1]
32k 454 0.663 0.055 −6.0 [−9.5, −2.5]
64k 452 0.637 0.038 −7.9 [−11.8, −4.2]

出荷 T = 2.35 での ECE。Δ は、同じ契約について両方の長さで尋ねた 445–447 質問でペアにされています。4k バケットは異なる契約を持ち、ルールの参照ではありません。出所: runs/r28-readout/context.json(ラウンド 28 の登録済み読み出し、runs/r28-08b-r15-longdoc)。

較正(期待較正誤差、ECE、出荷 T = 2.35 で。低いほど良い):

パネル ECE
breadth-v1 開発、audited / 全 14 データセット 0.022 / 0.032
breadth-v1 テスト、全 14 データセット 0.042
tasksource-heldout-v1 開発、audited 0.096
transfer-v4 開発 / ロック済みテスト 0.049 / 0.045
hard-v1 開発 / テスト 0.112 / 0.125
devtools-v1 開発、audited 0.092
documents-v1 開発 / テスト 0.059 / 0.071
decision-v7 開発(フィット行) 0.033
ood-v2 0.123

出荷温度は訓練コーパスのホールドアウト項目でフィットされました。これはプロジェクトのルールでは新しいリリースにもう許されません。ホールドアウトデータセットの 648 質問(transfer-r3 の較正分割、8 ソース、および 200 MMLU-Pro 質問)での登録済み再フィットは T = 2.52(90 % ブートストラップ区間 [2.19, 2.83])を与えます。4,468 の audited な breadth-v1 と tasksource-heldout-v1 開発質問では、よりよく較正されています: ECE 0.037 対 0.048、Brier は 0.0020 [0.0014, 0.0025] 低い。訓練済みファミリーでは悪化し、それぞれ登録済み許容差 0.005 を超えます: hard-v1 ECE 0.124 対 0.112、devtools-v1(audited)0.099 対 0.092、documents-v1 0.078 対 0.059。したがって再フィットは資格を得られず、T = 2.35 が残ります。業務が Kev の訓練ファミリーよりホールドアウト公開データセットに似ているユーザーは、KEV_TEMPERATURE=2.52 でそれを提供できます。答えは T に依存しません。

その他の結果。

スイート Kev-0.8B Jev
日付演算、deadline ポリシー(transfer-v9 開発) 0.35 0.95
MMLU、4 択(transfer-v9 開発) 0.425 0.90
ホールドアウトのポリシー構造、最小対の両兄弟が正解(transfer-v4 開発) 0.422 –
When2Call、開発 / テスト(eval 専用ソース) 0.167 / 0.133 –
プロンプトインジェクション、開発(eval 専用ソース) 0.547 0.893
SemIf(著者作成の 144 決定。大きいモデルでは飽和に近く、報告のみ) 0.722 0.965
JevBench 公開項目、全 231 / hard tier 111(ECE) 0.636 / 0.360 (0.181) –

提供。 CUDA、bf16 で融合カーネルと CUDA graphs、L4 上。リクエストあたりのモデル時間(20 回の中央値)、新しい / 繰り返しの状態: 短い状態についての 6 問で 22.7 / 16.1 ms、2,200 トークンの状態についての 5 問で 108.6 / 32.3 ms。64 クライアントで毎秒 62.8 リクエスト。常駐 GPU メモリは 3.8 GB です。提供時の確率は、280 質問で fp32 評価経路から 0.017 以内にとどまり、答えの変化は 1 つです。

Apple Silicon(MLX、bf16、32 GB の M5。3 問、うち 1 つは 60 % の深さに植えられた事実について。状態は 1,024 トークンずつ prefill):

状態トークン 新しい状態 キャッシュ済み状態 MLX ピーク(1.5 GB の重み) プロセス占有 植えられた事実 (p)
8,192 1.4 s 74 ms 2.7 GB 5.3 GB right (0.68)
16,384 3.2 s 94 ms 3.0 GB 6.1 GB right (0.68)
32,768 8.0 s 134 ms 3.1 GB 6.3 GB right (0.70)
65,000 21.2 s 202 ms 3.8 GB 5.4 GB right (0.62)

同じリクエストに対する CPU 上の fp32 PyTorch と比べ、MLX の答えは 8k で最大 0.0076、16k トークンで 0.0052 異なり、答えの変化はありません。100 の短い状態の質問で、MLX 経路は fp32 評価経路から 0.020 以内にとどまり、答えの変化は 1 つです。

¹ audited パネルから除外: 4 つの breadth-v1 データセット(routerbench、その状態には尋ねられた情報が欠ける。cfcolor と humicroedit、どのシステムでもチャンス。chessbench、どのシステムでも床)。無効または回復不能なラベルの 7 つの tasksource-heldout-v1 ファミリー(名前は非公開)。状態がラベルを決めない 2 つの devtools-v1 タスク(flakeflagger、コミット変更種別)。

² コミュニティ Decision Index 0.2 のチャンス補正指数: データセットごとに (score − chance) / (1 − chance) を、各領域内で平均し、その後 100 × 5 領域の平均。Jev の指数は同じテスト項目の別の読みからのものです。

限界とトレードオフ

  • 域外では 1B 未満のモデルです。 transfer-v4 開発で Jev に 21 ポイント劣り、breadth-v1 指数で 31 ポイント劣ります。知識(MMLU-Pro 0.230)とパラフレーズは未訓練のベースに近いです。精度が重要なら Kev-4B を使ってください。
  • その利得は分布内です。 documents-v1、hard-v1、devtools-v1 の訓練分割は訓練データに入っています。分布外チェックである JevBench の公開 hard tier では、文書とスキルの段階が +2.7 pp [−1.8, +7.2] 動かしただけで、ゼロと区別できません。
  • ツール呼び出しのルーティングは悪化しました。 eval 専用ソースの When2Call は、開発で 0.260 から 0.167 に、テストで 0.233 から 0.133 に落ち、その 4 択で当てずっぽうの 4 分の 1 の率を下回りました。ツール呼び出しのルーティングには使わないでください。
  • 1 つの devtools-v1 結果は説明がつきません。 FlakeFlagger は開発で 0.500 → 0.520 ですが、テストで 0.507 → 0.813(分割あたり 150 問)。説明がつかないものとして扱い、スキルとは見なさないでください。
  • 日付演算は最も弱いファミリーです: deadline ポリシー質問で 0.35、Jev の 0.95 に対して。KEV_DATE_FACTS=1 前処理器は、このモデルより大きいモデルをより助けます。
  • ルール合成は弱いです: ホールドアウトのポリシー最小対の両兄弟が正しいのは 0.422 の割合です。
  • 較正は 1 つの分布内温度です(「較正」を参照)。信頼度を並べ替えられません: 域外の ≤ 5 % 誤りでの被覆は開発で 0.145、Jev の 0.70 に対してなので、厳しい誤り予算ではほとんど決定を自動化できません。
  • 未訓練の長さ。 訓練の状態は最大 7,552 トークンでした。より長い状態は 65,536 トークンまで提供されます。精度がどこまで保つかは上の検証済みコンテキスト長です。
  • 選択肢順序 は答えを変えうる。質問独立性はこれを防ぎません。

バイアス、リスク、倫理的考慮

  • 較正された確率は根拠のない信頼を生みうる。温度は訓練分布の開発行でフィットされ、すべての業務に転移するわけではありません。しきい値を設定する前に、自分のデータのラベル付きサンプルで精度と較正を測定し、そこで温度を再フィットしてください(python -m kev.calibrate)。
  • 精度と較正はドメイン変化の下でずれ、このサイズではより大きいサイズより大きくずれます。上の数値に頼るのではなく、本番の誤り率を監視してください。
  • 人についての重大な自動決定に、人によるレビューなしで使わないでください。ベースモデルと訓練データ(他のモデルが生成したラベルを含む)のバイアスは測定されていません。
  • 状態は個人データや機密データを含みうる。自己ホストは入力を自分のハードウェアに保ちます。サーバーは KEV_API_KEY を設定しない限り開いているので、自分のアクセス制御とデータ取り扱いポリシーを適用してください。

計算

  • ベースレシピ: NVIDIA H100 1 台で約 20 分。日付段階: 9 分。
  • 文書とスキルの段階: NVIDIA H200 1 台で 52 分(ピーク 23.9 GB)。
  • 評価と提供のチェック: Modal 上の単一 H100 / H200 / L4 GPU。MLX 測定は Apple M5。

来歴と再現性

  • コード、スイート、評価レポート: github.com/jaredpalmer/kev。リリース数値: runs/release/kev-08b-r15.json(scripts/release_numbers.py --release kev-08b-r15)、ロック済み読み runs/locked/kev-08b-r15-ungated/、2026-09-30 のファミリー読み runs/fam-08b-breadth/、runs/fam-08b-breadthtest/、runs/fam-breadth-test-report/、較正再フィット runs/r28-readout/round28.json、提供 runs/serve-08b-l4/、runs/mlx-long-states/、runs/mlx-full-0.8b/。
  • 段階: ベーストライアル q35-08b/02-trial-2(タグ v7-base)。日付 night2-08b-du2/00-trial-0(タグ night2-du-release)。文書とスキルのラウンド 15 r15-08b/00-trial-0(experiments/round15/joint.json、ルール experiments/rounds/r15.json)。較正再フィット: ラウンド 28 のアーム 08b-r15(experiments/rounds/r28.json)。
  • リリース済み重み: Hub リビジョン 9a45d25e。アダプタ sha256 9b908623…、head.pt sha256 f400bd12…(T = 2.3511)。
  • リリース履歴: 2026-09-24 にラウンド 15 の確認済み候補として公開。Kev 1.0 に変更なく含まれました。どのように選ばれたかの記録(不健全として廃止されたスイート、scienthoon、WANLI-v2、TypeSafe を含む)は、Hub リビジョン 9a45d25e の README と git タグ research-archive-2026-09-24 の PLAN.md です。

引用

@misc{palmer2026kev08b,
  title        = {Kev-0.8B: a calibrated decision model on Qwen3.5-0.8B},
  author       = {Palmer, Jared},
  year         = {2026},
  howpublished = {\url{https://huggingface.co/jaredpalmer/kev-0.8b}},
  note         = {Kev 1.0}
}

連絡先

質問と issue: github.com/jaredpalmer/kev/issues。