24 · Multimodalitat
Idea central: el Transformer és agnòstic a la modalitat. Si pots convertir qualsevol cosa (píxels, ones sonores, fotogrames, accions) en una seqüència de vectors, la pots posar dins del mateix model. Aquesta universalitat és la raó per la qual la IA ha convergit en una sola arquitectura.
1. Vision Transformer (ViT)# sense fórmules
Dosovitskiy et al. (2020): "una imatge val 16×16 paraules".
- Divideix la imatge en patches (p. ex. 14×14 o 16×16 píxels).
- Aplana cada patch i projecta'l linealment → un "token" de dimensió .
- Afegeix embeddings posicionals.
- Passa-ho per un Transformer estàndard.
Una imatge de 224×224 amb patches de 16 dona 196 tokens. A resolucions altes, el nombre de tokens creix quadràticament — d'aquí que la compressió de tokens visuals sigui una de les àrees més actives.
ViT vs CNN: les CNN tenen biaixos inductius (localitat, invariància a translació) que les fan eficients amb poques dades. Els ViT no en tenen i necessiten moltes més dades — però escalen millor. A partir de cert volum, guanyen. (Els híbrids ConvNeXt i les arquitectures amb resolució nativa variable barregen el millor dels dos.)
Una imatge en tokens
Quants tokens fa una imatge, i què passa quan es tallen i es tornen a unir? I la frase del text sobre ViT i CNN —les CNN són eficients amb poques dades, els ViT escalen millor—, surt quan es mesura?
«un quadrat vermell a dalt a l'esquerra i un quadrat blau a dalt a la dreta i una creu groga a baix a l'esquerra»
La seqüència que entra al Transformer: 16 tokens
Davant de tot hi va un vector CLS après, i a cada vector se li suma un embedding de posició après: el ViT del text, amb 17 posicions.
Quina imatge de joguina es talla.
- 224×224, patches de 16
- 196 tokens
- a 448×448
- 784 tokens
- joguina, 16×16 amb 4
- 16 tokens de 48
- paràmetres: ViT / CNN
- 7.104 / 1.460
Els 196 del text són (224/16)² = 14². El nombre de tokens creix amb el quadrat de la resolució: doblar el costat multiplica el nombre per quatre, i amb l’atenció, que és quadràtica en el nombre de tokens, el cost en fa setze.
Tallar en patches i aplanar-los no perd res: és només una altra manera d’ordenar els mateixos números. Cada patch aplanat és un vector de 48 components que una matriu projecta a la dimensió del model, i a partir d’aquí el Transformer no sap si el vector ve d’una paraula o d’un tros d’imatge. Aquest ViT ho fa amb el Transformer del fitxer 11, posant els vectors a l’entrada en lloc dels de la taula d’embeddings (i, comprovat, si li poses les files de la taula surten els mateixos logits bit a bit).
| imatges | ViT | CNN |
|---|---|---|
| 100 | 52,3 % | 96,3 % |
| 400 | 79,8 % | 99,8 % |
| 1.600 | 94,8 % | 100,0 % |
| 6.400 | 93,0 % | 100,0 % |
La meitat de la frase surt: amb poques dades la CNN és molt més eficient, i la diferència es tanca amb dades, de 44 punts a 7. L’altra meitat, que a partir de cert volum el ViT guanya, no surt a aquesta escala: amb 6.400 imatges la CNN ja és al 100 % i el ViT no la passa. Els volums on el ViT guanya són de desenes de milions d’imatges. Mesurat a Node, 800 passos amb lots de 16 per a tots dos. I la CNN ho fa amb 1.460 paràmetres, contra els 7.104 del ViT.
Aquí és on el biaix inductiu es nota de debò. La convolució aplica el mateix filtre a tot arreu i la mitjana global no mira on és el que ha trobat: la CNN reconeix a la dreta el que només ha vist a l’esquerra. El ViT té un embedding de posició après per a cada patch, i el que ha après dels patches de l’esquerra no passa sol als de la dreta: ho ha d’aprendre de les dades, i aquí no n’hi havia.
Repeteix aquí una casella de les taules: el ViT i la CNN, 800 passos cadascun amb lots de 16, alternats. Els números poden no coincidir exactament amb els de Node: el navegador calcula exp i log amb una altra biblioteca.
2. CLIP i SigLIP: l'alineació imatge-text# sense fórmules
CLIP (Radford et al., 2021) entrena dos encoders (imatge i text) perquè les parelles correctes tinguin embeddings similars, amb una pèrdua contrastiva InfoNCE sobre un batch de parelles:
Conseqüències: classificació zero-shot (compara l'embedding de la imatge amb els de "una foto d'un gat", "una foto d'un gos"...), cerca imatge↔text, i —el més important— un encoder visual amb representacions alineades amb el llenguatge, que és el que fa servir la majoria de VLMs.
SigLIP substitueix la softmax global per una pèrdua sigmoide per parell: no necessita batches gegants ni normalització global, i escala millor. És l'encoder per defecte de moltes famílies actuals.
Alinear imatges i text
Dos encoders entrenats perquè la imatge i la seva frase quedin a prop. La pèrdua és la del text? Classifiquen sense haver vist mai una etiqueta, i combinacions que no han vist mai? I què canvia la mida del lot amb la softmax i amb la sigmoide?
Els models encara no hi són.
On és l’objecte i quin lot es mostra.
Descarregant els pesos de CLIP, SigLIP i el VLM (604 kB)…
| lot | CLIP, zero-shot | SigLIP, zero-shot | CLIP, R@1 | SigLIP, R@1 |
|---|---|---|---|---|
| 4 | 28,5 % | 45,0 % | 83,8 % | 85,6 % |
| 16 | 54,0 % | 73,5 % | 93,1 % | 96,9 % |
| 64 | 58,0 % | 76,0 % | 96,3 % | 97,5 % |
Totes dues milloren amb el lot, i SigLIP és per sobre de CLIP a totes les mides. La diferència més gran és amb lots petits: amb 4 parelles, la softmax només té 3 negatius per imatge i aprèn poc de cada pas; la sigmoide aprofita igualment cada casella. Amb 16, SigLIP ja passa del que CLIP fa amb 64. És el que el text diu, a escala de joguina: la softmax global necessita lots grans; la sigmoide, no tant. R@1 és trobar la frase bona entre 16. Mesurat a Node; el zero-shot és sobre 200 imatges, i un punt de diferència és soroll.
Repeteix una casella de la taula: 25.600 parelles, és a dir 6.400 passos amb lots de 4.
3. Com es construeix un VLM# sense fórmules
Arquitectura d'adaptador (la clàssica, 2023-2024)
imatge → [encoder visual congelat: SigLIP/CLIP] → [projector: MLP o Q-Former] → tokens visuals
↓
text → tokens ────────────────────────────────────────────────────────────→ [ LLM ] → resposta
- LLaVA: un simple MLP de projecció + fine-tuning amb instruccions visuals. Sorprenentment efectiu i molt reproduït.
- Flamingo / BLIP-2: cross-attention o Q-Former (un mòdul que comprimeix les característiques visuals a un nombre fix de tokens).
- Entrenament per fases: alinear el projector amb l'LLM congelat → fine-tuning conjunt amb dades d'instrucció visual.
Fusió nativa (la frontera, 2025-2026)
Els models actuals no s'entrenen com "un LLM amb un adaptador enganxat": es preentrena un sol tronc amb text, imatges, àudio i vídeo entrellaçats des del principi. Avantatges: millor transferència entre modalitats, capacitat de generar en diverses modalitats amb el mateix model, i raonament genuïnament creuat. La tendència de 2026 és que aquest tronc únic vagi cap a un model del món que prediu i actua, no només que descriu.
Resolució dinàmica: els models moderns processen imatges a resolució i relació d'aspecte natives (dividint en mosaics + una vista global) en lloc de forçar 224×224, cosa que és decisiva per a documents, captures de pantalla i text petit dins d'imatges.
Un VLM amb adaptador
L’encoder de SigLIP congelat, un projector i un mini-GPT. Què es mou a cada fase, i què en surt? Quant es perd comprimint la imatge a M tokens? I quants tokens fa un document a resolució nativa?
La frase bona: un triangle groc i un quadrat verd
Els models encara no hi són.
Quina escena es descriu.
Descarregant els pesos de CLIP, SigLIP i el VLM (604 kB)…
| projector | tokens del prefix | escenes encertades |
|---|---|---|
| MLP | 17 | 42,0 % |
| Q-Former, M = 1 | 1 | 35,8 % |
| Q-Former, M = 2 | 2 | 40,8 % |
| Q-Former, M = 4 | 4 | 43,0 % |
| Q-Former, M = 8 | 8 | 49,0 % |
| Q-Former, M = 16 | 16 | 49,0 % |
Per no entrenar un VLM per a cada M, el prefix alimenta una sonda lineal que ha de dir quins objectes hi ha (16 sí-o-no) i compta les escenes on els diu tots bé. M consultes apreses atenen sobre els 17 vectors de l’encoder i en fan M mitjanes ponderades: comprimir a 1 perd informació; a partir de 8 no se’n guanya més, perquè el coll d’ampolla ja és l’encoder. L’MLP passa els 17 vectors tal qual, però cada un per separat, i la sonda lineal no els sap combinar tan bé com l’atenció del Q-Former. Mesurat a Node, 8.000 escenes d’entrenament i 2.000 passos; un punt de diferència és soroll (400 escenes de prova).
Repeteix una fila: primer les característiques de 8.400 escenes amb l’encoder congelat, després 2.000 passos de la sonda.
Amb patches de 14, cada mosaic de 448×448 són 1.024 tokens, i se’n fan els que calguin per cobrir la imatge sencera (3×2) i un més amb la imatge reduïda a un mosaic, perquè el model en vegi el conjunt. Són 28,0 vegades els tokens de forçar-la a 224×224, que és el preu de no perdre detall: reduint 1344×896 a 224×224, una lletra de 12 píxels d’alt queda en 2,0 píxels, i no hi ha model que la llegeixi.
Les tres fases, amb la mateixa llavor i sobre l’encoder desat, al teu navegador. En acabar es comparen els pesos amb els desats, paràmetre a paràmetre.
4. Àudio i vídeo# sense fórmules
Àudio:
- Reconeixement de veu: Whisper (encoder-decoder sobre espectrogrames mel) com a referència oberta.
- Tokenització d'àudio: còdecs neuronals (EnCodec, SoundStream) converteixen l'ona en tokens discrets → el llenguatge i l'àudio comparteixen el mateix tipus de seqüència.
- Veu a veu de baixa latència: models nadius que processen àudio d'entrada i generen àudio de sortida sense passar per text, preservant to, emoció i permetent interrupcions naturals. És l'estàndard de les interfícies de veu de 2026.
Vídeo:
- Problema central: el cost. Un minut a 30 fps són 1.800 imatges → milions de tokens. Solucions: mostreig temporal, compressió de tokens (fusió de patches semblants, poda espaciotemporal), atenció jeràrquica i memòria.
- La generació de vídeo és territori de la difusió amb Transformers (DiT) — vegeu 28pendent.
El cost del vídeo
Quants tokens fa un vídeo, i quants se n’estalvien mostrejant menys fotogrames i no tornant a enviar els trossos que no canvien? Hi caben 10 minuts en 128.000?
Els tokens, contra el pressupost de 128.000
La ratlla vertical és el pressupost de 128.000 tokens.
Els primers fotogrames mostrejats del clip: en groc, els patches que s’envien
196: 224×224 amb patches de 16. 576: 336×336 amb patches de 14.
- 1 min a 30 fps
- 352.800 tokens
- amb mostreig i fusió
- 352.800 tokens
- fusionats (mesurat)
- 0,0 %
- moviment conservat
- 100,0 %
Un minut són 1.800 fotogrames, i cadascun és una imatge sencera: 1.800 × 196 = 352.800 tokens. El text diu «milions de tokens»: amb 196 per fotograma s’hi arriba als tres minuts, i amb els 576 d’un encoder a 336×336 ja hi és el primer minut (1.036.800). Una hora a 30 fps amb 196, 21.168.000.
És la palanca més grossa i la més bruta: el que passa entre dos fotogrames mostrejats no arriba al model. A 1 fps, una acció que dura mig segon pot no sortir a cap fotograma. Per això els models que miren vídeo llarg mostregen poc i de manera desigual, més on hi ha canvis.
Un patch que gairebé no ha canviat des de l’últim que es va enviar a la mateixa posició no es torna a enviar. «Gairebé» és el llindar sobre l’error quadràtic mitjà, i el soroll del sensor el condiciona: dos fotogrames d’un fons quiet amb soroll σ difereixen en 2σ² = 0,0018 de mitjana. Per sota d’això no es fusiona res; una mica per sobre es fusiona tot el fons; massa amunt es fusionen també patches on l’objecte s’ha mogut, i el model es perd el moviment. La fracció es mesura sobre un clip sintètic de 20 s amb el fons quiet i s’aplica al minut: un vídeo de debò amb la càmera en moviment en fusionaria molt menys.
A 1 fps i sense fusionar, 10 minuts són 600 × 196 = 117.600 tokens. Amb fusió, s’hi pot mostrejar més sovint.
L’àudio en tokens
Un segon de so: quants fotogrames d’espectrograma, quants tokens amb un còdec de quantització residual, i quant s’assembla el que es reconstrueix a l’original a cada nivell?
Entrenant els diccionaris de l’RVQ…
5. Models d'acció: VLA# sense fórmules
Vision-Language-Action: models que produeixen accions de robot en lloc de text (RT-2, OpenVLA, π0 i successors). L'observació clau és que el coneixement semàntic del preentrenament web transfereix a la manipulació física: un robot que mai ha vist un objecte pot manipular-lo si el model sap què és.
Reptes: dades (no hi ha "internet de la robòtica"), la bretxa sim-to-real, la freqüència de control (els models grans són lents per al control en temps real → arquitectures de dos nivells: un model lent que planifica i un de ràpid que executa).
Pensar lent, actuar ràpid
Un model gran entén «segueix el vermell», però triga a respondre. Què passa si el robot només l’escolta a ell, i què hi guanya un controlador ràpid que executa el que el gran ha decidit?
L’error de seguiment contra la latència del model lent
- el lent sol
- dos nivells
- el ràpid sol
- 1,5·L·v
Els últims 400 passos: dos nivells
En vermell i en blau, els dos objectes; ara la instrucció diu el blau. La línia discontínua és el robot.
- error, el lent sol
- 0,212
- error, dos nivells
- 0,020
- error, el ràpid sol
- 0,172
- decisions del lent
- 120
La decisió que el model pren amb el que veu a l’instant t₀ arriba a t₀ + L, i es fa servir fins a la següent, a t₀ + 2L: l’objectiu té de mitjana 1,5·L passos de retard, i un objecte a velocitat v ja és 1,5·L·v més enllà. Els objectes giren i reboten, i el desplaçament és més curt que el camí, de manera que la mesura queda per sota de la fita. Amb les instruccions que canvien, el lent sol fa 0,212: cada canvi l’envia a l’objecte nou amb retard.
El model lent només diu quin objecte, que és el que no canvia de pressa i el que necessita entendre la instrucció. El controlador ràpid fa la resta a cada pas, amb el que veu ara. L’error que queda és el de reaccionar a un canvi d’instrucció, que encara triga entre L i 2L passos. És l’arquitectura del text: un model lent que planifica i un de ràpid que executa.
Sense el model gran no hi ha qui llegeixi «el vermell»: el controlador ràpid pot seguir qualsevol cosa perfectament, però no sap quina. El coneixement semàntic —què és el vermell, què vol dir «agafa la tassa»— és el que el model gran porta del preentrenament, i és el que fa que un robot que mai ha vist un objecte el pugui manipular si el model sap què és.
6. Avaluació multimodal# sense fórmules
Benchmarks habituals: MMMU (raonament expert multidisciplinari amb imatges), MathVista (matemàtiques visuals), DocVQA i ChartQA (documents i gràfics), MMBench, VideoMME. Per a generació: FID i CLIPScore (imperfectes), i cada cop més preferència humana i jutges multimodals.
Mirar o endevinar
Quan el VLM descriu una imatge, quants dels objectes que diu hi són de debò? Mira la imatge o diu el que a les dades sol anar junt? Sap comptar? I què diu d’una imatge negra?
Els models encara no hi són.
Quina escena es mostra d’exemple.
Descarregant els pesos de CLIP, SigLIP i el VLM (604 kB)…
7. Comprova que ho has entès#
0 de 6 resoltes
- Com converteix un ViT una imatge en tokens? Fes-ho amb números: una imatge de 448×448 amb patches de 14, quants tokens fa?Marge acceptat: ± 1,000
- Explica la pèrdua contrastiva de CLIP i què permet fer.
- Quina és la diferència entre l’arquitectura d’adaptador i la fusió nativa?
- Per què el vídeo és tan car? Un minut de vídeo a 30 fps, amb fotogrames de 224×224 i patches de 16: quants tokens?Marge acceptat: 2 %
- Cita tres patologies conegudes dels VLMs i com les detectaries.
- 10 minuts de vídeo han de cabre en una finestra de 128.000 tokens. Com ho faries?
Objectiu:Al widget «El cost del vídeo», posa 10 minuts amb 196 tokens per fotograma i configura el mostreig i la fusió de patches perquè el total quedi per sota de 128.000 tokens sense perdre més del 5 % dels patches on l’objecte s’ha mogut.
Vés al widget ↑minuts = per defecte · tpf = per defecte · fps = per defecte · fusio = per defecte · vel = per defecte · soroll = per defecte
8. Recursos#
Dosovitskiy et al. (2020), An Image is Worth 16x16 Words (ViT).
Radford et al. (2021), Learning Transferable Visual Models From Natural Language Supervision (CLIP).
Zhai et al. (2023), Sigmoid Loss for Language Image Pre-Training (SigLIP).
Liu et al. (2023), Visual Instruction Tuning (LLaVA).
Radford et al. (2022), Robust Speech Recognition via Large-Scale Weak Supervision (Whisper).