Documentação

Kev-0.8B

Resumo do modelo

O Kev-0.8B é 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. Implementa a API pública System One da TypeSafe (POST /v1/systemone), por isso o SDK da TypeSafe funciona com ele sem alterações. É o menor Kev: um adaptador LoRA e uma cabeça de ponteiro sobre o Qwen3.5-0.8B-Base que corre num portátil ou numa GPU de 4 GB. Destina-se a casos em que a memória ou o custo excluem os tamanhos maiores e a tarefa se assemelha àquilo com que foi treinado; fora da distribuição é nitidamente menos preciso do que o Kev-4B. 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-0.8B-Base (revisão dc7cdfe2): 24 camadas, 18 Gated DeltaNet (atenção linear) e 6 de atenção completa; congelado
Adaptador LoRA, rank 16, α 32, nas projeções de atenção, MLP e DeltaNet (11.3M 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.35, 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-0.8b, revisão 9a45d25e (publicado em 2026-09-24)
Versões anteriores Tags do Hub night2-du-release e v7-base

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 próximas das suas famílias de treino (classificação de documentos, encaminhamento, verificações de política sobre regras indicadas) em hardware demasiado pequeno para o Kev-4B: um portátil, uma L4 ou uma GPU de 4 GB.
  • Um ponto de partida para ajuste fino nas próprias etiquetas do utilizador quando o custo de treino importa (kev.train --init_from jaredpalmer/kev-0.8b).
  • Prototipagem contra a API System One antes de passar para um Kev maior.

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.
  • Encaminhamento de chamadas de ferramentas (se chamar uma ferramenta, pedir um parâmetro em falta ou recusar): a sua precisão no When2Call está abaixo do acaso (vê Limitações).
  • Decisões totalmente automatizadas com consequências legais, médicas, financeiras, laborais ou semelhantes para pessoas, sem revisão humana.
  • Perguntas com muito conhecimento, aritmética de datas, 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 L4 chega); 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-0.8b --port 8008        # Kev 1.0 (this card)
uv run --extra serve python -m kev.serve --run jaredpalmer/kev-0.8b@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. 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 e skills, uma etapa 16,539 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, etiquetas mantidas onde dois professores de pesos abertos concordaram com a própria participação do consumidor. hard-v1 train: 6,000 registos etiquetados programaticamente em sete famílias de skills (políticas longas, compromissos, probabilidade, vários saltos, datas e aritmética, avaliação de uma resposta proposta, abstenção por falta de dados), templates 0–3. devtools-v1 train: 5,320 registos de CodeReviewer, CommitPackFT, FlakeFlagger e Aegis com as etiquetas próprias de cada conjunto de dados

As duas etapas de ajuste fino repetem 2,000 e 6,000 registos de decision-v7. 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

  1. Receita base. Duas épocas em decision-v7 a partir da base: LoRA de rank 16, α 32; taxa de aprendizagem 1e-4, agenda de ciclo único; lote 8; autocast bf16; 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).
  2. Datas e prova em falta. Uma época a partir da etapa 1 com taxa de aprendizagem 4e-5 e 2,000 registos repetidos.
  3. Documentos e skills. Uma época a partir da etapa 2 nos três conjuntos de treino em conjunto, com taxa de aprendizagem 2e-5 e 6,000 registos repetidos; lote 4 × 2 de acumulação; estados de no máximo 7,552 tokens; gradient checkpointing; semente 1; 2,818 passos do otimizador.
  4. Calibração. Uma única temperatura, T = 2.35, que minimiza a log-verosimilhança negativa nas linhas de desenvolvimento do decision-v7 do ensaio da etapa 3 (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-0.8B Jev
Conjuntos de dados públicos reservados, breadth-v1 development, auditados, 10 conjuntos (2,475) 0.653 –
breadth-v1 development, todos os 14 conjuntos (3,075) 0.597 0.757
breadth-v1 test, todos os 14 conjuntos (3,089) 0.586 0.757
breadth-v1 test, índice corrigido para o acaso² [IC 95 %] 23.3 [21.2, 25.9] 54.0 [51.2, 57.0]
Famílias de tarefas reservadas, tasksource-heldout-v1 development, auditadas, 17 famílias (1,993) 0.515 –
tasksource-heldout-v1 development, todas as 24 famílias (2,788) 0.513 –
Fora da distribuição, transfer-v4 development (656): precisão / Brier 0.648 / 0.430 0.857 / 0.211
Fora da distribuição, transfer-v4 test bloqueado (656): precisão / Brier 0.697 / 0.397 –
transfer-v4 test bloqueado: ECE / cobertura a ≤ 5 % de erro 0.045 / 0.274 –
MMLU-Pro, 10 opções (transfer-v9 development) 0.230 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-0.8B Jev
documents-v1 development (920) / test (936) 0.842 / 0.851 0.868 / –
documents-v2, teste reservado privado (953) 0.848 –
hard-v1 development (1,083) / test (1,088) 0.594 / 0.665 0.777 / –
devtools-v1 development, fontes auditadas (772) 0.633 –
devtools-v1 development (1,072) / test (1,071), todas as fontes 0.602 / 0.637 0.713 / –
decision-v7 development (1,264) / locked test (1,200) 0.827 / 0.838 0.845 / –
Domínios reservados de decisões geradas, ood-v2 (4,988) 0.661 –

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 (tag night2-du-release, à sua própria temperatura 2.41; critérios registados, cada teste lido uma vez):

Painel Δ [IC 95 %]
documents-v1 test +24.4 [+21.3, +27.6]
documents-v2 +23.2 [+19.9, +26.4]
hard-v1 test +26.9 [+23.4, +30.4]
devtools-v1 test +16.4 [+13.1, +19.4]
hard-v1 + devtools-v1 test, agrupados +21.7 [+19.5, +24.0]
transfer-v4 locked test +1.2 [−1.1, +3.7]

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 é −8.5 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.779 0.128 –
8k 453 0.711 0.066 referência
16k 452 0.659 0.047 −5.2 [−8.5, −2.1]
32k 454 0.663 0.055 −6.0 [−9.5, −2.5]
64k 452 0.637 0.038 −7.9 [−11.8, −4.2]

ECE à temperatura de distribuição T = 2.35. Δ é 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-08b-r15-longdoc).

Calibração (erro de calibração esperado, ECE, à temperatura de distribuição T = 2.35; mais baixo é melhor):

Painel ECE
breadth-v1 development, auditados / todos os 14 conjuntos 0.022 / 0.032
breadth-v1 test, todos os 14 conjuntos 0.042
tasksource-heldout-v1 development, auditados 0.096
transfer-v4 development / locked test 0.049 / 0.045
hard-v1 development / test 0.112 / 0.125
devtools-v1 development, auditados 0.092
documents-v1 development / test 0.059 / 0.071
decision-v7 development (as linhas de ajuste) 0.033
ood-v2 0.123

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.52 (intervalo bootstrap de 90 % [2.19, 2.83]). Nas 4,468 perguntas de desenvolvimento auditadas do breadth-v1 e do tasksource-heldout-v1 está melhor calibrado: ECE 0.037 contra 0.048, Brier inferior em 0.0020 [0.0014, 0.0025]. Está pior nas famílias treinadas, cada uma em mais do que a tolerância registada de 0.005: hard-v1 ECE 0.124 contra 0.112, devtools-v1 (auditados) 0.099 contra 0.092, documents-v1 0.078 contra 0.059. O reajuste, portanto, não se qualificou, e T = 2.35 mantém-se. Os utilizadores cuja carga de trabalho se assemelha mais a conjuntos de dados públicos reservados do que às famílias de treino do Kev podem servi-lo com o valor do reajuste via KEV_TEMPERATURE=2.52; as respostas não dependem de T.

Outros resultados.

Suite Kev-0.8B Jev
Aritmética de datas, política deadline (transfer-v9 development) 0.35 0.95
MMLU, 4 opções (transfer-v9 development) 0.425 0.90
Estruturas de política reservadas, ambos os irmãos do par mínimo corretos (transfer-v4 development) 0.422 –
When2Call, development / test (fonte apenas de avaliação) 0.167 / 0.133 –
Injeção de prompt, development (fonte apenas de avaliação) 0.547 0.893
SemIf (144 decisões de autoria própria; perto da saturação para modelos maiores, apenas reportado) 0.722 0.965
Itens públicos do JevBench, todos os 231 / nível difícil 111 (ECE) 0.636 / 0.360 (0.181) –

Serviço. CUDA, bf16 com kernels fundidos e grafos CUDA, numa L4; tempo de modelo por pedido (mediana de 20) para um estado novo / repetido: 22.7 / 16.1 ms para seis perguntas sobre um estado curto, 108.6 / 32.3 ms para cinco perguntas sobre um estado de 2,200 tokens; 62.8 pedidos/s com 64 clientes. A memória de GPU residente é 3.8 GB. As probabilidades servidas mantêm-se dentro de 0.017 do caminho de avaliação fp32 em 280 perguntas, com 1 resposta alterada.

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 (1.5 GB de pesos) Pegada do processo Facto plantado (p)
8,192 1.4 s 74 ms 2.7 GB 5.3 GB certo (0.68)
16,384 3.2 s 94 ms 3.0 GB 6.1 GB certo (0.68)
32,768 8.0 s 134 ms 3.1 GB 6.3 GB certo (0.70)
65,000 21.2 s 202 ms 3.8 GB 5.4 GB certo (0.62)

Contra o PyTorch fp32 na CPU nos mesmos pedidos, as respostas do MLX diferem em, no máximo, 0.0076 a 8k e 0.0052 a 16k tokens, sem respostas alteradas. Em 100 perguntas de estado curto, o caminho MLX está dentro de 0.020 do caminho de avaliação fp32, com 1 resposta alterada.

¹ 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

  • Fora da distribuição é um modelo abaixo de 1B. Fica atrás do Jev em 21 pontos no transfer-v4 development e em 31 pontos no índice breadth-v1; o conhecimento (MMLU-Pro 0.230) e a paráfrase estão próximos da base não treinada. Usa o Kev-4B onde a precisão importa.
  • Os seus ganhos são em distribuição. As partições de treino do documents-v1, hard-v1 e devtools-v1 estão nos seus dados de treino; no nível difícil público do JevBench, uma verificação fora da distribuição, a etapa de documentos e skills moveu-o +2.7 pp [−1.8, +7.2], indistinguível de zero.
  • O encaminhamento de chamadas de ferramentas piorou. O When2Call, uma fonte apenas de avaliação, caiu de 0.260 para 0.167 no development e de 0.233 para 0.133 no test, abaixo da taxa de um em quatro de adivinhar entre as suas quatro opções. Não o uses para encaminhamento de chamadas de ferramentas.
  • Um resultado do devtools-v1 não está explicado. O FlakeFlagger passou de 0.500 → 0.520 no development mas de 0.507 → 0.813 no test, em 150 perguntas por partição; trata-o como inexplicado, não como uma skill.
  • A aritmética de datas é a sua família mais fraca: 0.35 nas perguntas da política deadline contra 0.95 do Jev; o pré-processador KEV_DATE_FACTS=1 ajuda os modelos maiores mais do que este.
  • A composição de regras é fraca: ambos os irmãos de um par mínimo de política reservado estão certos 0.422 das vezes.
  • A calibração é uma temperatura em distribuição (vê Calibração). Não consegue reordenar as confianças: a cobertura a ≤ 5 % de erro fora da distribuição é 0.145 no development contra 0.70 do Jev, por isso poucas decisões podem ser automatizadas com um orçamento de erro estrito.
  • 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, e mais neste tamanho do que nos maiores. 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_KEY esteja definido, por isso aplica o teu próprio controlo de acesso e política de tratamento de dados.

Computação

  • Receita base: cerca de 20 minutos numa NVIDIA H100. Etapa de datas: 9 minutos.
  • Etapa de documentos e skills: 52 minutos numa NVIDIA H200 (pico 23.9 GB).
  • Verificações de avaliação e serviço: GPUs H100 / H200 / L4 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-08b-r15.json (scripts/release_numbers.py --release kev-08b-r15), a leitura bloqueada runs/locked/kev-08b-r15-ungated/, as leituras da família de 2026-09-30 runs/fam-08b-breadth/, runs/fam-08b-breadthtest/ e runs/fam-breadth-test-report/, o reajuste de calibração runs/r28-readout/round28.json, o serviço runs/serve-08b-l4/, runs/mlx-long-states/, runs/mlx-full-0.8b/.
  • Etapas: ensaio base q35-08b/02-trial-2 (tag v7-base); datas night2-08b-du2/00-trial-0 (tag night2-du-release); documentos e skills ronda 15 r15-08b/00-trial-0 (experiments/round15/joint.json, regra experiments/rounds/r15.json). Reajuste de calibração: braço 08b-r15 da ronda 28 (experiments/rounds/r28.json).
  • Pesos lançados: revisão do Hub 9a45d25e; sha256 do adaptador 9b908623…, sha256 do head.pt f400bd12… (T = 2.3511).
  • Histórico de lançamento: publicado em 2026-09-24 como o candidato confirmado da ronda 15; 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 9a45d25e e o PLAN.md na tag git research-archive-2026-09-24.

Citação

@misc{palmer2026kev08b,
  title        = {Kev-0.8B: a calibrated decision model on Qwen3.5-0.8B},
  author       = {Palmer, Jared},
  year         = {2026},
  howpublished = {\url{https://huggingface.co/jaredpalmer/kev-0.8b}},
  note         = {Kev 1.0}
}

Contacto

Perguntas e problemas: github.com/jaredpalmer/kev/issues.