Multimodalita

Jak se do modelu dostane obrázek, zvuk a video.

Co se naučíš: Budeš umět odhadnout, kolik tokenů stojí obrázek, a poznáš, v čem model na obrázcích systematicky selhává.

8 min čtení + cvičeníNavazuje na:🏗️ Anatomie modelu

Moderní modely nezpracovávají jen text, přijmou obrázek, zvuk, PDF nebo video. Zvenku to vypadá jako magie, uvnitř je to překvapivě prostý trik: všechno se převede na tokeny a nacpe do stejného transformeru, který už znáš.


Obrázek jako posloupnost tokenů

Postup, kterému se říká Vision Transformer (ViT):

obrázek 448×448
  → rozřezat na dlaždice (patches), třeba 14×14 pixelů
  → 32×32 = 1024 dlaždic
  → každá dlaždice → lineární projekce → vektor d_model
  → přidat poziční informaci (kde dlaždice v obrázku byla)
  → tohle je „text“ o 1024 tokenech, který jde do modelu

Obrázek se tedy chová jako kus kontextu. Odtud plyne většina praktických dopadů:

  • Obrázky jsou drahé. Jeden snímek ve vysokém rozlišení může stát stovky až tisíce tokenů. Ve větším rozlišení víc dlaždic, tedy víc peněz a delší latence.
  • Zabírají kontextové okno. Deset obrázků v konverzaci ti sní podstatnou část okna.
  • Detail je limitován rozlišením. Když model „nevidí“ drobný text na fotce, je to proto, že se ztratil při dlaždicování, pomůže výřez nebo vyšší rozlišení.

Tohle je celý trik multimodality. Obrázek se převede na vektory, které vypadají přesně jako embeddingy tokenů, a od té chvíle je transformeru jedno, odkud přišly.


Jak se modality spojí

Pozdní fúze (adapter). Samostatný obrazový enkodér (často předtrénovaný, např. CLIP-like) vytvoří vektory a malá projekční vrstva je „přeloží“ do prostoru jazykového modelu. Rychlé na natrénování, dá se to přilepit k hotovému modelu, dlouho převažující přístup.

Raná fúze (nativní multimodalita). Model je od začátku trénovaný na směsi textu, obrázků a zvuku ve společném tokenovém prostoru. Dražší trénink, ale lepší propojení modalit, dnešní špičkové modely jdou touhle cestou.


Kolik to stojí v tokenech

Tohle je číslo, které rozhoduje o účtu za API, a přesto ho skoro nikdo nepočítá dopředu. Cena obrázku se odvíjí od počtu dlaždic, tedy od rozlišení.

VstupPřibližně tokenůOdpovídá zhruba
Ikona 64 krát 64 pxdesítkykrátká věta
Náhled 512 krát 512 pxstovkyodstavec textu
Snímek obrazovky 1920 krát 1080 px1 000 až 2 000dvě stránky textu
Stránka skenu ve vysokém rozlišení2 000 až 4 000kapitola
Minuta videa po 1 snímku za sekundudesítky tisíccelá kniha

Konkrétní čísla se u jednotlivých poskytovatelů liší, ale řád platí. Praktický důsledek: dvacet screenshotů v konverzaci je dražší a pomalejší než celá dosavadní historie chatu.

Dynamické dlaždicování. Modely si dnes s velkými obrázky poradí tak, že snímek rozřežou na mřížku výřezů, každý zpracují v nativním rozlišení a přidají k tomu ještě jeden zmenšený náhled celku. Model tak vidí detail i kontext zároveň. Odtud pochází nelineární skok v ceně: obrázek o něco větší než hranice dlaždice může stát dvojnásobek.


Proč model špatně počítá objekty a čte tabulky

Obrazové tokeny nesou význam scény, ne přesná měření. Dlaždice o velikosti 14 krát 14 pixelů je z hlediska modelu jedna nedělitelná jednotka, uvnitř které se detail rozmělní.

Z toho plynou typická selhání, na která se dá spolehnout:

  • Počítání. Kolik je na fotce lidí. Model odhaduje z celkového dojmu, nepočítá.
  • Přesné čtení čísel. Účtenky, tabulky, měřidla. Chyba v jedné číslici je běžná.
  • Prostorové vztahy. Co je vlevo od čeho, co je za čím.
  • Drobný text. Když je písmo menší než dlaždice, je nečitelné bez ohledu na to, jak dobrý model je.

Obrana je vždy stejná: zvýšit rozlišení nebo poslat výřez, u dokumentů dát přednost textové vrstvě před obrázkem a u čísel výsledek ověřit jiným způsobem.


Zvuk a video

Zvuk má dvě cesty do modelu. Buď se převede na spektrogram, tedy obrázek frekvencí v čase, a jde stejnou cestou jako obraz. Nebo se rovnou diskretizuje do audio tokenů vlastním kodérem, podobně jako BPE dělá tokeny z textu.

Rozdíl je zásadní u modelů, které umí mluvit. Klasická cesta „přepis, jazykový model, syntéza“ ztratí při prvním kroku všechno kromě slov: tón, váhání, důraz, smích. Model pracující přímo s audio tokeny tyhle informace vidí a umí je i generovat, proto zvládá přirozené přerušování a zpětné kanály typu „mhm“.

Video je z hlediska tokenů nejdražší modalita, protože počet snímků se násobí počtem dlaždic na snímek. Používají se proto tři úspory:

TechnikaCo dělá
Vzorkování snímkůz videa se vezme jen zlomek snímků, typicky jeden za sekundu nebo méně
Komprese v časesousední podobné snímky se sloučí do jedné reprezentace
Nižší rozlišení na snímekdetail se obětuje ve prospěch délky

Proto bývá práce s videem omezená na krátké úseky a proto model spolehlivě popíše, co se ve videu děje, ale mine událost, která trvala půl sekundy mezi vzorkovanými snímky.


Co s tím prakticky

  • PDF a skeny. Zvaž, jestli je vůbec potřeba posílat obrázek. Textová vrstva (nebo OCR) bývá mnohonásobně levnější a přesnější než nechat model číst sken.
  • Rozlišení laď vědomě. U schémat a tabulek se vyplatí vyšší, u fotky psa stačí nízké.
  • Nespoléhej na přesné čtení čísel z obrázku. U tabulek a účtenek dělá model chyby; když jde o data, ověřuj je.
  • Prompt injection funguje i přes obrázek. Text napsaný na obrázku model přečte a může ho vzít jako instrukci, platí na něj stejná opatření jako u textové injekce.

Cvičení

  1. Do konverzace vložíš pět snímků obrazovky v plném rozlišení. Odhadni, kolik z okna 128 k zaberou, a porovnej to s dosavadní historií chatu o 40 zprávách.
  2. Model má z fotky účtenky přečíst celkovou částku. Proč to není dobrý nápad a co udělat místo toho?
Náčrt řešení: rozbal, až si cvičení zkusíš sám
  1. Snímky zaberou zhruba 5 000 až 10 000 tokenů, tedy víc než celá historie. Jeden snímek 1920 na 1080 stojí kolem 1 000 až 2 000 tokenů, čtyřicet zpráv po 150 tokenech je 6 000. Pět screenshotů je tedy srovnatelných s celou dosavadní konverzací, případně dražších. Praktické pravidlo: obrázky posílej jen tehdy, když je opravdu potřeba vidět, a v rozlišení, které na danou úlohu stačí.
  2. Protože obrazové tokeny nesou význam scény, ne přesná měření, a chyba v jedné číslici je běžná. Dlaždice 14 na 14 pixelů je nedělitelná jednotka, uvnitř které se drobný text rozmělní. Místo toho použij OCR nebo textovou vrstvu PDF a modelu dej výsledný text, nebo ho aspoň nech částku vrátit strukturovaně a ověř ji kontrolním součtem položek.

Shrnutí

  • Obrázky, zvuk i video se převedou na tokeny a jdou do stejného transformeru jako text.
  • Obrazové tokeny jsou drahé a zabírají kontext; rozlišení přímo řídí cenu i schopnost číst detaily.
  • Pozdní fúze přilepí enkodér k hotovému modelu, raná fúze trénuje vše společně a spojuje modality lépe.
  • Instrukce schovaná v obrázku je plnohodnotný vektor prompt injection.
  • Obrazové tokeny nesou význam scény, ne měření. Počítání objektů a přesná čísla z tabulek jsou systematicky slabé místo, ne náhodná chyba.
  • U videa se snímky vzorkují a komprimují, takže krátké události mezi vzorky model prostě nevidí.
Jak se obrázek dostane do jazykového modelu?

Rozřeže se na dlaždice, každá se lineárně promítne na vektor stejného rozměru, jaký má embedding tokenu, přidá se poziční informace a výsledná posloupnost jde do modelu jako by to byl text. Obrázek tak spotřebovává tokeny a místo v kontextovém okně.

Proč je zpracování obrázku ve vysokém rozlišení dražší?

Protože vzniká víc dlaždic, a tím víc tokenů. Cena i latence rostou s jejich počtem, zároveň ale nižší rozlišení znamená ztrátu detailů, proto se rozlišení volí podle toho, jestli má model číst drobný text, nebo jen rozpoznat scénu.

Může být obrázek nositelem prompt injection?

Ano. Model přečte text napsaný v obrázku a může ho vzít jako instrukci, třeba nenápadně vloženou větu na screenshotu. Platí proto stejná opatření jako u textového vstupu: omezené pravomoci, autorizace v kódu a kontrola výstupu.