Documentación

Kev-8B (Qwen3)

Generación anterior (Qwen3). Este checkpoint se mantiene como la opción rápida en Apple Silicon (su backbone solo de atención ejecuta la pasada empaquetada a plena velocidad en MPS). Para precisión y calibración, usa Kev-9B: en el test bloqueado puntúa 0.837 frente a 0.780 fuera de dominio contra este modelo con los mismos elementos. Pesos: jaredpalmer/kev-8b.

Kev-8B es un modelo de decisión: un documento (el estado) y un conjunto de preguntas tipadas de entrada, una distribución de probabilidad por pregunta de salida, en una sola pasada hacia adelante. Sin generación de texto. Es un adaptador LoRA (r=16) más una cabeza de puntero sobre Qwen/Qwen3-8B-Base (revisión 49e3418f), que sirve el contrato público /v1/systemone de TypeSafe.

El Kev más preciso. El mejor checkpoint de cualquier tamaño bajo un protocolo congelado y con suma de comprobación: la mejor precisión en distribución, la mejor precisión fuera de dominio (0.796 en transfer-v4 dev, a seis puntos de Jev), el mejor razonamiento sobre reglas reservadas de cualquier Kev a 8B. La misma receta con dos semillas: 0.796 / 0.774; este checkpoint es la semilla seleccionada en la partición de desarrollo.

  • Hub: jaredpalmer/kev-8b (este repo; ensayo v7-final/00-trial-0)
  • Código, suites y cada ensayo con hashes y bootstraps emparejados: github.com/jaredpalmer/kev — PLAN.md (registro completo en la etiqueta de git research-archive-2026-09-24), runs/leaderboard.md

Resultados (los mismos elementos congelados en cada fila)

Kev-0.5B (prototipo) Kev-0.6B Kev-4B Kev-8B Jev
precisión en distribución (decision-v4 dev, 1,200 q) 0.712 0.801 0.854 0.863 0.845
precisión fuera de dominio (transfer-v4 dev, 560 q) 0.561 0.620 0.790 0.796 0.857
Brier fuera de dominio 0.50 0.536 0.328 0.337 0.211
errores con confianza fuera de dominio (p ≥ 0.9 y errónea) – 10.8% 8.2% 9.9% 3.7%
estructuras de política reservadas, ambos hermanos correctos – 0.08 0.73 0.69 0.86
tasa de cambio por orden de opciones 0.21 0.02 0.00 0.00 0.00

Precisión fuera de dominio por fuente (Kev-8B / Jev): QNLI 0.91 / 0.93, SciQ 1.00 / 0.99, TweetEval-offensive 0.79 / 0.81, PAWS 0.78 / 0.79, MMLU 0.70 / 0.90, Emotion 0.56 / 0.59, deadline (aritmética de fechas de 3 niveles) 0.60 / 0.93, (A and B) or not C 0.91 / 0.97, if A then not B else C 0.59 / 0.78.

Semillas: dos semillas en decision-v7: transfer 0.796 / 0.774, pares de reglas reservados 0.69 / 0.64 (Jev 0.86); este checkpoint es la semilla 0. Entrenado con decision-v7 (10k registros públicos + 896 registros de política sobre nueve familias de plantillas, incluidas cuatro familias de umbral Score ordinal + 1,680 registros de 60 estructuras de reglas aleatorias con negación en cualquier posición); los elementos de desarrollo/test son idénticos byte a byte a v4, así que cada número aquí es comparable con checkpoints anteriores.

Test bloqueado, leído una vez (runs/locked/kev-8b-v7-preview-ungated/): en distribución 0.870 (Brier 0.193), fuera de dominio 0.780 (Brier 0.327, errores con confianza 7.6%, pares reservados 0.62). Esta partición no se volverá a leer para este checkpoint.

Lo que aprendimos al construirlo

  • La capacidad domina fuera de dominio. Con los ejemplos públicos y el presupuesto sintético igualados, 0.6B → 4B es +14–19 pp; 4B → 8B es +1–7 pp.
  • El fine-tuning erosiona la capacidad base, y la tasa de aprendizaje lo controla. La base de 4B, zero-shot con lectura de letras, puntúa 0.688 en los mismos elementos MMLU y 0.787 en PAWS; la receta predeterminada (lr 2e-4) bajó a 0.60–0.66 / 0.56–0.71. Bajar la lr a 5e-5 recupera la mayor parte y es la mayor mejora de receta que encontramos; menos módulos objetivo de LoRA y rangos más pequeños ayudan menos.
  • Más datos públicos de entrenamiento suben la precisión en distribución y bajan la transferencia a 4B (10k frente a 3.4k registros: −3 pp). Las fuentes de MCQ de conocimiento (ARC, OpenBookQA, CommonsenseQA) suben la precisión en distribución a 0.86 sin mover la transferencia.
  • Los pares de política contrastivos programáticos enseñan las estructuras de reglas entrenadas (both-correct 0.85–1.0), pero transfieren a estructuras no vistas solo parcialmente (0.5–0.6 a 4B, 0.03–0.11 a 0.6B).

Límites conocidos

  • El razonamiento sobre políticas reservadas (composiciones de reglas no vistas, aritmética de fechas con periodos de gracia) está lejos de Jev.
  • Las preguntas con forma de producto sin análogo de entrenamiento no están garantizadas; mide con tus propias entradas.
  • Las probabilidades fuera de dominio son utilizables pero no están calibradas (ECE bruto 0.128); una temperatura ajustada en distribución no transfiere.
  • 8B fp32 necesita ~33 GB y no cabe en un Mac de 32 GB; KEV_DTYPE=bf16 (~17 GB) sí. El entrenamiento tardó ~70 min en una H100.

Entrenamiento

Suite congelada evals/v6/decision-v6 (bytes de desarrollo/test idénticos a v4): 13,000 registros públicos (1,000 por fuente: las diez fuentes de v4 más ARC-Challenge, OpenBookQA y CommonsenseQA) más dos brazos de política programáticos de 448 registros, dos épocas, LoRA r=16 sobre las proyecciones de atención y MLP, cabeza de puntero desde cero, entropía cruzada sobre la distribución de opciones, lr 5e-5 (OneCycle), lote efectivo 8, autocast bf16 con pesos maestros fp32, gradient checkpointing, una H100 (~70 min). Aumento: permutación de opciones, inserción de none-of-the-above, distractores, pares mínimos de none en el 25% de los registros Choice. No se usaron salidas de Jev para el entrenamiento.

Protocolo de evaluación

Las particiones de desarrollo seleccionan modelos; la partición de test bloqueada se lee como máximo una vez por candidato. Cada número lleva el hash de la suite, hashes del código y el commit de git en result.json. Véase PLAN.md en la etiqueta de git research-archive-2026-09-24 (“Evidence and corrections”) para las correcciones que hicimos a nuestras propias afirmaciones anteriores.

Uso

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

Cualquier cliente compatible con TypeSafe funciona: TypeSafeClient(api_key="local", base_url="http://127.0.0.1:8008", model="kev-latest").

Licencia

Apache-2.0 para el adaptador y la cabeza; la base Qwen3 es Apache-2.0; los conjuntos de datos llevan sus propias licencias.