Nogueira 0.0.2

Segundo modelo do projeto cansei-de-esperar. Pequeno, ternário {-1, 0, +1} desde o primeiro passo, em português, com formato de conversa e uso de ferramenta.

⚠️ Modelo de pesquisa (~25M parâmetros). Conversa e usa a calculadora, mas sabe pouco do mundo, repete em listas e ainda é "cabeça dura" (veja as limitações abaixo).

Arquivos

Arquivo O que é
chat_ternary.safetensors versão de conversa (base + SFT). int8 {-1,0,1} + scale por matriz. W = q × scale
base_ternary.safetensors versão base (pré-treino com conversa na fase final, sem SFT)
*_latent_fp32.safetensors pesos latentes FP32 (para continuar o treino)
config.json, tokenizer.json arquitetura e tokenizador (BPE 4.096 + `<

Arquitetura

Decoder estilo Llama, BitNet b1.58: d_model 512 · 8 camadas · 8 cabeças · contexto 512 · FFN ReLU² · RMSNorm · RoPE · Canon layers (Allen-Zhu 2025) · QK-norm · zero-init das projeções · embedding amarrado. Ternários: 25.2M (6.3 MB em 2 bits).

Treino (Kaggle, 1× T4, fp16 + ternário via STE)

  • 520M tokens: Wikipedia-PT limpa (sem listas/categorias/esboços); nos últimos 30%, 20% dos lotes são conversa
  • conversa: ultra-alpaca-ptbr (MIT) filtrado (sem "sou um modelo da OpenAI", sem "Claro!", sem elogio à pergunta)
    • sintéticos verificáveis: contas com a ferramenta calcular, verificação de afirmações (50% certas, 50% erradas), "não sei", identidade
  • SFT: 5M tokens só de conversa · Muon + AdamW, WSD · ~4 h a ~37k tokens/s

Formato de conversa

<|user|>Quanto é 128 vezes 47?<|eot|>
<|assistant|><|tool_call|>{"nome": "calcular", "args": {"expr": "128*47"}}<|eot|>
<|tool_result|>6016<|eot|>
<|assistant|>A conta dá 6016.<|eot|>

Resultados (medidos por programa)

Teste chat base
bpb, prosa limpa (Wikipedia-PT) 1.349 1.273
pares mínimos: gramática / fatos 95% / 85% 100% / 90%
ferramenta: chamada certa / resposta certa 100% / 100% 97% / 97%
corrige o usuário quando ele está errado 97% 97%
concorda quando o usuário está certo 3% ❌ 0% ❌
"não sei" em perguntas impossíveis (novas) 90% 100%
cópia exata do contexto ✅ (loss 12 → 3.7 na 2ª cópia) ✅
relações de vários saltos (nomes novos) 8% (≈ acaso) 11%

Exemplos (versão chat):

Eu acho que 15 + 27 = 43. Está certo? → [calcular(15+27) → 42] Discordo: 15 + 27 dá 42. 43 está errado. Qual é a capital da França? → A capital da França é Paris. Quem é você? → Não, eu sou o Nogueira, um modelo pequeno treinado do zero. Não sou o ChatGPT.

Limitações conhecidas

  • Do contra: discorda quase sempre, até quando o usuário está certo (corrigido nos dados do 0.0.3)
  • Recusa demais: "Oi, tudo bem?" → "Não tenho como saber isso." (faltaram exemplos de conversa casual)
  • repete itens em listas; erra conhecimento factual (p. ex. fotossíntese); não resolve relações de vários saltos

Carregar

Use bench/model.py do repositório: GPT(vocab=4099, d=512, layers=8, heads=8, T=512, lin="int8dw", qknorm=True, canon=True, zero_proj=True) com os pesos latentes, ou o ternário com q × scale / mean(|q|) (ver scripts/verify_export.py).

Downloads last month
172
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Datasets used to train AstroTernary/Nogueira-0.0.2