O que estamos construindo, por que ele não é uma cópia do GPT-2, e qual é a contribuição própria deste projeto — com o que já foi medido, inclusive o que deu errado.
O curso anterior desmontou modelos que já existiam. Este constrói um. A diferença não é de tamanho — o nosso modelo é menor que qualquer um daqueles. A diferença é que aqui cada decisão foi medida, e várias seguem caminhos que a área encontrou depois de 2019, sobre a base que o GPT-2 deixou.
O que ele constrói tem nome: um ELLM, energy-based latent predictive language model — um modelo de linguagem que prevê no espaço latente e decide por energia. Ele mantém a cabeça de tokens de um modelo de linguagem comum e acrescenta duas peças: um preditor que imagina o próximo estado antes de escrever, e uma energia que escolhe entre esses futuros. A apostila 17 explica cada parte do nome e o que já está medido em cada uma.
O nome diz o que o sistema faz: antever. Um modelo de linguagem comum escolhe o próximo token e descobre depois onde foi parar. O nosso, antes de escolher, imagina onde cada candidato o levaria — no espaço latente, sem decodificar — e escolhe pela energia desse futuro imaginado. A peça que faz isso é um modelo de mundo condicionado à ação: dado o estado atual e um token candidato, prevê o estado seguinte. No código ela se chama mundo; a versão anterior, que só previa a direção sem saber a ação, se chama compass e continua no repositório como controle.
Modelos de linguagem preveem símbolos: uma distribuição sobre milhares de tokens, punida por entropia cruzada. A linhagem JEPA, na visão computacional, propôs prever no espaço latente — porque prever pixels obriga o modelo a gastar capacidade com detalhe irrelevante. E a proposta de 2025–2026 (LeJEPA, LeWorldModel) foi além: um modelo de mundo treinado ponta a ponta, sem professor EMA, com um regularizador de gaussianidade impedindo o colapso, e a decisão feita por minimização de energia, não por amostragem.
A Antevisão faz as duas coisas: mantém a previsão de tokens e treina o modelo de mundo sobre os mesmos estados. Na geração, o modelo de mundo imagina cada candidato alguns passos à frente, e a escolha é feita pela energia — plausibilidade mais distância ao rumo que você escreveu. Quando o plano não dá o resultado previsto, o que se corrige é o mapa, não o gerador.
Antevisão é a estrutura: o arranjo de peças deste repositório — encoder, modelo de mundo, memória, leme, cabeça de tokens. Latent Rehearsal é o conceito que a estrutura realiza: ensaiar no latente antes de falar. Antes de emitir um token, o sistema roda os candidatos alguns passos à frente no espaço latente, mede a energia de cada futuro ensaiado, e só então decide. O token deixa de ser a decisão e passa a ser a saída.
O que é de LeCun e o que é nosso, dito sem rodeio. As ideias de base são dele: a JEPA, prever no latente e não no espaço dos dados, o colapso e como evitá-lo, a inferência por energia, a hierarquia, a memória persistente. Esta coleção lê duas falas dele — a palestra sobre modelos de mundo e a entrevista — e marca as citações como palavra dele.
A aplicação ao texto é a nossa parte. LeCun leva a JEPA para o mundo físico através do vídeo, e trata a linguagem como o caso mais fácil. O Latent Rehearsal testa a mesma ideia no terreno onde os LLMs já funcionam bem: traz a JEPA para o texto e mantém a cabeça autorregressiva, que passa de decisora a decodificador, guardrail e régua comparável (apostila 09, §1). Não é uma disputa entre os dois caminhos; é uma pergunta de engenharia sobre o que acontece quando eles se somam. As apostilas medem a resposta, uma a uma.
Um modelo de linguagem comum só aceita controle por prompt: você escreve o começo e torce. Aqui há um segundo canal, que age sobre cada token, sem tocar no texto — e que pode ser hierárquico: um nível sobre blocos de tokens dá o alvo de curto alcance ao nível dos tokens. As peças são baratas: cada preditor são duas projeções
Se funciona ou não é outra questão — e o projeto inteiro é organizado para responder isso com número, não com impressão. A seção 3 traz o que já está medido, incluindo o que não deu certo.
| # | Pilar | O limite de onde parte | Apostila |
|---|---|---|---|
| 1 | Tokenizador próprio | O BPE do GPT-2 gasta 1,6× mais tokens em português e parte números em pedaços arbitrários | 01 |
| 2 | Geometria como objetivo | O treino cria um cone no espaço de embedding: cosseno médio de 0,00 para 0,38 | 03, 04 |
| 3 | O modelo de mundo e o leme | Não existe canal de controle além do prompt, e o modelo não sabe onde vai parar antes de ir | 05, 09 |
Há também um quarto eixo, que não é ideia nova mas é obrigatório: a arquitetura moderna — RoPE, RMSNorm, SwiGLU, sem vieses. Nada disso é invenção nossa; tudo virou padrão depois de 2019. O que é nosso é ter as duas versões no mesmo arquivo, selecionáveis por uma variável, para a comparação ser honesta (apostila 02). E um quinto, que atravessa todos: o método — mesma semente, mesmos dados, sempre o melhor checkpoint, toda métrica com o seu piso (apostila 06).
Todos os números abaixo saíram desta máquina, com scripts que estão no repositório. "Controle" é sempre o mesmo corpus congelado, o mesmo orçamento de 700 passos e a mesma semente; a base de comparação é a rodada com regularizador de cosseno (validação 5,2706; a apostila 13 §12.3 explica por que as tabelas mais novas usam 5,2577). Onde a medida contrariou a expectativa, está marcado.
| Medida | Resultado | Leitura |
|---|---|---|
| Tokens em português vs GPT-2 | −47,6% | com vocabulário 3× menor; texto acentuado, −73,3% |
| Tokens em código | −12,0% | |
| Tokens em números | +58,3% | piora deliberada — dígitos separados |
| bits/caractere em PT nosso 7,4 M vs gpt2 124 M | 2,406 vs 3,139 | menos bits que um modelo 17× maior — pelo tokenizador e pelos dados, não pelo tamanho |
| Duelo de arquiteturas, mesma verba | 192,8 vs 254,5 | PPL: moderna contra GPT-2 fiel |
| Anisotropia, sem → com regularizador | 0,38 → 0,049 | custo: 0,17% de qualidade |
| Tokens nunca vistos no top-50 | 0 | acaso daria 1,44 — hipótese não confirmada |
| SigReg (LeJEPA 2025) no lugar do cosseno | 245,0 vs 244,8 | posto efetivo — não comprou nada, e custou +1,51% |
| VICReg somado ao cosseno | 253,0 +2,88% | a melhor geometria (decorrelação 0,017) ao maior custo de qualidade |
| DINO: professor EMA sobre o leme profundo | +2,08% | o professor lento custou 3 pontos contra o stop-gradient (−0,90%); uma semente |
| Barlow Twins sobre o leme profundo | −0,50% | segunda rodada abaixo do controle; dentro do ruído do leme sozinho |
| Leme raso (prevê o embedding seguinte) | 0,534 piso 0,46 | cosseno com o alvo; ganho real +0,07 sobre copiar o estado (acaso 0,21). Custo +1,41% |
| Leme profundo (prevê o estado seguinte) | −0,90% | a única peça que melhorou o gerador: validação 5,2233, PPL 185,55. Uma semente: cautela |
| Termo aditivo α na geração | pior | pior que a identidade, pior que uma direção aleatória — condenou a inferência aditiva e motivou a energia |
| Laço de correção do modelo de mundo | 0,907 → 0,719 | razão surpresa/piso num conjunto separado, teste de fumaça (apostila 09) |
| Modelo de mundo (v3), doze rodadas | cos 0,93 vs 0,58 | o mapa prevê o estado seguinte e entende sequência (frase invertida: erro +32%, identidade −3%). Ponta a ponta com peso 1,0 custa +9,59% ao gerador; stop-grad +1,11%; em dois estágios sobre o encoder DINO, custo zero (apostila 05) |
| O leme governa | 13 de 13 | cabeça de custo aprendida com dez frases + custo no estado real + γ = 0,1: mais rumo pelo juiz independente em onze dos doze mapas da fila (apostila 12); o décimo segundo, o da memória, passou a governar com memória-dropout (apostila 13) |
| A abstração prevê mais longe | 5 de 5 | o nível 2 num passo erra menos que o nível 1 rolado oito vezes, em todo modelo hierárquico sem colapso (apostila 11) |
| Memória persistente | +0,019 | a memória que atravessou uma janela inteira vale tanto quanto a recente (apostila 11) |
| Dois colapsos pegos e corrigidos | 33× → 1,5× | o ζ que vazava o alvo (ζ-dropout fechou o canal) e o encoder de nível 2 que encolheu 13× (gaussianizar custou +11,32%; fixar só a escala colapsou a direção — o encoder de nível 2 aprendido fica em aberto, a média crua é a abstração honesta) |
O SigReg não melhorou nada, o VICReg custou 2,88%, o professor EMA do DINO custou 2,08%, o leme raso custa 1,41% por um ganho de 0,07, o termo aditivo piora a geração, e o modelo de mundo ponta a ponta custou até 9,59% ao gerador. Estão na tabela principal, com o mesmo destaque dos resultados positivos, porque um resultado negativo informa tanto quanto um positivo, e omiti-lo distorceria a leitura do conjunto. A linha do leme raso já foi publicada errada uma vez, como "0,534 contra ~0,00 do acaso"; o piso de identidade é 0,46. A apostila 06 conta esse erro e os outros dez.
| # | Apostila | Responde |
|---|---|---|
| 00 | Mapa do projeto | o que estamos construindo e por quê |
| 01 | O tokenizador próprio | por que 16k serve melhor a este corpus que 50k, e o preço dos dígitos separados |
| 02 | Duas arquiteturas, um arquivo | RoPE, RMSNorm, SwiGLU — e o duelo medido |
| 03 | A geometria do embedding | anisotropia, posto efetivo, decorrelação: os instrumentos |
| 04 | A linhagem do colapso | Barlow Twins → VICReg → JEPA → DINO → SigReg, cada elo medido no nosso: dois ajudaram, três custaram |
| 05 | O leme e o modelo de mundo | as três versões medidas; as células do modelo de mundo esperam a fila |
| 06 | Método e erros | como medimos, e os enganos que o método pegou |
| 07 | Escala e orçamento | Chinchilla, VRAM, e o que US$ 5 compram |
| 08 | A bancada | servir, radiografar e treinar pelo navegador |
| 09 | A arquitetura hierárquica | o projeto alinhado ao modelo de mundo: energia, MPC, hierarquia, correção |
| 10 | O que a JEPA é, segundo LeCun | as duas transcrições lidas conceito por conceito, com o arquivo onde cada um se aplica |
| 11 | Memória e horizonte | memória persistente e "a abstração prevê mais longe": método pronto, números na fila |
| 12 | Custos aprendidos e modos de inferência | cabeças de custo, guardrails, os quatro modos e o juiz independente |
| 13 | As correções pelas falas de LeCun | as quatro falhas da fila levadas de volta ao texto de LeCun: memória-dropout, VICReg no nível 2, alvo EMA, cabeça mista |
| 14 | Memória consultada | banco de estados abstratos lido por atenção, persistido em disco pelo turbovec (TurboQuant a 4 bits): a memória que sobrevive à sessão |
| 15 | O que custa e o que entrega | a comparação para fora: bits por caractere contra o GPT‑1 e o GPT‑2, por domínio, com o preço de cada treino em dólares e o limite que o corpus impõe ao tamanho |
| 16 | O mínimo e o volume | as duas afirmações da palestra sobre energia, medidas: a busca por energia acha o mínimo, e quanto do espaço consegue energia baixa |
| 17 | O que é um ELLM | o nome da classe de modelo que a Antevisão constrói: cada parte de energy-based latent predictive language model, com a medida que a sustenta |
| 18 | Procurar melhor não conserta a energia | a busca exata no vocabulário e no núcleo da política, medida no texto: as três buscas caem no mesmo ponto; o que decide é a energia |
| 19 | A inversão que não se repetiu | três sementes na escada: o modelo de mundo custa cerca de 1% ao gerador, e não rende 3,38%; a validação sorteada oscila mais que o efeito; com lotes fixos o custo é +1,77% no mini e +4,92% no pequeno |
| 20 | O que mudou em 17/09 | nota de atualização: os capítulos novos, as correções, o que mudou no código e o que ficou aberto |
# 1) corpus — português + inglês + código, por streaming .venv\Scripts\python.exe model\data\build_corpus.py --mb 1000 # 2) o tokenizador próprio .venv\Scripts\python.exe model\tokenizer\train.py --vocab 16384 # 3) empacota em tokens uint16 (memmap) .venv\Scripts\python.exe model\prepare_data.py # 4) treina — retoma sozinho se interromper com Ctrl+C .venv\Scripts\python.exe model\train.py --size mini --modern --steps 5000 # 4b) o mesmo, com o modelo de mundo hierárquico .venv\Scripts\python.exe model\train.py --size mini --modern --world 1 --world-levels 2 --sigreg-z 1 # 5) o relatório: todas as rodadas, todas as medidas .venv\Scripts\python.exe model\report.py
O passo 4 aceita as chaves de cada ideia da linhagem: --reg-cos, --sigreg, --vicreg, --barlow, --dino, --latent, e as do modelo de mundo, --world, --sigreg-z, --world-latent, --world-enc2. Todas desligáveis, todas comparáveis entre si, porque o nome da pasta de saída carrega a configuração.
Pense num laboratório de química com um caderno de bancada. Cada frasco tem o rótulo do que foi misturado nele — não "experimento 7", mas "cosseno 1,0 + leme profundo". Quando alguém pergunta seis meses depois por que aquele frasco ficou roxo, a resposta está no rótulo, não na memória de quem misturou.
É por isso que mini-moderno-reg1-wm1n2-sz1-duelo é feio e é certo.
Vale dizer, porque a expectativa errada estraga a leitura.
wm*) ainda está na fila. A pergunta central — se prever com a ação ganha do piso de copiar o estado, e se o SigReg nos estados segura o colapso sem professor EMA — não tem número.A apostila 01 começa onde o modelo começa: transformando texto em números —
e mostrando por que a escolha do GPT-2 custa caro em qualquer língua que não seja inglês.