A energia é a soma de duas coisas — o que o sistema quer e o que ele não pode — e a inferência é a busca que a minimiza. Esta apostila mede as três buscas e as duas fontes de energia num modelo de mundo treinado.
Em todo modo de inferência, cada estado imaginado
A tarefa vale zero quando cumprida, como a palestra pede ("zero se a tarefa está realizada, positivo senão, medindo a distância"). Há duas maneiras de defini-la, e as duas estão no sistema:
| Fonte | tarefa( | guardrail( | Precisa de |
|---|---|---|---|
| rumo em texto | 1 − cos( | só o −log | uma frase |
cabeça aprendida (costs.py) | 1 − | três frases positivas; negativos = janelas aleatórias |
No teste de fumaça, três frases sobre futebol e 16 janelas aleatórias como negativos: treino em 0,3 s, acurácia 0,99 no próprio treino. Usada como juiz sobre frases novas:
| Frase | tokens acima de 0,5 | |
|---|---|---|
| "O zagueiro marcou o gol de cabeça e o estádio explodiu" | 0,940 | 100% |
| "A taxa de juros subiu meio ponto nesta quarta-feira" | 0,104 | 8% |
def soma(a, b): return a + b | 0,081 | 0% |
Três frases bastaram para separar os três domínios — no encoder de reg1-lat1o. No encoder do wm1-sz1 a separação é pior (economia sobe a 0,523): o espaço que o modelo de mundo moldou é mais previsível e menos legível por uma projeção, o outro lado do +9,59% da apostila 05. É a afirmação da palestra confirmada no menor caso possível: a informação já está na representação; a cabeça só a lê. A mesma medida nos encoders treinados com modelo de mundo é uma linha da tabela do §3.
Quatro modos, mesmo custo, buscas diferentes (apostilas 09 e 10). A comparação que importa é entre os três que usam o modelo de mundo:
| Modo | afinidade (juiz) | PPL do gerado | surpresa | energia prevista | s/token |
|---|---|---|---|---|---|
| livre (sem leme) | 0,256 | 48,5 | 0,170 | — | 0,02 |
additive (controle negativo) | 0,191 | 82,4 | 0,148 | — | 0,02 |
energy | 0,157 | 10,3 | 0,168 | 5,92 | 0,04 |
gradient | 0,228 | 28,7 | 0,146 | 2,87 | 0,03 |
mpc | 0,211 | 12,7 | 0,147 | 0,91 | 0,09 |
mpc + cabeça aprendida | 0,232 | 20,7 | 0,143 | 0,98 | 0,09 |
energy + nível 2 planejado | sem nível 2 neste modelo — espera wm1n2-sz1 | ||||
A geração livre tem a maior afinidade com o rumo. Todo modo com leme fica abaixo dela, e o additive — o controle negativo — fica no meio. Não é que o leme empurre para o lado errado; é que ele não empurra: o planejador escolhe o candidato mais provável (a PPL cai a 10 no modo energy, o gerador fica conservador) sem que isso tenha a ver com futebol. O mapa prevê o estado seguinte com cosseno 0,93 (apostila 05), mas as energias dos oito candidatos são quase iguais.
A causa não era nenhuma das que suspeitávamos primeiro (horizonte curto, espaço moldado para prever, juiz fraco). Era escala: o guardrail é −log
| Modo | afinidade (juiz) | PPL do gerado | surpresa | energia prevista | s/token |
|---|---|---|---|---|---|
| livre (sem leme) | 0,256 | 48,5 | 0,170 | — | 0,02 |
energy | 0,200 | 19,8 | 0,162 | 1,51 | 0,04 |
gradient | 0,339 | 149,6 | 0,168 | 0,64 | 0,03 |
mpc | 0,219 | 48,5 | 0,141 | 0,76 | 0,09 |
mpc + cabeça aprendida | 0,268 | 69,7 | 0,146 | 0,55 | 0,09 |
energy + custo no estado real (cosseno) | 0,251 | 149,2 | 0,259 | 1,53 | 0,06 |
energy + cabeça aprendida + estado real | 0,355 | 36,7 | 0,162 | 1,51 | 0,06 |
| o mesmo, γ = 0,02 | 0,465 | 88,5 | 0,165 | 0,75 | 0,06 |
| Modo | wm1-sz1 | PPL | wm1det | PPL | wm1n2-sz1 | PPL |
|---|---|---|---|---|---|---|
| livre (sem leme) | 0,256 | 48,5 | 0,323 | 75,6 | 0,292 | 53,0 |
energy | 0,200 | 19,8 | 0,296 | 29,2 | 0,229 | 19,0 |
mpc | 0,219 | 48,5 | — | — | 0,311 | 33,3 |
mpc + cabeça aprendida | 0,268 | 69,7 | 0,281 | 44,9 | 0,280 | 39,4 |
energy + nível 2 planejado | — | — | — | — | 0,245 | 18,0 |
energy + cabeça aprendida + estado real | 0,355 | 36,7 | 0,415 | 45,1 | 0,212 | 28,4 |
| o mesmo, cabeça com dez frases no gerador | — | — | — | — | 0,344 | 69,8 |
o mesmo, no wm1n2z16-sz1 (ζ amostrado; livre 0,265 / PPL 95,6) | 0,383 | 67,7 | ||||
o mesmo, no wm1n2e-sz1 (encoder de nível 2 aprendido; livre 0,345 / PPL 52,8) | 0,430 | 76,6 | ||||
o mesmo, no wm1n2mem-sz1 (memória persistente; livre 0,343 / PPL 61,5) | 0,258 | 26,0 | ||||
o mesmo, no wm0.1-sz1 (peso 0,1; livre 0,262 / PPL 48,7) | 0,366 | 48,4 | ||||
o mesmo, no wm0.1n2-sz1-lat1o (a combinação; livre 0,370 / PPL 59,6) | 0,417 | 33,5 | ||||
o mesmo, no wm1n2z16zd0.5-sz1 (ζ com dropout, canal fechado; livre 0,243 / PPL 62,6) | 0,324 | 51,7 | ||||
o mesmo, no wm1n2e-sz1-ss1 (SigReg nos estados abstratos; livre 0,287 / PPL 93,7) | 0,339 | 96,4 | ||||
o mesmo, no wm-sobre-dino (dois estágios, encoder DINO congelado; livre 0,281 / PPL 88,6) | 0,436 | 84,1 | ||||
o mesmo, no wm1n2en-sz1 (encoder de nível 2 só de escala; livre 0,280 / PPL 87,9) | 0,357 | 55,4 | ||||
Cabeça aprendida + custo no estado real: afinidade 0,355 contra 0,256 da livre, com PPL 36,7 contra 48,5. Mais rumo e mais plausível ao mesmo tempo — o único modo que melhora os dois eixos. As três peças foram necessárias juntas: a cabeça aprendida (o cosseno ao rumo, com o mesmo custo no estado real, dá 0,251 e PPL 149: puxa para fora da distribuição); o estado real (a mesma cabeça só nos estados imaginados, mpc + cabeça, dá 0,268 com PPL 69,7); e o γ (com 1,0, a mesma configuração dava 0,174). Com γ = 0,02 a afinidade sobe a 0,465 e a PPL a 88,5: é o botão entre governar e continuar plausível, e a bancada expõe os dois.
No wm1det a mesma configuração dá 0,415 contra 0,323 da livre, com PPL 45 contra 76: governa nos dois mapas, e no mapa mais barato governa mais. O resultado não depende do espaço moldado pelo SigReg-z; depende da cabeça, do estado real e da escala. É o que faz dele um resultado, e não um acidente de uma rodada.
E no terceiro mapa, não governa. No wm1n2-sz1 a mesma configuração fica em 0,212 contra 0,292 da livre. A causa está na tabela do §3: a cabeça "futebol" treinada com três frases nesse encoder não separa nada (0,536 futebol, 0,449 economia, 0,525 código). O espaço do modelo hierárquico não é linearmente legível por uma projeção de três frases — e um custo que não distingue os candidatos não governa, seja qual for o modo. É a dependência que a palestra deixa implícita ao dizer "basicamente só uma projeção": a projeção só funciona se a informação estiver acessível linearmente. Com dez frases em vez de três, a cabeça nesse espaço melhora (0,713 futebol, 0,570 economia, 0,057 código) mas continua confundindo futebol com economia — a separação que três frases davam nos outros encoders exige mais dados aqui, e talvez uma cabeça não linear. Com essa cabeça de dez frases no gerador (o juiz continua o mesmo), a melhor configuração no wm1n2-sz1 vai de 0,212 para 0,344 contra 0,292 da livre, com PPL 69,8 contra 53,0. Governa nos três mapas fechados, e a regra fica nítida: o leme governa exatamente quando a cabeça separa. Onde três frases bastam, três frases governam; onde não bastam, dez governam. O custo da tarefa é o elo que decide, e ele é barato de melhorar. O quarto mapa (wm1n2z16-sz1, cujo ζ vazou o alvo — apostila 05) confirma pelo lado oposto: mesmo com o mapa perto do piso na inferência, a configuração dá 0,383 contra 0,265, porque o custo no estado real não depende do mapa. O quinto (wm1n2e-sz1, cujo nível 2 colapsou de escala — apostila 11) dá 0,430 contra 0,345. Nos cinco primeiros mapas, governa. E o mesmo mapa mostra o reverso: com o nível 2 colapsado, o modo "nível 2 planejado" cai a 0,195 — um subobjetivo vindo de um nível que não abstrai nada é pior que nenhum subobjetivo.
No sexto, o da memória persistente, não governa: 0,258 contra 0,343 da livre, com a cabeça separando bem (0,890 futebol, 0,030 código). A hipótese, a testar: esse mapa foi treinado sempre com uma memória do passado real, e na geração com prompts de quatro palavras a memória é zero — que na apostila 11 é a pior das fontes (0,220 contra 0,173). O planejador imagina com um mapa fora do regime em que aprendeu. O teste com prompts de 320 tokens da validação, que enchem a memória antes de gerar, não confirmou a hipótese: afinidade 0,096 na livre e 0,094 com o leme (PPL 138 e 113) — texto de outro assunto, com 256 tokens de contexto, não se deixa puxar para futebol em 32 tokens, com ou sem memória. A causa do sexto mapa fica em aberto; o que se sabe é que não é só a memória zero.
O sétimo mapa, wm0.1-sz1, dá o melhor negócio da tabela: 0,366 contra 0,262 da livre com a mesma PPL (48,4 contra 48,7). Mais rumo sem nenhum custo de plausibilidade — é a primeira vez que as duas colunas fecham de graça. O oitavo, a combinação com o leme profundo (wm0.1n2-sz1-lat1o), repete o padrão do wm1det: 0,417 contra 0,370 com PPL 33,5 contra 59,6, melhor nos dois eixos. O nono, o ζ com o canal fechado (wm1n2z16zd0.5-sz1), governa nos dois eixos: 0,324 contra 0,243 com PPL 51,7 contra 62,6. O décimo, o do SigReg nos estados abstratos (wm1n2e-sz1-ss1, o pior gerador de todos, +11,32%), ainda governa: 0,339 contra 0,287 com a mesma PPL (96 contra 94). Contagem: dez mapas, nove governam. O leme não depende de o gerador ser bom; depende de a cabeça separar e de o custo ter escala.
O décimo primeiro é a receita da fala ao pé da letra — "use o DINO como encoder, treine um modelo de mundo e planeje" — e é o mapa que mais governa com o gerador intacto: wm-sobre-dino, encoder congelado, onze minutos de treino do mapa, 0,436 contra 0,281 da livre, com PPL 84 contra 89. Melhor nos dois eixos, e o gerador é exatamente o da base. O décimo segundo e último da fila, o encoder de nível 2 só de escala (wm1n2en-sz1, cujo nível 2 colapsou em direção — apostila 11), governa nos dois eixos: 0,357 contra 0,280 com PPL 55 contra 88. Contagem final: doze mapas, onze governam. O único que não governou é o da memória persistente, e a causa ficou em aberto.
O gradient chega a 0,339 com PPL 149,6 — texto quebrado com palavras do tema, o "controle" que a apostila 05 manda desconfiar. O mpc puro fica em 0,219: a busca contínua não compensa sem a cabeça. E o cosseno ao rumo, em qualquer modo, é o termo mais fraco da tabela — a resposta da palestra (custo = projeção aprendida) valeu mais que a nossa primeira ideia.
Afinidade diz se o leme governa; PPL diz a que preço de plausibilidade; surpresa diz se o mapa previu o que aconteceu; energia prevista é o que o sistema esperava antes de emitir (a "emoção" da entrevista) — a distância entre ela e a surpresa é o material da correção; s/token é o custo. O modo vencedor é o que governa com PPL perto do livre. Se nenhum governar mais que o additive, o modelo de mundo não está bom o bastante para planejar — e a resposta é a apostila 05, não esta.
A restrição da palestra, "não bata na parede", em texto: uma cabeça treinada em três frases com dígitos, tipo guardrail, somada à energia de todo estado imaginado. A medida é direta: fração de tokens numéricos no gerado, com e sem o guardrail, para o mesmo rumo.
| Configuração | tokens numéricos | PPL |
|---|---|---|
| livre | 40,6% | 10,7 |
| rumo, sem guardrail | 62,5% | 6,0 |
| rumo + guardrail "sem-numeros" | 62,5% | 5,7 |
Com γ = 1 o guardrail não moveu nada: 62,5% de tokens numéricos com e sem ele — a mesma escala que apagava a tarefa apagava a restrição. Com γ = 0,1:
| Configuração | tokens numéricos | PPL |
|---|---|---|
| livre | 40,6% | 10,7 |
| rumo, sem guardrail | 45,2% | 13,0 |
| rumo + guardrail "sem-numeros" | 14,3% | 38,6 |
| rumo + guardrail no estado real | 27,6% | 26,1 |
De 45% para 14% de dígitos, num prompt feito para puxar números — a restrição "não fale de números", posta em três frases, funciona quando tem escala para agir. O preço é plausibilidade (PPL 13 → 39): depois de "o total foi de", evitar dígitos obriga o modelo a continuar de um jeito menos provável, e é isso que a PPL mede. No wm1n2-sz1: livre 50,0%, rumo 50,0%, guardrail só no imaginado 46,9%, guardrail no estado real 25,8% (PPL 11,9). No wm1n2z16-sz1: livre 53,1%, guardrail no estado real 0,0% de dígitos, com PPL 48 — a restrição cumprida à risca, ao preço de plausibilidade que "o total foi de" sem número cobra. No wm1n2e-sz1, o mesmo: 0,0% no estado real (PPL 42,8), e 50,0% só no imaginado. No wm1n2mem-sz1: 62,5% em tudo, exceto no estado real, 31,2%. No wm0.1-sz1: 56,2% em tudo, exceto no estado real, 25,0%. Em seis de sete mapas, o guardrail só age no estado real; o imaginado sozinho só bastou no mapa mais preciso. No oitavo (wm0.1n2-sz1-lat1o) o guardrail não agiu de jeito nenhum: 62,5% de dígitos com e sem, no imaginado e no real — o primeiro mapa em que a cabeça "sem-numeros" (acurácia 0,995 no treino) não move a geração. A tarefa governa e a restrição não, no mesmo modelo: as duas cabeças não falham juntas. No nono (wm1n2z16zd0.5-sz1), de volta ao padrão: 38,7% livre, 0,0% com o guardrail no estado real (PPL 41,5). No décimo (wm1n2e-sz1-ss1): 31,2% livre, 12,5% com o rumo, 0,0% com o guardrail no estado real (PPL 44,0). No décimo primeiro (wm-sobre-dino): 59,4% livre, 34,4% com o rumo, 12,5% com o guardrail no estado real (PPL 26,4). No décimo segundo (wm1n2en-sz1): 50,0% livre, 26,7% só no imaginado, 12,5% no estado real (PPL 22,9). No wm1-sz1 o estado real não ajudou (27,6% contra 14,3%); no wm1det foi o contrário — o guardrail só nos estados imaginados não moveu nada (50,0% com e sem) e o guardrail no estado real reduziu para 25,8%. Onde o mapa é mais preciso (wm1-sz1), o futuro imaginado basta; onde é menos (wm1det), é o estado real que segura. As duas formas ficam ligadas por padrão na bancada.
"Levantar da cadeira não exige planejar." Com plan_if_entropy, o planejador só roda quando a entropia do próximo token passa do limiar; abaixo, a cabeça de tokens decide como uma política. A pergunta é quanto do custo se economiza sem perder o leme:
| Limiar de entropia | fração planejada | afinidade (juiz) | s/token |
|---|---|---|---|
| 0 (planeja sempre) | 100% | 0,157 | 0,04 |
| 2,0 | 88% | 0,165 | 0,04 |
| 3,0 | 62% | 0,200 | 0,03 |
| 4,0 | 41% | 0,172 | 0,03 |
Com γ = 1, planejar em 41% dos tokens em vez de 100% não custou afinidade — o planejamento não estava comprando afinidade. Com γ = 0,1 (modo energy puro, o mais fraco dos que governam): 100% → 0,200; 94% → 0,200; 73% → 0,209; 54% → 0,212. Planejar só onde há dúvida não perde nada e corta metade do custo. O mecanismo está certo. Sobre a melhor configuração da tabela (cabeça + estado real, γ = 0,1): limiar 2,0 → 98% planejado, 0,355, PPL 36,7; 3,0 → 90%, 0,357, 37,0; 4,0 → 77% planejado, 0,355, PPL 36,8 — um quarto do custo some e nada se perde. O planejador só é necessário onde o modelo tem dúvida; onde não tem, a política basta, como a palestra disse.
Medir o leme com o embedding do próprio modelo é medir com a régua do réu. A cabeça de custo é "uma projeção sobre a representação" de qualquer encoder; treinada no encoder de outra rodada, ela julga o texto gerado sem partilhar o espaço com quem o gerou (costs.py --score). A tabela do §2 usa esse juiz. A validação do juiz é a tabela abaixo: a mesma cabeça, o mesmo conjunto de frases, em cada encoder disponível.
| Encoder | acurácia | |||
|---|---|---|---|---|
reg1-lat1o (o juiz) | 0,99 | 0,940 | 0,104 | 0,081 |
wm1-sz1 | 0,99 | 0,888 | 0,523 | 0,001 |
wm1det | 1,00 | 0,910 | 0,868 | 0,337 |
wm1n2-sz1 | 0,99 | 0,536 | 0,449 | 0,525 |
wm1n2-sz1, cabeça com dez frases | 0,96 | 0,713 | 0,570 | 0,057 |
wm1n2z16-sz1, cabeça com dez frases | 0,95 | 0,813 | 0,710 | 0,027 |
wm1n2e-sz1, cabeça com dez frases | 0,96 | 0,881 | 0,588 | 0,040 |
wm1n2mem-sz1, cabeça com dez frases | 0,96 | 0,890 | 0,728 | 0,030 |
wm0.1-sz1, cabeça com dez frases | 0,97 | 0,923 | 0,768 | 0,133 |
wm0.1n2-sz1-lat1o, cabeça com dez frases | 0,97 | 0,933 | 0,590 | 0,028 |
wm1n2z16zd0.5-sz1, cabeça com dez frases | 0,96 | 0,815 | 0,667 | 0,091 |
wm1n2e-sz1-ss1, cabeça com dez frases | 0,96 | 0,804 | 0,672 | 0,209 |
wm-sobre-dino (encoder DINO), cabeça com dez frases | 0,97 | 0,873 | 0,427 | 0,025 |
wm1n2en-sz1, cabeça com dez frases | 0,96 | 0,835 | 0,686 | 0,003 |
reg1 (controle, sem modelo de mundo), cabeça com dez frases | 0,97 | 0,899 | 0,414 | 0,581 |
reg1-dino1-lat1o (o encoder do DINO-WM), cabeça com dez frases | 0,97 | 0,873 | 0,427 | 0,025 |
A tabela fechou sem célula vazia. Duas leituras: o controle sem modelo de mundo (reg1) é o único encoder em que a cabeça confunde código com futebol (0,581) — todos os encoders treinados com modelo de mundo separam código com folga (0,003 a 0,209), o que sugere que prever o estado seguinte organiza o espaço por domínio. E o encoder do DINO dá exatamente os mesmos números no wm-sobre-dino, como deve: o modelo de mundo em dois estágios não toca o encoder, então a cabeça é a mesma.
Um piloto automático tem dois mostradores: o rumo que quer e as zonas onde não pode entrar. O primeiro é a cabeça de tarefa; o segundo, os guardrails. O modo de inferência é como ele lê os mostradores: olhando os próximos três pontos do mapa (energia), a derivada da bússola (gradiente), ou traçando a rota inteira e refazendo a cada milha (mpc). E "política ou plano" é o que qualquer piloto faz: em mar aberto e sem dúvida, deixa o leme fixo.
mpc custa 16× o modo energy. O gating por entropia é a economia óbvia; a outra é reaproveitar o plano Com as apostilas 05, 11 e 12 preenchidas, o mapa 00 muda de tabela. As quatro falhas que elas deixaram medidas voltam a LeCun na apostila 13 — o guardrail só no estado real, em particular, fecha lá.