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ãoqwen3(ensaiov7-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 gitresearch-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.