ai:platformy:rag-a-memory:pixelrag

Toto je starší verze dokumentu!


PixelRAG

Vytvořeno: 1.7.2026 | Aktualizováno: 01.07.2026 13:18

PixelRAG je nástroj a výzkumný projekt pro vizuální RAG nad weby, PDF a obrázky. Místo klasického převodu dokumentu na text pracuje s jeho vizuální podobou: stránku vyrenderuje jako obrázek, vytvoří z ní embedding a při dotazu hledá vizuálně relevantní stránky nebo části dokumentu.

PixelRAG není klasické OCR. Nejde primárně o nástroj typu „vezmi obrázek a ulož z něj rozpoznaný text“. Je to spíš vyhledávací vrstva nad obrázky dokumentů.

Zjednodušená pipeline:

PDF / web / obrázek
  → screenshoty nebo tiles
  → vizuální embeddingy
  → FAISS index
  → dotaz
  → nalezení relevantních screenshotů
  → vision model přečte vybrané obrázky a odpoví

Důležitý rozdíl proti textovému RAGu:

Textový RAG:
PDF → text/OCR → textové chunky → textové embeddingy → odpověď z textu

PixelRAG:
PDF → obrázky stránek → vizuální embeddingy → nalezení obrázku → odpověď z obrázku

PixelRAG neposílá při každém dotazu všechny uložené obrázky do vision modelu. To by bylo pomalé a drahé. Výběr probíhá přes embeddingový index.

Při indexaci se dokument rozdělí na screenshoty nebo dlaždice. Každá stránka nebo tile se převede pomocí Qwen3-VL-Embedding-2B na vektor. Tyto vektory se uloží do FAISS indexu spolu s metadaty, například zdrojový dokument, číslo stránky nebo index dlaždice.

Typicky se ukládá:

  • obrázek stránky nebo dlaždice,
  • embedding obrázku,
  • metadata k dohledání původní stránky,
  • FAISS index pro rychlé podobnostní hledání.

Při dotazu se textový dotaz také převede na embedding ve stejném prostoru jako obrázky. FAISS pak najde nejpodobnější obrázkové embeddingy.

Až poté se vybrané obrázky předají vision modelu, který z nich přečte odpověď, opíše hodnotu z tabulky, vysvětlí graf nebo popíše vizuální část dokumentu.

Vision model se používá až po vyhledání relevantních obrázků. To ale neznamená, že lokální embedding model není potřeba. Pro běžný lokální provoz je embedding model potřeba minimálně ve dvou místech:

  • při indexaci dokumentů,
  • při převodu dotazu na embedding.

Server PixelRAG sice umí přijmout i předpočítaný embedding dotazu, ale pak musí tento embedding vzniknout někde jinde. Raspberry Pi tedy může být jen lehký server a úložiště, ale embeddingy musí buď počítat samo, nebo je musí dostat z jiného stroje či služby.

PixelRAG dává smysl tam, kde informace není jen v textu, ale i ve vizuální podobě dokumentu.

Vhodné případy:

  • Technické manuály s diagramy – zapojení, bloková schémata, rozkresy zařízení.
  • PDF s tabulkami – když je důležité rozložení buněk a běžný textový extraktor tabulku rozbije.
  • Grafy a dashboardy – hodnoty, trendy, osy, legendy a vizuální vztahy.
  • Infografiky a schémata – obsah, který se špatně převádí na lineární text.
  • Screenshoty aplikací – hledání podle vzhledu UI, dialogů nebo chybových stavů.
  • Webové stránky se složitým layoutem – stránky, kde HTML parsing zahodí nebo pomíchá důležitý kontext.
  • Skenované dokumenty s layoutem – formuláře, sestavy, starší dokumentace, kde nestačí čisté OCR.

Typické otázky, pro které je PixelRAG vhodný:

  • „Najdi stránku, kde je blokové schéma zapojení.“
  • „Kde je tabulka s parametry napájení?“
  • „Jaká hodnota je v pravé části grafu?“
  • „Na které stránce manuálu je rozkres svorkovnice?“
  • „Který screenshot obsahuje konkrétní chybovou hlášku?“

Hlavní důvod použití je zachování vizuální struktury. Textový RAG může z dokumentu vytáhnout slova, ale ztratí vztah mezi sloupci tabulky, popisky grafu nebo pozici prvků na stránce.

PixelRAG není univerzální náhrada běžného textového RAGu. Pro mnoho dokumentů je zbytečně těžký.

Nevhodné nebo méně vhodné případy:

  • Běžná textová PDF – dokumenty složené hlavně z odstavců textu.
  • Dokumentace s dobře extrahovatelným textem – například čisté HTML, Markdown, DOCX nebo textové PDF.
  • Velké archivy, kde jde hlavně o fulltext – textový index bude levnější, menší a rychlejší.
  • Slabý hardware bez akcelerace – embeddingový model je hlavní výpočetní limit.
  • Situace, kde potřebuješ přesný strojově čitelný text – pro to je vhodnější OCR nebo parser.
  • Citlivé dokumenty posílané do cizího API – pokud se používá cloudový vision model nebo hosted služba, je potřeba řešit soukromí dat.

Pokud jde o běžné textové PDF, praktičtější pipeline je:

PDF → pdftotext / PyMuPDF / OCR → textové embeddingy → běžný RAG

PixelRAG se vyplatí přidat až ve chvíli, kdy textová extrakce nestačí.

PixelRAG ukládá obrázky stránek nebo dlaždic. To je výrazně větší než čistý textový index. U jednotek až stovek PDF to nemusí být zásadní problém, ale u tisíců dokumentů nebo rozsáhlých webových archivů roste úložiště rychle.

V dokumentaci projektu jsou uvedené velké referenční indexy:

  • hosted Wikipedia index obsahuje miliony článků,
  • předpřipravený FAISS index pro Wikipedia má stovky GB,
  • plné uložené screenshoty velkého korpusu mohou mít jednotky až desítky TB.

To ukazuje hlavní trade-off: PixelRAG si kupuje vizuální věrnost za cenu většího úložiště a náročnější indexace.

Hlavní výpočetní náročnost není samotný FAISS index, ale vytvoření embeddingů přes multimodální model. PixelRAG používá Qwen3-VL-Embedding-2B, tedy 2B parametrů velký multimodální embedding model.

README projektu uvádí u lokální indexace ukázkového PDF přibližně:

  • asi 3 minuty na Apple Silicon,
  • asi 1 minutu na GPU.

Pro Raspberry Pi projekt neuvádí konkrétní měření. Bez vlastního benchmarku se nedá slíbit použitelný výkon. Reálně je potřeba počítat s tím, že bez CUDA nebo MPS bude embedding výrazně pomalejší.

Raspberry Pi může dávat smysl jako lehká část systému:

  • drží uložené PDF a screenshoty,
  • drží malý FAISS index,
  • servíruje nalezené obrázky,
  • posílá vybrané stránky do cloudového vision modelu.

Pro plně lokální provoz je problém embeddingový model. Na Raspberry Pi bude limit hlavně RAM a rychlost CPU. Pi může zvládnout malé experimenty, ale pro pravidelné indexování větších PDF sad je vhodnější výkonnější stroj, GPU nebo Apple Silicon.

Možný kompromis:

  • embeddingy vytvořit na výkonnějším stroji,
  • hotový index a obrázky přesunout na Raspberry Pi,
  • dotazy buď embeddingovat externě, nebo upravit workflow tak, aby Pi přijímalo předpočítané embeddingy,
  • vision čtení vybraných obrázků dělat cloudovým modelem.

Qwen3-VL-Embedding-2B uvádí podporu více než 30 jazyků a multimodální vstupy včetně textu, obrázků a screenshotů. Čeština by tedy neměla být principiální překážka.

Je ale potřeba počítat s tím, že PixelRAG je v dokumentaci a paperu demonstrovaný hlavně na anglických korpusech. Pro česká PDF je vhodné udělat vlastní test na reálných dokumentech. Kvalita bude záviset na:

  • kvalitě skenu nebo screenshotu,
  • velikosti písma,
  • složitosti tabulek a grafů,
  • použitém vision modelu pro finální odpověď,
  • tom, jestli jsou dotazy a instrukce formulované způsobem, kterému embedding model dobře rozumí.

Hosted API PixelRAGu poskytuje veřejný endpoint nad předpřipraveným vizuálním indexem Wikipedie. Podle dokumentace jde o index 8,28 milionu Wikipedia článků. API umí vyhledávat textovým dotazem, obrázkem nebo kombinací textu a obrázku.

Pro vlastní PDF není toto API nutné. Pokud chceš indexovat soukromé dokumenty lokálně, používá se lokální pipeline:

pixelrag index build
pixelrag serve --index-dir ./my_index --port 30001

Hosted API je užitečné hlavně pro:

  • rychlé vyzkoušení principu bez lokální instalace,
  • hledání ve veřejném Wikipedia indexu,
  • testování integrace agenta,
  • pochopení formátu výsledků a tiles.

Pro citlivá nebo soukromá PDF není vhodné posílat data do cizí služby bez vyřešeného soukromí a podmínek zpracování.

Pro běžné osobní nebo interní použití je praktičtější hybridní přístup:

  1. Z PDF nejdřív vytáhnout text přes PyMuPDF, pdftotext nebo OCR.
  2. Nad textem vytvořit běžný textový RAG.
  3. Uložit i obrázky stránek jako doplňkový zdroj.
  4. PixelRAG nebo vision model použít jen pro stránky, kde text nestačí: tabulky, grafy, schémata, formuláře a skeny.

Tím se omezí objem uložených obrázků i počet drahých vision dotazů. PixelRAG pak není hlavní index pro všechno, ale specializovaná vizuální vrstva pro případy, kde textový RAG selhává.

PixelRAG se vyplatí použít, když potřebuješ vyhledávat a číst dokument podle toho, jak vizuálně vypadá. Je silný u tabulek, diagramů, grafů, formulářů, screenshotů a složitých webů. Není ale ideální jako obecná náhrada OCR nebo textového RAGu.

Pro Raspberry Pi je realistické uvažovat spíš o roli lehkého serveru, úložiště nebo orchestrátoru. Plně lokální indexace přes multimodální embedding model je hlavní limit a pro větší dokumenty bude pravděpodobně potřeba výkonnější hardware nebo externí výpočet.

  • ai/platformy/rag-a-memory/pixelrag.1782904737.txt.gz
  • Poslední úprava: 01.07.2026 13:18
  • autor: Petr Nosek