Kev-4B (Qwen3)
Geração anterior (Qwen3). Este checkpoint é mantido como a opção rápida no Apple Silicon (seu backbone somente de atenção executa a passada empacotada em velocidade máxima no MPS). Para acurácia e calibração, use o Kev-4B (Qwen3.5): no teste bloqueado ele marca 0.832 contra 0.806 fora do domínio em relação a este modelo nos mesmos itens. Pesos:
jaredpalmer/kev-4b@qwen3.
O Kev-4B é um modelo de decisão: um documento (o estado) e um conjunto de perguntas tipadas na entrada, uma distribuição de probabilidade por pergunta na saída, em uma única passada direta. Sem geração de texto. É um adaptador LoRA (r=16) mais uma cabeça de ponteiro sobre Qwen/Qwen3-4B-Base, que atende o contrato público /v1/systemone da TypeSafe.
O Kev recomendado. O melhor checkpoint 4B sob um protocolo congelado e verificado por checksum depois de ~40 trials 4B controlados, e o primeiro Kev a ficar a sete pontos de Jev fora do domínio nos mesmos itens. Mesma receita executada em 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ãoqwen3(trialv7-rc3/01-trial-1); a revisão main do repositório agora contém o checkpoint Qwen3.5 - Código, suítes, cada trial com hashes e bootstraps pareados: github.com/jaredpalmer/kev —
PLAN.md(registro completo na tag gitresearch-archive-2026-09-24),runs/leaderboard.md
Resultados (os mesmos itens congelados para cada linha)
| Kev-0.5B (protótipo) | Kev-0.6B | Kev-4B | Jev | |
|---|---|---|---|---|
| acurácia dentro da distribuição (decision-v4 dev, 1,200 q) | 0.712 | 0.801 | 0.854 | 0.845 |
| acurácia fora do domínio (transfer-v4 dev, 560 q) | 0.561 | 0.620 | 0.790 | 0.857 |
| Brier fora do domínio | 0.50 | 0.536 | 0.328 | 0.211 |
| erros confiantes fora do domínio (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 de ordem de opções | 0.21 | 0.07 | 0.06 | 0.00 |
Acurácia fora do domínio 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 em 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 no decision-v7: transfer 0.773 / 0.790 / 0.770, pares de regras reservadas 0.62 / 0.73 / 0.67 (Jev 0.86); este checkpoint é a semente 1, selecionada pela acurácia de transferência no desenvolvimento. Treinado no decision-v7 (10k registros públicos + 896 registros de política em nove famílias de template, incl. quatro famílias ordinais de limiar de Score + 1,680 registros de 60 estruturas de regra aleatórias com negação em qualquer posição); os itens de desenvolvimento/teste são byte a byte idênticos aos da v4, então todo número aqui é comparável com checkpoints anteriores.
Teste bloqueado, lido uma vez (runs/locked/kev-4b-v7-preview-ungated/): dentro da distribuição 0.856 (Brier 0.211), fora do domínio 0.806 (Brier 0.294, erros confiantes 6.6%, pares reservados 0.66). Esta partição não será lida de novo para este checkpoint.
O que aprendemos ao construí-lo
- A capacidade domina fora do domínio. Com exemplos públicos e orçamento sintético iguais, 0.6B → 4B é +14–19 pp; 4B → 8B é +1–7 pp.
- O ajuste fino corrói a capacidade da base, e a taxa de aprendizado controla isso. A base 4B, zero-shot com uma leitura por letra, marca 0.688 nos mesmos itens de MMLU e 0.787 no PAWS; a receita padrão (lr 2e-4) treinou até 0.60–0.66 / 0.56–0.71. Baixar o lr para 5e-5 recupera a maior parte disso e é a maior melhoria de receita que encontramos; menos módulos-alvo de LoRA e ranks menores ajudam menos.
- Mais dados públicos de treinamento elevam a acurácia dentro da distribuição e reduzem a transferência em 4B (10k vs 3.4k registros: −3 pp). Fontes de MCQ de conhecimento (ARC, OpenBookQA, CommonsenseQA) elevam a acurácia dentro da distribuição para 0.86 sem mover a transferência.
- Pares de política contrastivos programáticos ensinam as estruturas de regra treinadas (ambos corretos 0.85–1.0), mas transferem para estruturas não vistas apenas parcialmente (0.5–0.6 em 4B, 0.03–0.11 em 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 de Jev.
- Perguntas em formato de produto, sem análogo de treinamento, não são garantidas: no exemplo dos documentos da TypeSafe (“duas cobranças no meu cartão” → Há um problema de cobrança?) este checkpoint responde 0.48 (Kev-8B 0.95, Kev-0.6B 0.97), embora escolha corretamente o motivo da devolução (tamanho errado 0.53; Kev-8B 0.84; Kev-0.6B prefere “nenhuma das opções acima” 0.58). Meça nas suas próprias entradas.
- As probabilidades fora do domínio são utilizáveis, mas não calibradas (ECE bruta 0.096); uma temperatura ajustada dentro do domínio não transfere.
- 4B em fp32 precisa de ~16 GB; em um Mac de 32 GB use
KEV_DTYPE=bf16. A latência em uma H100 é de ~45 ms por requisição empacotada; em um M5, várias centenas de ms.
Treinamento
Suíte congelada evals/v4/decision-v4: 10,000 registros públicos (1,000 por fonte, dez fontes) mais dois braços de política programáticos de 448 registros, duas épocas, LoRA r=16 nas projeções de atenção e MLP, cabeça de ponteiro do zero, entropia cruzada sobre a distribuição das opções, lr 5e-5 (OneCycle), lote efetivo 8, autocast bf16 com pesos mestres em fp32, gradient checkpointing, uma H100 (~40 min). Aumento: permutação de opções, inserção de none-of-the-above, distratores, pares mínimos de none em 25% dos registros de Choice. Nenhuma saída de Jev foi usada no treinamento.
Protocolo de avaliação
As partições de desenvolvimento selecionam modelos; a partição de teste bloqueada é lida no máximo uma vez por candidato. Todo número carrega o hash da suíte, os hashes do código e o commit do git em result.json. Veja o PLAN.md na tag git research-archive-2026-09-24 (“Evidence and corrections”) para as correções que fizemos às nossas próprias afirmações anteriores.
Uso
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 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 carregam suas próprias licenças.