Documentación

Kev-4B (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-4B (Qwen3.5): en el test bloqueado puntúa 0.832 frente a 0.806 fuera de dominio contra este modelo con los mismos elementos. Pesos: jaredpalmer/kev-4b@qwen3.

Kev-4B 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-4B-Base, que sirve el contrato público /v1/systemone de TypeSafe.

El Kev recomendado. El mejor checkpoint de 4B bajo un protocolo congelado y con suma de comprobación tras ~40 ensayos de 4B controlados, y el primer Kev a menos de siete puntos de Jev fuera de dominio con los mismos elementos. La misma receta ejecutada con tres semillas: transfer 0.773 / 0.790 / 0.770; este checkpoint es la semilla seleccionada en la partición de desarrollo (nunca en el test bloqueado).

  • Hub: jaredpalmer/kev-4b, etiqueta de revisión qwen3 (ensayo v7-rc3/01-trial-1); la revisión principal del repo ahora contiene el checkpoint Qwen3.5
  • 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 Jev
precisión en distribución (decision-v4 dev, 1,200 q) 0.712 0.801 0.854 0.845
precisión fuera de dominio (transfer-v4 dev, 560 q) 0.561 0.620 0.790 0.857
Brier fuera de dominio 0.50 0.536 0.328 0.211
errores con confianza fuera de dominio (p ≥ 0.9 y errónea) – 10.8% 8.2% 3.7%
estructuras de política reservadas, ambos hermanos correctos – 0.08 0.73 0.86
tasa de cambio por orden de opciones 0.21 0.07 0.06 0.00

Precisión fuera de dominio por fuente (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 (aritmética de fechas de 3 niveles) 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.

Semillas: tres semillas en decision-v7: transfer 0.773 / 0.790 / 0.770, pares de reglas reservados 0.62 / 0.73 / 0.67 (Jev 0.86); este checkpoint es la semilla 1, seleccionada por precisión de transferencia en desarrollo. 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-4b-v7-preview-ungated/): en distribución 0.856 (Brier 0.211), fuera de dominio 0.806 (Brier 0.294, errores con confianza 6.6%, pares reservados 0.66). 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: en el ejemplo de los docs de TypeSafe (“two charges on my card” → Is there a billing problem?) este checkpoint responde 0.48 (Kev-8B 0.95, Kev-0.6B 0.97) mientras elige correctamente el motivo de devolución (talla incorrecta 0.53; Kev-8B 0.84; Kev-0.6B prefiere “none of the above” 0.58). Mide con tus propias entradas.
  • Las probabilidades fuera de dominio son utilizables pero no están calibradas (ECE bruto 0.096); una temperatura ajustada en distribución no transfiere.
  • 4B fp32 necesita ~16 GB; en un Mac de 32 GB usa KEV_DTYPE=bf16. La latencia en una H100 es de ~45 ms por solicitud empaquetada; en un M5, varios cientos de ms.

Entrenamiento

Suite congelada evals/v4/decision-v4: 10,000 registros públicos (1,000 por fuente, diez fuentes) 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 (~40 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-4b --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.