Документация

Kev-4B (Qwen3)

Предыдущее поколение (Qwen3). Этот чекпойнт оставлен как быстрый вариант для Apple Silicon (её бэкбон, работающий только на внимании, прогоняет упакованный прямой проход на полной скорости на MPS). Для точности и калибровки используйте Kev-4B (Qwen3.5): на закрытом тесте он набирает 0.832 против 0.806 вне домена у этой модели на тех же элементах. Веса: jaredpalmer/kev-4b@qwen3.

Kev-4B — это модель принятия решений: на входе один документ (состояние) и набор типизированных вопросов, на выходе — распределение вероятностей по каждому вопросу, за один прямой проход. Текст не генерируется. Это LoRA-адаптер (r=16) плюс указательная голова поверх Qwen/Qwen3-4B-Base; он реализует публичный контракт TypeSafe /v1/systemone.

Рекомендуемый Kev. Лучший чекпойнт на 4B по замороженному протоколу с контрольными суммами после ~40 контролируемых прогонов на 4B и первый Kev, отстающий от Jev менее чем на семь пунктов вне домена на тех же элементах. Тот же рецепт, прогнанный на трёх seed: transfer 0.773 / 0.790 / 0.770; этот чекпойнт — seed, выбранный по девелоперской партиции (никогда по закрытому тесту).

  • Hub: jaredpalmer/kev-4b, тег ревизии qwen3 (прогон v7-rc3/01-trial-1); основная ревизия репозитория теперь содержит чекпойнт Qwen3.5
  • Код, наборы, каждый прогон с хешами и парными бутстрэпами: github.com/jaredpalmer/kev — PLAN.md (полная запись по git-тегу research-archive-2026-09-24), runs/leaderboard.md

Результаты (одни и те же замороженные элементы для каждой строки)

Kev-0.5B (прототип) Kev-0.6B Kev-4B Jev
точность в распределении (decision-v4 dev, 1 200 вопр.) 0.712 0.801 0.854 0.845
точность вне домена (transfer-v4 dev, 560 вопр.) 0.561 0.620 0.790 0.857
Brier вне домена 0.50 0.536 0.328 0.211
уверенные ошибки вне домена (p ≥ 0.9 и неверно) – 10.8% 8.2% 3.7%
отложенные структуры политик, оба члена пары верны – 0.08 0.73 0.86
доля смен ответа при перестановке вариантов 0.21 0.07 0.06 0.00

Точность вне домена по источникам (Kev-4B / Jev): QNLI 0.89 / 0.93, SciQ 0.99 / 0.99, TweetEval-offensive 0.75 / 0.81, PAWS 0.72 / 0.79, MMLU 0.65 / 0.90, Emotion 0.66 / 0.59, deadline (арифметика дат с тремя уровнями) 0.53 / 0.93, (A and B) or not C 0.97 / 0.97, if A then not B else C 0.88 / 0.78.

Seed: три seed на decision-v7: transfer 0.773 / 0.790 / 0.770, отложенные пары правил 0.62 / 0.73 / 0.67 (Jev 0.86); этот чекпойнт — seed 1, выбранный по точности transfer на девелоперской партиции. Обучен на decision-v7 (10k публичных записей + 896 записей политик по девяти семействам шаблонов, включая четыре семейства порядковых порогов Score + 1 680 записей из 60 случайных структур правил с отрицанием в любом месте); элементы development/test побайтово идентичны v4, поэтому каждое число здесь сравнимо с более ранними чекпойнтами.

Закрытый тест, прочитан один раз (runs/locked/kev-4b-v7-preview-ungated/): в распределении 0.856 (Brier 0.211), вне домена 0.806 (Brier 0.294, уверенные ошибки 6.6%, отложенные пары 0.66). Эта партиция больше не будет читаться для этого чекпойнта.

Что мы узнали, строя его

  • Вне домена решает ёмкость. При равном бюджете публичных примеров и синтетики 0.6B → 4B даёт +14–19 п.п.; 4B → 8B — +1–7 п.п.
  • Дообучение разъедает способности базовой модели, и скорость обучения это контролирует. Базовая 4B в режиме zero-shot с буквенным считыванием набирает 0.688 на тех же элементах MMLU и 0.787 на PAWS; дефолтный рецепт (lr 2e-4) дообучился до 0.60–0.66 / 0.56–0.71. Снижение lr до 5e-5 возвращает большую часть, и это самое крупное улучшение рецепта из найденных нами; меньше целевых модулей LoRA и меньшие ранги помогают слабее.
  • Больше публичных обучающих данных повышает точность в распределении и понижает transfer на 4B (10k против 3.4k записей: −3 п.п.). Источники знаний с MCQ (ARC, OpenBookQA, CommonsenseQA) поднимают точность в распределении до 0.86, не сдвигая transfer.
  • Программные контрастивные пары политик обучают тренированным структурам правил (оба верны 0.85–1.0), но переносятся на невиданные структуры лишь частично (0.5–0.6 на 4B, 0.03–0.11 на 0.6B).

Известные ограничения

  • Рассуждения о политиках на отложенных данных (невиданные композиции правил, арифметика дат с льготными периодами) далеки от Jev.
  • Вопросы «продуктовой» формы без обучающего аналога не гарантированы: на примере из документации TypeSafe («два списания с моей карты» → Есть ли проблема с оплатой?) этот чекпойнт отвечает 0.48 (Kev-8B 0.95, Kev-0.6B 0.97), при этом верно выбирая причину возврата (неподходящий размер 0.53; Kev-8B 0.84; Kev-0.6B предпочитает «none of the above» 0.58). Измеряйте на своих входных данных.
  • Вероятности вне домена пригодны, но не калиброваны (сырой ECE 0.096); температура, подогнанная в распределении, не переносится.
  • 4B в fp32 требует ~16 ГБ; на 32 ГБ Mac используйте KEV_DTYPE=bf16. Задержка на H100 — ~45 мс на упакованный запрос; на M5 — несколько сотен мс.

Обучение

Замороженный набор evals/v4/decision-v4: 10 000 публичных записей (1 000 на источник, десять источников) плюс две программные ветви политик по 448 записей, две эпохи, LoRA r=16 на проекциях внимания и MLP, указательная голова с нуля, кросс-энтропия по распределению вариантов, lr 5e-5 (OneCycle), эффективный батч 8, bf16-автокаст с мастер-весами fp32, gradient checkpointing, одна H100 (~40 мин). Аугментация: перестановка вариантов, вставка «none of the above», дистракторы, минимальные пары с «none» на 25% записей Choice. Выходы Jev для обучения не использовались.

Протокол оценки

Девелоперские партиции выбирают модели; закрытую тестовую партицию читают не более одного раза на кандидата. Каждое число несёт хеш набора, хеши кода и git-коммит в result.json. См. PLAN.md по git-тегу research-archive-2026-09-24 («Evidence and corrections») о поправках, которые мы внесли в собственные прежние утверждения.

Использование

uv run --extra serve python -m kev.serve --run jaredpalmer/kev-4b --port 8008      # KEV_DTYPE=bf16 on a 32 GB Mac

Подойдёт любой совместимый с TypeSafe клиент: TypeSafeClient(api_key="local", base_url="http://127.0.0.1:8008", model="kev-latest").

Лицензия

Apache-2.0 для адаптера и головы; база Qwen3 — Apache-2.0; наборы данных несут собственные лицензии.