Kev-4B
Resumo do modelo
O Kev-4B é um modelo de decisão. Lê um documento (o estado) e um conjunto de perguntas tipadas sobre ele, e devolve uma distribuição de probabilidade calibrada sobre as opções fornecidas com cada pergunta, numa única passagem direta e sem gerar texto. Destina-se a programadores que classificam, encaminham, triam ou verificam documentos e que precisam de probabilidades que possam ser usadas com limiares, por exemplo para enviar casos incertos para revisão humana. Implementa a API pública System One da TypeSafe (POST /v1/systemone), por isso o SDK da TypeSafe funciona com ele sem alterações. É um adaptador LoRA e uma cabeça de ponteiro sobre o Qwen3.5-4B-Base, suficientemente pequeno para uma GPU de 24 GB ou um Mac Apple Silicon de 32 GB. Esta ficha descreve o checkpoint no Kev 1.0, publicado pela primeira vez em 2026-09-24.
Detalhes do modelo
| Programador | Jared Palmer (github.com/jaredpalmer/kev) |
| Tipo de modelo | Modelo de decisão: um backbone de modelo de linguagem causal corrido apenas em pré-preenchimento, com uma cabeça de ponteiro sobre as opções |
| Backbone | Qwen/Qwen3.5-4B-Base (revisão 1001bb4d): 32 camadas, 24 Gated DeltaNet (atenção linear) e 8 de atenção completa, tamanho oculto 2,560; congelado |
| Adaptador | LoRA, rank 16, α 32, nas projeções de atenção, MLP e DeltaNet (33.8M parâmetros) |
| Cabeça | Cabeça de ponteiro: duas projeções avaliam o token de fecho de cada opção contra o token final da pergunta; uma softmax dá as probabilidades |
| Precisão | Treinado com autocast bf16 sobre pesos fp32; servido em bf16 (o adaptador é fundido na base no momento do carregamento); avaliado em fp32 |
| Contexto | São servidos estados até 65,536 tokens, mais pelo menos 8,192 tokens por pergunta. Os estados de treino eram no máximo 7,552 tokens. |
| Comprimento de contexto validado | 8,192 tokens (vê Documentos longos) |
| Calibração | Uma temperatura, T = 2.41, guardada em head.pt e aplicada no momento do carregamento |
| Idiomas | Inglês |
| Licença | Apache-2.0 (adaptador e cabeça); o modelo base é Apache-2.0 |
| Versão | Kev 1.0: main de jaredpalmer/kev-4b, revisão 139fdd94 (publicado em 2026-09-24) |
| Versões anteriores | Tags do Hub r8-documents-release (apenas a etapa de documentos), night2-du-release, v7-base e qwen3 (a geração Qwen3-4B) |
Entrada. Um estado (texto, ou um objeto ou array JSON renderizado como texto etiquetado) e qualquer número de perguntas nomeadas, cada uma de um de três tipos:
| Tipo | Opções | Saída |
|---|---|---|
choice |
1–255 opções nomeadas, cada uma com uma descrição opcional | uma probabilidade por opção, a opção mais provável e uma confiança |
score |
1–255 níveis ordenados | uma probabilidade por nível e o índice de nível esperado |
noul |
sim / não, com descrições opcionais | a probabilidade de sim |
Cada pergunta é respondida como a sua própria linha que continua a partir do estado partilhado, por isso as perguntas não se podem influenciar mutuamente; o estado é calculado uma vez e colocado em cache.
Utilizações previstas
- Decisões tipadas sobre documentos de alguns milhares de tokens: classificação, encaminhamento, triagem, escolhas de extração, verificações de política e elegibilidade, e avaliação de uma resposta proposta contra critérios indicados.
- Fluxos de trabalho que agem com base na confiança: automatizar os casos com confiança e pôr o resto em fila, com os limiares fixados numa amostra etiquetada da carga de trabalho do próprio utilizador.
- Um substituto auto-alojado e imediato para um endpoint System One em hardware modesto, e um ponto de partida para ajuste fino nas próprias etiquetas do utilizador (
kev.train --init_from jaredpalmer/kev-4b).
Utilizações fora do âmbito
- Geração de texto, conversa, resumo ou resposta a perguntas abertas. O modelo apenas pontua as opções que lhe são dadas.
- Decisões totalmente automatizadas com consequências legais, médicas, financeiras, laborais ou semelhantes para pessoas, sem revisão humana.
- Perguntas cuja resposta depende de factos que não estão no estado e não são conhecimento geral, e exames com muito conhecimento (vê Limitações).
- Aritmética de datas com precisão ao dia sem o pré-processador
KEV_DATE_FACTS=1, estados com mais de 65,536 tokens e idiomas diferentes do inglês.
Como usar
Serve-o com o repositório do Kev. Em CUDA corre em bf16 com kernels DeltaNet fundidos e grafos CUDA (uma L40S, uma H100 ou qualquer GPU com cerca de 16 GB livres); em Apple Silicon o mesmo comando serve-o através do MLX, escolhido automaticamente.
git clone https://github.com/jaredpalmer/kev.git && cd kev && uv sync --extra serve
uv run --extra serve python -m kev.serve --run jaredpalmer/kev-4b --port 8008 # Kev 1.0 (this card)
uv run --extra serve python -m kev.serve --run jaredpalmer/kev-4b@v1.0 --port 8008 # the same weights, pinned
from typesafe_sdk import Choice, Noul, TypeSafeClient
client = TypeSafeClient(api_key="local", base_url="http://127.0.0.1:8008", model="kev-latest")
response = client.system_one(
state="I was charged twice for order 1182. Please refund one of the charges.",
questions={
"team": Choice(instructions="Which team should handle this?",
criteria={"billing": "Charges and refunds", "shipping": "Deliveries", "returns": "Exchanges"}),
"urgent": Noul(instructions="Does this need a reply today?"),
},
)
print(response.choices["team"].choice, response.nouls["urgent"].noul)
A temperatura calibrada é aplicada por predefinição; KEV_TEMPERATURE=1.0 devolve as probabilidades em bruto. KEV_DTYPE=fp32 seleciona o caminho exato usado para avaliação. KEV_DATE_FACTS=1 acrescenta o número de dias entre cada par de datas encontradas no estado, que o modelo foi treinado para usar. Um estado com mais de 65,536 tokens é recusado com um 422 que indica a sua contagem de tokens.
Dados de treino
| Etapa | Registos | Conteúdo e etiquetas |
|---|---|---|
Receita base (decision-v7) |
12,576 | 10,000 registos de dez conjuntos de dados públicos de classificação (1,000 cada, listados nos metadados desta ficha) com as suas etiquetas nativas; 896 pares mínimos de política gerados em nove famílias de templates; 1,680 registos de 60 estruturas de regras geradas aleatoriamente em quatro renderizações; etiquetas calculadas por código |
| Datas e prova em falta | 1,425 | Gerados: 900 casos de política com datas (simples, com uma frase de contagem de dias ou com um campo date_facts); 255 casos com a frase decisiva removida e um alvo uniforme, mais 270 controlos intactos |
Documentos reais (documents-v1 train) |
5,219 | Narrativas de reclamações de finanças pessoais dos EUA (CFPB, até cerca de 7k tokens) com 7,488 perguntas (produto, problema principal); etiquetas mantidas onde dois professores de pesos abertos concordaram com a própria participação do consumidor |
Skills (hard-v1 train) |
6,000 | Registos etiquetados programaticamente em sete famílias: documentos de política longos com exceções e sublimites, compromissos sob prioridades indicadas, probabilidade e valor esperado, raciocínio de vários saltos, datas e aritmética, avaliação de uma resposta proposta e abstenção por falta de dados; templates de gerador 0–3 |
Ferramentas de desenvolvimento (devtools-v1 train) |
5,320 | CodeReviewer (se um revisor comentou um bloco), CommitPackFT (tipo de commit), FlakeFlagger (testes instáveis) e Aegis (segurança de conteúdo), cada um com as etiquetas próprias do seu conjunto de dados |
Cada etapa de ajuste fino após a primeira repete registos de decision-v7 (2,000, 2,000 e 4,000). Não foi usada nenhuma saída do Jev (o modelo de decisão alojado da TypeSafe). O CodeReviewer e o FlakeFlagger vêm do Zenodo; as narrativas do CFPB são obras do governo dos EUA; as licenças e revisões por fonte ficam registadas nos manifestos das suites. As suites apenas de avaliação abaixo (breadth-v1, tasksource-heldout-v1, transfer-v4, longdoc-v1, e as fontes When2Call e de injeção de prompt do devtools-v1) nunca entram no treino.
Procedimento de treino
- Receita base. Duas épocas em
decision-v7a partir da base: LoRA de rank 16, α 32; taxa de aprendizagem 5e-5, agenda de ciclo único; lote efetivo 8 (4 × 2 de acumulação); autocast bf16, gradient checkpointing; semente 2. A perda é a entropia cruzada sobre as opções de cada pergunta. A ordem das opções é baralhada, opções “nenhuma das anteriores” e distratores são inseridos ao acaso, e um quarto dos registos choice também produz um par mínimo (a pergunta com uma opção “nenhuma das anteriores”, uma vez com a opção correta presente e outra com ela removida). - Datas e prova em falta. Uma época a partir da etapa 1 com taxa de aprendizagem 2e-5 e 2,000 registos repetidos.
- Documentos reais. Uma época a partir da etapa 2 no
documents-v1train com taxa de aprendizagem 2e-5 e 2,000 registos repetidos; lote 2 × 4 de acumulação; estados de no máximo 7,552 tokens. - Skills. Uma época a partir da etapa 3 no
hard-v1e nodevtools-v1train em conjunto, com taxa de aprendizagem 2e-5 e 4,000 registos repetidos; lote 2 × 4 de acumulação; estados de no máximo 7,552 tokens; semente 1; 1,915 passos do otimizador. - Calibração. Uma única temperatura, T = 2.41, que minimiza a log-verosimilhança negativa nas linhas de desenvolvimento do
decision-v7do ensaio da etapa 4 (1,264 perguntas). Estes são itens reservados de um corpus de treino. Um reajuste em conjuntos de dados reservados foi avaliado e não adotado (vê Calibração).
Avaliação
Metodologia. Cada número é o caminho de avaliação em fp32 à temperatura de distribuição, salvo indicação em contrário. As partições de desenvolvimento foram usadas para seleção; as partições de teste foram lidas uma vez para este checkpoint; o teste transfer-v4 está bloqueado (lido uma vez por candidato) e foi julgado contra um nível fixado de antemão. Os intervalos emparelhados são bootstraps de 95 % que reamostram registos inteiros (2,000 reamostragens), por isso as perguntas que partilham um estado movem-se em conjunto. As diferenças são em pontos percentuais (pp). O Jev (o modelo alojado da TypeSafe, consultado através do Vercel AI Gateway) é mostrado onde foi lido nos mesmos itens. As suites:
- breadth-v1: 14 conjuntos de dados públicos reservados em cinco áreas (conhecimento, linguagem, recuperação, ferramentas, artes), nunca treinados.
- tasksource-heldout-v1: 24 famílias de tarefas inteiras de uma coleção multitarefa pública, nunca treinadas (nomes das famílias privados).
- transfer-v4: decisões fora da distribuição de seis fontes públicas nunca treinadas (QNLI, SciQ, TweetEval-offensive, PAWS, MMLU, Emotion) mais estruturas de política e regras reservadas.
- hard-v1: as famílias de skills acima; a partição de teste reserva templates de geradores treinados.
- devtools-v1: decisões de ferramentas de desenvolvimento de seis fontes com licenças verificadas (quatro treinadas, duas apenas de avaliação).
- documents-v1 / documents-v2: narrativas de reclamações do CFPB; a v2 é um conjunto de teste reservado privado.
- longdoc-v1: contratos comerciais CUAD e conjuntos de acordos gerados, com estados de 4k a 64k tokens.
Os painéis de destaque marcados como “auditados” excluem itens que uma auditoria de etiquetas considerou sem fundamento¹; cada exclusão remove as mesmas linhas dos dois lados de uma comparação.
Dados reservados (nunca treinados).
| Painel (perguntas) | Kev-4B | Jev |
|---|---|---|
| Conjuntos de dados públicos reservados, breadth-v1 development, auditados, 10 conjuntos (2,475) | 0.768 | – |
| breadth-v1 development, todos os 14 conjuntos (3,075) | 0.696 | 0.757 |
| breadth-v1 test, todos os 14 conjuntos (3,089) | 0.690 | 0.757 |
| breadth-v1 test, índice corrigido para o acaso² [IC 95 %] | 38.0 [35.5, 41.3] | 54.0 [51.2, 57.0] |
| Famílias de tarefas reservadas, tasksource-heldout-v1 development, auditadas, 17 famílias (1,993) | 0.677 | – |
| tasksource-heldout-v1 development, todas as 24 famílias (2,788) | 0.632 | – |
| Fora da distribuição, transfer-v4 development (656): precisão / Brier | 0.817 / 0.243 | 0.857 / 0.211 |
| Fora da distribuição, transfer-v4 test bloqueado (656): precisão / Brier | 0.838 / 0.224 | – |
| transfer-v4 test bloqueado: ECE / erros confiantes (p ≥ 0.9 e errado) / cobertura a ≤ 5 % de erro | 0.017 / 1.5% / 0.701 | – |
| MMLU-Pro, 10 opções (transfer-v9 development) | 0.565 | 0.840 |
| Itens sem resposta possível respondidos com p ≥ 0.9 (mais baixo é melhor) | 0.00 | 0.09 |
Famílias treinadas (itens e templates reservados).
| Painel (perguntas) | Kev-4B | Jev |
|---|---|---|
| hard-v1 development (1,083) / test (1,088) | 0.786 / 0.803 | 0.777 / – |
| devtools-v1 development, fontes auditadas (772) | 0.780 | – |
| devtools-v1 development (1,072) / test (1,071), todas as fontes | 0.739 / 0.756 | 0.713 / – |
| documents-v1 development (920) / test (936) | 0.891 / 0.903 | 0.868 / – |
| decision-v7 development (1,264) / locked test (1,200) | 0.873 / 0.865 | 0.845 / – |
| Domínios reservados de decisões geradas, ood-v2 (4,988) | 0.864 | – |
O valor devtools-v1 do Jev é sobre todas as 1,074 perguntas de desenvolvimento; as linhas do Kev excluem um id do CodeReviewer que o construtor da suite reutilizou em dois registos (2 perguntas).
Contra a versão anterior (o checkpoint da etapa de documentos, tag r8-documents-release, à sua própria temperatura 2.96; critérios registados, cada teste lido uma vez):
| Painel | Δ [IC 95 %] |
|---|---|
| hard-v1 test | +26.3 [+23.3, +29.5] |
| devtools-v1 test | +13.4 [+10.1, +16.1] |
| hard-v1 + devtools-v1 test, agrupados | +19.9 [+17.8, +21.8] |
| documents-v1 development | −0.3 [−1.5, +0.9] |
| transfer-v4 locked test | +0.3 [−1.8, +2.3] |
Documentos longos.
- Comprimento de contexto validado: 8,192 tokens, o comprimento treinado. O intervalo de 16k está fora da tolerância: o seu limite inferior é −3.4 pp, abaixo de −3 pp, por isso nenhum comprimento maior é validado.
- Regra, fixada antes da leitura: o comprimento validado é o tamanho nominal do maior intervalo a partir de 16,384 tokens tal que ele, e cada intervalo entre ele e 8,192, está dentro da tolerância. Dentro da tolerância significa que a diferença de precisão CUAD em relação ao intervalo de 8k (estados de 6,553–7,618 tokens, o comprimento treinado), emparelhada no mesmo contrato, repetição e pergunta, tem um limite inferior de 95 % de pelo menos −3 pp, e todos os registos foram respondidos. Se o intervalo de 16k falhar, o comprimento validado é 8,192 tokens.
Precisão CUAD, ECE e a diferença emparelhada em relação ao intervalo de 8k por comprimento nominal do estado (longdoc-v1 development):
| Comprimento nominal do estado | Perguntas CUAD | Precisão | ECE | Δ vs 8k, pp [IC 95 %] |
|---|---|---|---|---|
| 4k | 443 | 0.847 | 0.047 | – |
| 8k | 453 | 0.837 | 0.048 | referência |
| 16k | 452 | 0.823 | 0.057 | −1.1 [−3.4, +1.2] |
| 32k | 454 | 0.788 | 0.022 | −5.8 [−9.0, −2.8] |
| 64k | 452 | 0.781 | 0.035 | −5.2 [−8.2, −2.0] |
ECE à temperatura de distribuição T = 2.41. Δ é emparelhado nas 445–447 perguntas feitas sobre os mesmos contratos em ambos os comprimentos. O intervalo de 4k contém contratos diferentes e não é referência para a regra. Fonte: runs/r28-readout/context.json (leitura registada da ronda 28, runs/r28-4b-r10-longdoc).
Calibração (erro de calibração esperado, ECE, à temperatura de distribuição T = 2.41; mais baixo é melhor):
| Painel | ECE |
|---|---|
| breadth-v1 development, auditados / todos os 14 conjuntos | 0.021 / 0.028 |
| breadth-v1 test, todos os 14 conjuntos | 0.029 |
| tasksource-heldout-v1 development, auditados | 0.042 |
| transfer-v4 development / locked test | 0.042 / 0.017 |
| hard-v1 development / test | 0.095 / 0.084 |
| devtools-v1 development, auditados | 0.072 |
| documents-v1 development / test | 0.093 / 0.101 |
| decision-v7 development (as linhas de ajuste) | 0.013 |
| ood-v2 | 0.084 |
A temperatura de distribuição foi ajustada em itens reservados de um corpus de treino, o que as regras do projeto já não permitem para um novo lançamento. Um reajuste registado em 648 perguntas de conjuntos de dados reservados (a partição de calibração do transfer-r3, oito fontes, e 200 perguntas MMLU-Pro) dá T = 2.30 (intervalo bootstrap de 90 % [2.05, 2.52]). Nas 4,468 perguntas de desenvolvimento auditadas do breadth-v1 e do tasksource-heldout-v1 não melhora o valor de distribuição: Brier 0.368 em ambos, uma diferença de −0.0001 [−0.0005, +0.0003], e ECE 0.025 contra 0.024. A regra exigia um intervalo de Brier abaixo de zero e um ECE mais baixo, por isso T = 2.41 mantém-se. As respostas não dependem de T.
Outros resultados.
| Suite | Kev-4B | Jev |
|---|---|---|
Aritmética de datas, política deadline (transfer-v9 development) |
0.65 | 0.95 |
| MMLU, 4 opções (transfer-v9 development) | 0.725 | 0.90 |
| When2Call / injeção de prompt (devtools-v1 development, fontes apenas de avaliação) | 0.660 / 0.753 | – / 0.893 |
| SemIf (144 decisões de autoria própria; perto da saturação, apenas reportado) | 0.889 | 0.965 |
| Itens públicos do JevBench, todos os 231 / nível difícil 111 (ECE) | 0.758 / 0.541 (0.112) | – |
Serviço. CUDA, bf16 com kernels fundidos e grafos CUDA; tempo de modelo por pedido (mediana de 20) para um estado novo / repetido:
| GPU | 6 perguntas, estado curto | 5 perguntas, estado de 2,200 tokens | Pedidos/s, 64 clientes |
|---|---|---|---|
| L40S | 41.5 / 27.7 ms | 145.2 / 43.0 ms | 51.4 |
| H100 | 18.1 / 12.9 ms | 89.4 / 22.5 ms | 100.8 |
A memória de GPU residente é 14.3 GB. As probabilidades servidas mantêm-se dentro de 0.017 do caminho de avaliação fp32 em 280 perguntas, sem respostas alteradas. No caminho de avaliação fp32 (H100), estados de 16k / 32k / 64k tokens demoram 3.0 / 6.8 / 17.2 s e 4.3 / 8.6 / 17.2 GiB acima dos pesos.
Apple Silicon (MLX, bf16, M5 com 32 GB; três perguntas, uma sobre um facto plantado a 60 % de profundidade; o estado é pré-preenchido em blocos de 1,024 tokens):
| Tokens do estado | Estado novo | Estado em cache | Pico MLX (8.4 GB de pesos) | Pegada do processo | Facto plantado (p) |
|---|---|---|---|---|---|
| 8,192 | 6.6 s | 354 ms | 10.2 GB | 11.9 GB | certo (0.97) |
| 16,384 | 14.0 s | 427 ms | 11.0 GB | 12.8 GB | certo (0.95) |
| 32,768 | 30.5 s | 533 ms | 11.9 GB | 13.7 GB | certo (0.96) |
| 65,000 | 84.5 s | 716 ms | 13.0 GB | 14.1 GB | certo (0.94) |
Em 60 perguntas de estado curto, o caminho MLX está dentro de 0.018 do caminho de avaliação fp32, sem respostas alteradas.
¹ Excluídos dos painéis auditados: quatro conjuntos de dados do breadth-v1 (routerbench, cujos estados não têm a informação pedida; cfcolor e humicroedit, ao nível do acaso para todos os sistemas; chessbench, no fundo da escala para todos os sistemas); sete famílias do tasksource-heldout-v1 com etiquetas inválidas ou irrecuperáveis (nomes privados); duas tarefas do devtools-v1 cujas etiquetas o estado não determina (flakeflagger, tipo de alteração de commit).
² O índice corrigido para o acaso do Decision Index 0.2 da comunidade: por conjunto de dados (pontuação − acaso) / (1 − acaso), com média dentro de cada área e depois 100 × a média das cinco áreas. O índice do Jev vem de uma leitura separada dos mesmos itens de teste.
Limitações e compromissos
- Os seus maiores ganhos são em distribuição. As partições de treino do hard-v1, devtools-v1 e documents-v1 estão nos seus dados de treino, e um item de teste do hard-v1 é um novo template de um gerador treinado. Em conjuntos de dados reservados fica atrás do Jev em 16 pontos no índice breadth-v1, e no nível difícil público do JevBench, uma verificação fora da distribuição, a etapa de skills ganhou cerca de um terço do que ganhou no hard-v1 (+9.0 pp [+2.7, +15.3] em 111 itens).
- Algumas etiquetas do devtools-v1 são aproximações. Antes do treino, todos os modelos avaliados, incluindo o Jev, estavam perto do acaso no CodeReviewer e no FlakeFlagger; depois de treinar nessas fontes chega a 0.633 e 0.693 no development, o que pode ser a heurística de etiquetagem a ser aprendida e não a decisão.
- O conhecimento é determinado pela base. O MMLU-Pro é 0.565 contra 0.840 do Jev.
- A aritmética de datas é a sua família mais fraca: 0.65 nas perguntas da política
deadlinecontra 0.95 do Jev. O pré-processadorKEV_DATE_FACTS=1ajuda (no checkpoint anterior de que este descende, 0.60 → 0.85); não foi remedido neste checkpoint. - A calibração é uma temperatura em distribuição. Está bem calibrado em conjuntos de dados reservados (breadth-v1 test ECE 0.029), menos nas famílias treinadas de skills e documentos (ECE 0.084–0.101), e uma única temperatura não consegue reordenar as confianças: a cobertura a ≤ 5 % de erro fora da distribuição é 0.620 no development contra 0.70 do Jev.
- Comprimentos não treinados. Os estados de treino eram no máximo 7,552 tokens. Estados mais longos são servidos até 65,536 tokens; até onde a precisão aguenta é o comprimento de contexto validado acima.
- A ordem das opções pode mudar uma resposta; o isolamento das perguntas não impede isto.
Enviesamento, riscos e considerações éticas
- As probabilidades calibradas podem criar uma confiança infundada. A temperatura foi ajustada em linhas de desenvolvimento da distribuição de treino e não se transfere para todas as cargas de trabalho; mede a precisão e a calibração numa amostra etiquetada dos teus próprios dados, e reajusta aí a temperatura (
python -m kev.calibrate), antes de definires limiares. - A precisão e a calibração mudam com a mudança de domínio. Monitoriza as taxas de erro em produção em vez de confiares nos números acima.
- Não o uses para decisões automatizadas consequentes sobre pessoas sem revisão humana. Os enviesamentos do modelo base e dos dados de treino (incluindo etiquetas produzidas por outros modelos) não são medidos.
- Os estados podem conter dados pessoais ou confidenciais. O auto-alojamento mantém as entradas no teu próprio hardware; o servidor está aberto a menos que
KEV_API_KEYesteja definido, por isso aplica o teu próprio controlo de acesso e política de tratamento de dados.
Computação
- Receita base: cerca de 56 minutos numa NVIDIA H100 (pico 24.6 GB). Etapa de datas: 9 minutos numa H100.
- Etapa de documentos: 43 minutos numa NVIDIA H200. Etapa de skills: 1.4 horas numa H200 (pico 47.7 GB).
- Verificações de avaliação e serviço: GPUs H100 / H200 / L40S individuais no Modal; medições do MLX num Apple M5.
Proveniência e reprodutibilidade
- Código, suites e relatórios de avaliação: github.com/jaredpalmer/kev. Números de lançamento:
runs/release/kev-4b-r10.json(scripts/release_numbers.py --release kev-4b-r10), a leitura bloqueadaruns/locked/kev-4b-r10-ungated/, as leituras da família de 2026-09-30runs/fam-4b-breadth/,runs/fam-4b-breadthtest/,runs/fam-4b-docs1test/eruns/fam-breadth-test-report/, o reajuste de calibraçãoruns/r28-readout/round28.json, o serviçoruns/serve-4b-l40s/,runs/grouping-4b-h100/,runs/long-state-4b-h100/,runs/mlx-long-states/,runs/mlx-full-4b/. - Etapas: ensaio base
q35-4b-s23/00-trial-0(tagv7-base); datasnight2-4b-du/00-trial-0(tagnight2-du-release); documentos ronda 8r8-small/00-trial-0(tagr8-documents-release); skills ronda 10r10-skills/00-trial-0(experiments/round10/skills.json, regraexperiments/rounds/r10.json). Reajuste de calibração: braço4b-r10da ronda 28 (experiments/rounds/r28.json). - Pesos lançados: revisão do Hub
139fdd94; sha256 do adaptador90e81735…, sha256 dohead.ptdd633435…(T = 2.4061). - Histórico de lançamento: publicado em 2026-09-24 como o candidato confirmado da ronda 10; incluído sem alterações no Kev 1.0. O registo de como foi selecionado, incluindo suites entretanto retiradas por serem infundadas (scienthoon, WANLI-v2, TypeSafe), é o README na revisão do Hub
139fdd94e oPLAN.mdna tag gitresearch-archive-2026-09-24.
Citação
@misc{palmer2026kev4b,
title = {Kev-4B: a calibrated decision model on Qwen3.5-4B},
author = {Palmer, Jared},
year = {2026},
howpublished = {\url{https://huggingface.co/jaredpalmer/kev-4b}},
note = {Kev 1.0}
}
Contacto
Perguntas e problemas: github.com/jaredpalmer/kev/issues.