Documentação

Kev-4B (Qwen3)

Geração anterior (Qwen3). Este checkpoint é mantido como a opção rápida em Apple Silicon (o seu backbone apenas de atenção corre a passagem direta empacotada a plena velocidade em MPS). Para precisão e calibração usa o Kev-4B (Qwen3.5): no teste bloqueado obtém 0.832 vs 0.806 fora da distribuição contra este modelo nos mesmos itens. Pesos: jaredpalmer/kev-4b@qwen3.

O Kev-4B é um modelo de decisão: entra um documento (o estado) e um conjunto de perguntas tipadas, sai uma distribuição de probabilidade por pergunta, numa única passagem direta. Sem geração de texto. É um adaptador LoRA (r=16) mais uma cabeça de ponteiro sobre o Qwen/Qwen3-4B-Base, servindo o contrato público da API /v1/systemone da TypeSafe.

O Kev recomendado. O melhor checkpoint de 4B sob um protocolo congelado e com somas de verificação depois de ~40 ensaios controlados de 4B, e o primeiro Kev a menos de sete pontos do Jev fora da distribuição nos mesmos itens. A mesma receita corrida com três sementes: transfer 0.773 / 0.790 / 0.770; este checkpoint é a semente selecionada na partição de desenvolvimento (nunca no teste bloqueado).

  • Hub: jaredpalmer/kev-4b, tag de revisão qwen3 (ensaio v7-rc3/01-trial-1); a revisão principal do repositório contém agora o checkpoint Qwen3.5
  • Código, suites, cada ensaio com hashes e bootstraps emparelhados: github.com/jaredpalmer/kev — PLAN.md (registo completo na tag git research-archive-2026-09-24), runs/leaderboard.md

Resultados (os mesmos itens congelados em cada linha)

Kev-0.5B (protótipo) Kev-0.6B Kev-4B Jev
precisão em distribuição (decision-v4 dev, 1,200 p) 0.712 0.801 0.854 0.845
precisão fora da distribuição (transfer-v4 dev, 560 p) 0.561 0.620 0.790 0.857
Brier fora da distribuição 0.50 0.536 0.328 0.211
erros confiantes fora da distribuição (p ≥ 0.9 e errado) – 10.8% 8.2% 3.7%
estruturas de política reservadas, ambos os irmãos corretos – 0.08 0.73 0.86
taxa de inversão da ordem das opções 0.21 0.07 0.06 0.00

Precisão fora da distribuição por fonte (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 datas de 3 níveis) 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.

Sementes: três sementes em decision-v7: transfer 0.773 / 0.790 / 0.770, pares de regras reservados 0.62 / 0.73 / 0.67 (Jev 0.86); este checkpoint é a semente 1, selecionada pela precisão de transferência em desenvolvimento. Treinado em decision-v7 (10k registos públicos + 896 registos de política em nove famílias de templates, incluindo quatro famílias ordinais de limiar Score + 1,680 registos de 60 estruturas de regras aleatórias com negação em qualquer posição); os itens de desenvolvimento/teste são idênticos byte a byte aos da v4, por isso cada número aqui é comparável com checkpoints anteriores.

Teste bloqueado, lido uma vez (runs/locked/kev-4b-v7-preview-ungated/): em distribuição 0.856 (Brier 0.211), fora da distribuição 0.806 (Brier 0.294, erros confiantes 6.6%, pares reservados 0.66). Esta partição não voltará a ser lida para este checkpoint.

O que aprendemos a construí-lo

  • A capacidade domina fora da distribuição. Com exemplos públicos e orçamento sintético mantidos iguais, 0.6B → 4B é +14–19 pp; 4B → 8B é +1–7 pp.
  • O ajuste fino erode a capacidade da base, e a taxa de aprendizagem controla-o. A base de 4B, zero-shot com uma leitura por letras, obtém 0.688 nos mesmos itens MMLU e 0.787 em PAWS; a receita predefinida (lr 2e-4) treinou até 0.60–0.66 / 0.56–0.71. Baixar a lr para 5e-5 recupera a maior parte e é a maior melhoria de receita que encontrámos; menos módulos alvo de LoRA e ranks menores ajudam menos.
  • Mais dados de treino públicos aumentam a precisão em distribuição e baixam a transferência a 4B (10k vs 3.4k registos: −3 pp). Fontes de MCQ de conhecimento (ARC, OpenBookQA, CommonsenseQA) elevam a precisão em distribuição para 0.86 sem mexer na transferência.
  • Os pares de política contrastivos programáticos ensinam as estruturas de regras treinadas (ambos-corretos 0.85–1.0) mas transferem para estruturas não vistas apenas parcialmente (0.5–0.6 a 4B, 0.03–0.11 a 0.6B).

Limites conhecidos

  • O raciocínio sobre políticas reservadas (composições de regras não vistas, aritmética de datas com períodos de carência) está longe do Jev.
  • Perguntas com forma de produto sem análogo de treino não são garantidas: no exemplo da documentação da 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) e escolhe corretamente o motivo da devolução (tamanho errado 0.53; Kev-8B 0.84; Kev-0.6B prefere “nenhuma das anteriores” 0.58). Mede nas tuas próprias entradas.
  • As probabilidades fora da distribuição são utilizáveis mas não calibradas (ECE em bruto 0.096); uma temperatura ajustada em distribuição não se transfere.
  • O 4B em fp32 precisa de ~16 GB; num Mac de 32 GB usa KEV_DTYPE=bf16. A latência numa H100 é ~45 ms por pedido empacotado; num M5 várias centenas de ms.

Treino

Suite congelada evals/v4/decision-v4: 10,000 registos públicos (1,000 por fonte, dez fontes) mais dois braços de política programáticos de 448 registos, duas épocas, LoRA r=16 nas projeções de atenção e MLP, cabeça de ponteiro de raiz, entropia cruzada sobre a distribuição das opções, lr 5e-5 (OneCycle), lote efetivo 8, autocast bf16 com pesos mestres fp32, gradient checkpointing, uma H100 (~40 min). Aumento: permutação das opções, inserção de nenhuma-das-anteriores, distratores, pares mínimos de “nenhuma” em 25% dos registos Choice. Não foi usada nenhuma saída do Jev para o treino.

Protocolo de avaliação

As partições de desenvolvimento selecionam os modelos; a partição de teste bloqueada é lida no máximo uma vez por candidato. Cada número transporta o hash da suite, os hashes do código e o commit git em result.json. Vê o PLAN.md na tag git research-archive-2026-09-24 (“Evidence and corrections”) para as correções que fizemos às nossas próprias alegações anteriores.

Utilização

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

Qualquer cliente compatível com a TypeSafe funciona: TypeSafeClient(api_key="local", base_url="http://127.0.0.1:8008", model="kev-latest").

Licença

Apache-2.0 para o adaptador e a cabeça; a base Qwen3 é Apache-2.0; os conjuntos de dados têm as suas próprias licenças.