Antevisão · Latent Rehearsal
12

Custos aprendidos
e modos de inferência

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.

Apostila 12 Pré-requisito: 09, 10 e 05

1 A energia

Em todo modo de inferência, cada estado imaginado z recebe uma energia:

E(z) = tarefa(z) + γc Σ guardraili(z)  +  γ · (−log p) acumulado ao longo da trajetória

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:

As duas fontes de custo. A segunda é a resposta da palestra ao engenheiro de MPC: "uma cabeça pequena sobre a representação, treinada com pouquíssimas amostras — um projetor por restrição".
Fontetarefa(z)guardrail(z)Precisa de
rumo em texto1 − cos(z, média dos estados do rumo)só o −log puma frase
cabeça aprendida (costs.py)1 − p(z), regressão logística sobre zp(z) de uma cabeça treinada no que se quer evitartrês frases positivas; negativos = janelas aleatórias

A cabeça, medida antes de ser usada

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:

Cabeça "futebol" (tarefa), encoder de reg1-lat1o — o juiz das tabelas do §2. p = média sobre os tokens da frase.
Frasep(futebol)tokens acima de 0,5
"O zagueiro marcou o gol de cabeça e o estádio explodiu"0,940100%
"A taxa de juros subiu meio ponto nesta quarta-feira"0,1048%
def soma(a, b): return a + b0,0810%

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.

2 Os modos de busca

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:

Modelo wm1-sz1 (modes.py), rumo "futebol gol campeonato", 4 prompts × 32 tokens, β = 8, horizonte 3, amostragem a 0,9. Afinidade pelo juiz independente (cabeça "futebol" treinada no encoder de reg1-lat1o, outro modelo). PPL pelo próprio gerador. Surpresa: razão surpresa/piso da trajetória.
Modoafinidade (juiz)PPL do geradosurpresaenergia previstas/token
livre (sem leme)0,25648,50,170—0,02
additive (controle negativo)0,19182,40,148—0,02
energy0,15710,30,1685,920,04
gradient0,22828,70,1462,870,03
mpc0,21112,70,1470,910,09
mpc + cabeça aprendida0,23220,70,1430,980,09
energy + nível 2 planejadosem nível 2 neste modelo — espera wm1n2-sz1
Primeira leitura, com γ = 1: nenhum modo governa

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 p em nats, acumulado em três passos — diferenças de vários nats entre candidatos —, e a tarefa vive em [0, 1]. Com γ = 1, a plausibilidade decide sozinha e o rumo muda a terceira casa decimal. Um termo de energia mal escalado é invisível; a tabela abaixo é a mesma com γ = 0,1.

A mesma tabela com γ = 0,1 (e o custo no estado real, §1 da apostila 10 — o candidato colado ao contexto, uma passada em lote). Tudo o mais igual.
Modoafinidade (juiz)PPL do geradosurpresaenergia previstas/token
livre (sem leme)0,25648,50,170—0,02
energy0,20019,80,1621,510,04
gradient0,339149,60,1680,640,03
mpc0,21948,50,1410,760,09
mpc + cabeça aprendida0,26869,70,1460,550,09
energy + custo no estado real (cosseno)0,251149,20,2591,530,06
energy + cabeça aprendida + estado real0,35536,70,1621,510,06
o mesmo, γ = 0,020,46588,50,1650,750,06
A mesma configuração nos três mapas fechados, γ = 0,1: wm1-sz1 (ponta a ponta, +9,59% no gerador), wm1det (stop-grad, +1,11%) e wm1n2-sz1 (hierárquico, +8,78%).
Modowm1-sz1PPLwm1detPPLwm1n2-sz1PPL
livre (sem leme)0,25648,50,32375,60,29253,0
energy0,20019,80,29629,20,22919,0
mpc0,21948,5——0,31133,3
mpc + cabeça aprendida0,26869,70,28144,90,28039,4
energy + nível 2 planejado————0,24518,0
energy + cabeça aprendida + estado real0,35536,70,41545,10,21228,4
o mesmo, cabeça com dez frases no gerador————0,34469,8
o mesmo, no wm1n2z16-sz1 (ζ amostrado; livre 0,265 / PPL 95,6)0,38367,7
o mesmo, no wm1n2e-sz1 (encoder de nível 2 aprendido; livre 0,345 / PPL 52,8)0,43076,6
o mesmo, no wm1n2mem-sz1 (memória persistente; livre 0,343 / PPL 61,5)0,25826,0
o mesmo, no wm0.1-sz1 (peso 0,1; livre 0,262 / PPL 48,7)0,36648,4
o mesmo, no wm0.1n2-sz1-lat1o (a combinação; livre 0,370 / PPL 59,6)0,41733,5
o mesmo, no wm1n2z16zd0.5-sz1 (ζ com dropout, canal fechado; livre 0,243 / PPL 62,6)0,32451,7
o mesmo, no wm1n2e-sz1-ss1 (SigReg nos estados abstratos; livre 0,287 / PPL 93,7)0,33996,4
o mesmo, no wm-sobre-dino (dois estágios, encoder DINO congelado; livre 0,281 / PPL 88,6)0,43684,1
o mesmo, no wm1n2en-sz1 (encoder de nível 2 só de escala; livre 0,280 / PPL 87,9)0,35755,4
Segunda leitura, com γ = 0,1: o leme governa

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.

O que cada coluna decide

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.

Guardrail: "não fale de números"

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.

Rodada wm1-sz1, modo energy, γc = 1, 3 gerações por configuração. Prompt que puxa números ("Em 1999, o total foi de").
Configuraçãotokens numéricosPPL
livre40,6%10,7
rumo, sem guardrail62,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:

O mesmo teste com γ = 0,1. "Estado real" = a cabeça aplicada também ao candidato colado ao contexto.
Configuraçãotokens numéricosPPL
livre40,6%10,7
rumo, sem guardrail45,2%13,0
rumo + guardrail "sem-numeros"14,3%38,6
rumo + guardrail no estado real27,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.

Política ou plano

"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:

Modo energy, mesmo rumo. Fração planejada = tokens em que o planejador rodou.
Limiar de entropiafração planejadaafinidade (juiz)s/token
0 (planeja sempre)100%0,1570,04
2,088%0,1650,04
3,062%0,2000,03
4,041%0,1720,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.

3 O juiz independente

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.

Cabeça "futebol" treinada com as mesmas três frases em cada encoder; acurácia no treino e p nas três frases-teste do §1.
Encoderacuráciap futebolp economiap código
reg1-lat1o (o juiz)0,990,9400,1040,081
wm1-sz10,990,8880,5230,001
wm1det1,000,9100,8680,337
wm1n2-sz10,990,5360,4490,525
wm1n2-sz1, cabeça com dez frases0,960,7130,5700,057
wm1n2z16-sz1, cabeça com dez frases0,950,8130,7100,027
wm1n2e-sz1, cabeça com dez frases0,960,8810,5880,040
wm1n2mem-sz1, cabeça com dez frases0,960,8900,7280,030
wm0.1-sz1, cabeça com dez frases0,970,9230,7680,133
wm0.1n2-sz1-lat1o, cabeça com dez frases0,970,9330,5900,028
wm1n2z16zd0.5-sz1, cabeça com dez frases0,960,8150,6670,091
wm1n2e-sz1-ss1, cabeça com dez frases0,960,8040,6720,209
wm-sobre-dino (encoder DINO), cabeça com dez frases0,970,8730,4270,025
wm1n2en-sz1, cabeça com dez frases0,960,8350,6860,003
reg1 (controle, sem modelo de mundo), cabeça com dez frases0,970,8990,4140,581
reg1-dino1-lat1o (o encoder do DINO-WM), cabeça com dez frases0,970,8730,4270,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.

Analogia

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.

Perguntas em aberto

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á.