🌐caesen

Els prompts no són màgia: vectors latents, gravetat estadística i la frustració de no poder obrir el cervell d’un LLM

La sensació estranya

Últimament estic entrant bastant dins el forat dels LLMs.

No només usar-los. No només "fes-me un CRUD".

Sinó intentar entendre què collons passa realment aquí dins.

I com més mires, més apareix una sensació rara:

sembla que els prompts no siguin instruccions, sinó una mena de forces estadístiques.

No sembla programació clàssica. No sembla semàntica formal. No sembla un AST.

Sembla més aviat intentar empènyer una massa gegantina dins un espai latent enorme esperant que aterri a una regió útil.


El problema mental dels enginyers

Quan vens del món clàssic del software, el cervell espera coses com:

input -> parsing -> semàntica -> execució

Però amb LLMs la sensació és:

text -> embeddings -> trajectòria latent -> distribució probabilística

I això és bastant desconcertant.

Perquè no tens garanties fortes.

No hi ha:

PromptQuality(prompt) = 0.87

No pots demostrar formalment que un prompt és millor.

La majoria del temps:

  • proves coses
  • compares outputs
  • ajustes wording
  • repeteixes
  • fas una mena d'alquímia guiada per estadística.

La pregunta absurda però important

En un moment donat em vaig preguntar:

quina és la coordenada vectorial entrenada de "hola món"?

I encara que la pregunta sembli absurda… en realitat apunta bastant al cor del problema.

Perquè dins un Transformer, els tokens sí que es converteixen en vectors.

Alguna cosa conceptualment similar a:

hola -> [0.021, -0.44, 1.88, ...]
món  -> [-0.77, 0.12, 0.003, ...]

amb milers de dimensions.

Però el més bèstia és que:

"hola món" no té una coordenada fixa.

Depèn del:

  • context
  • posició
  • sistema prompt
  • historial
  • tokens previs

És més una trajectòria latent que no pas una coordenada única.


El mur dels models tancats

Aquí arriba una frustració important.

Amb models tancats:

  • GPT
  • Claude
  • Gemini

no pots veure pràcticament res.

Només tens:

prompt -> output

No pots:

  • inspeccionar neurones
  • veure activacions
  • tocar embeddings
  • mirar circuits
  • fer probes internes

És una caixa negra gegant.


Però amb models open-source sí que pots obrir-los

I aquí la cosa es torna molt més interessant.

Amb models open-source:

  • Llama
  • Qwen
  • Mistral
  • GPT-2

pots literalment inspeccionar el cervell.

Per exemple:

embedding = model.model.embed_tokens.weight

I tens la taula sencera d'embeddings.

També pots mirar activacions internes:

hidden_states = outputs.hidden_states

I començar a investigar:

  • quines capes reaccionen
  • quines neurones s'activen
  • com canvia un prompt respecte un altre
  • quina trajectòria latent genera una frase.

La meva GPU és una patata

Aquí hi ha una altra realitat divertida.

Tinc:

  • una GTX 1650
  • 16GB de RAM

O sigui:

homelab de pobre

Però curiosament per interpretabilitat això no és tan greu.

De fet, models petits són probablement millors per començar.

Per exemple GPT-2 small.

Amb eines com TransformerLens pots fer experiments molt interessants:

from transformer_lens import HookedTransformer

model = HookedTransformer.from_pretrained("gpt2-small")

prompt = "hola món"
tokens = model.to_tokens(prompt)

logits, cache = model.run_with_cache(tokens)

print(tokens)
print(cache["hook_embed"].shape)
print(cache["blocks.0.hook_resid_pre"].shape)

Això ja et deixa mirar:

  • embeddings
  • residual stream
  • activacions per capa
  • diferències entre prompts.

La part que em va explotar el cap

Hi ha una intuïció que em sembla cada cop més plausible:

els prompts són una interfície humana per moure vectors latents.

Per exemple:

Actua com un arquitecte software

probablement NO activa:

mode_architecte = true

Sinó que empeny el model cap a una regió latent associada estadísticament a:

  • blogs tècnics
  • clean architecture
  • DDD
  • documentació
  • discussions de disseny
  • review tècnic.

És molt diferent.


El tema Donald Knuth

A partir d'aquí va sortir una pregunta encara més estranya.

Les frases de Donald Knuth tenen més "pes latent" que les meves?

I crec que la resposta és:

sí, però no per autoritat màgica

El model no guarda:

Knuth = veritat
Francesc = random

Però sí que aprèn correlacions estadístiques.

Donald Knuth apareix associat a:

  • algoritmes
  • rigor
  • computer science clàssica
  • estil acadèmic
  • explicacions consistents.

Això crea una mena de "gravetat estadística".

Per tant prompts com:

respon amb el rigor de Donald Knuth

potser empenyen el model cap a:

  • justificacions més curoses
  • menys vibe coding
  • estil més formal
  • més precisió terminològica.

Però això NO vol dir que sigui veritat absoluta.

Només que durant entrenament aquests patrons van quedar molt ben definits.


El perill del roleplay

També hi ha una trampa enorme.

Els LLMs són increïbles generant:

  • aparença de profunditat
  • aparença de rigor
  • aparença d'autoritat.

Per això:

actua com un arquitecte senior

pot donar:

  • DDD legítim
  • o pornografia enterprise plena de buzzwords.

El model pot sonar intel·ligent sense ser-ho.

I crec que aquí hi ha un dels grans problemes actuals de la IA generativa.


El que probablement funciona millor

Cada cop sospito més que:

els criteris explícits són més fiables que el roleplay

Per exemple això:

Criteris:
- minimitza acoblament
- explica trade-offs
- detecta overengineering
- proposa tests que trenquin el disseny
- dona una opció simple abans d'una sofisticada

probablement és més estable que:

actua com un arquitecte software

Perquè els criteris són observables.

El roleplay és més difús.


El camp que em sembla més interessant de tots

Hi ha tota una disciplina que intenta fer reverse engineering dels Transformers:

  • mechanistic interpretability
  • representation engineering
  • activation steering
  • sparse autoencoders
  • circuit analysis.

La idea és intentar entendre:

  • quins circuits existeixen
  • quines neurones representen patrons
  • com es mou el model dins l'espai latent
  • si podem trobar "direccions" associades a conceptes.

Això em sembla infinitament més interessant que la majoria del hype de prompt engineering.


La conclusió rara

Crec que una de les sensacions més estranyes dels LLMs és aquesta:

semblen software, però no funcionen com software.

No els programes exactament.

Els influences.

Els empenys.

Els mous dins un espai probabilístic gegant.

I encara avui:

no entenem completament què està passant dins.

Potser per això la sensació és tan rara.

I potser també per això enganxa tant.