Copertina: ColPali: retriever visivo per documenti basato su PaliGemma-3B

ColPali: retriever visivo per documenti basato su PaliGemma-3B

Modello open source che indicizza pagine di documenti come immagini e le recupera rispondendo a domande in linguaggio naturale.

20 giugno 20266 min di lettura
ColPalidocument retrievalvision language modelRAG multimodalePaliGemmaColBERTMIT licensePDF AI

Cos'è ColPali

ColPali è un modello di intelligenza artificiale multimodale progettato per il recupero efficiente di documenti a partire dalle loro caratteristiche visive. Il nome unisce due elementi tecnici: "Col", che rimanda all'architettura ColBERT di ricerca informazione, e "Pali", dal modello PaliGemma-3B sviluppato da Google. A differenza dei sistemi tradizionali di information retrieval su documenti, ColPali non richiede l'estrazione preventiva del testo tramite OCR né la ricostruzione strutturale del layout: prende in input direttamente l'immagine della pagina e la confronta con la query dell'utente.

Il modello è stato proposto nel paper ColPali: Efficient Document Retrieval with Vision Language Models, pubblicato su arXiv con identificativo 2407.01449, dagli autori Manuel Faysse, Hugues Sibille, Tony Wu, Bilel Omrani, Gautier Viaud, Céline Hudelot e Pierre Colombo. Il progetto di ricerca e sviluppo è condotto da Vidore, team specializzato in retrieval visivo e spin-off di Illuin Technology, azienda francese attiva nel campo dell'elaborazione del linguaggio naturale e della computer vision.

A cosa serve

ColPali serve a trovare la pagina o il frammento di documento più rilevante dato una domanda in linguaggio naturale. L'applicazione tipica è il document retrieval all'interno di archivi digitali composti da PDF, presentazioni, report, fatture, contratti, manuali tecnici e pagine scansionate. Invece di convertire ogni pagina in testo puro e poi indicizzarla, ColPali lavora sull'immagine della pagina nel suo insieme, catturando contemporaneamente testo, formattazione, tabelle, grafici, loghi e disposizione spaziale degli elementi.

Questo approccio è particolarmente utile quando il significato di una pagina dipende non solo dalle parole scritte, ma anche da come sono disposte. Un esempio classico è una tabella finanziaria: la posizione di una cifra all'interno di righe e colonne è informativa tanto quanto il numero stesso. Analogamente, slide, brochure tecniche e certificati contengono informazioni distribuite su più blocchi visivi che un semplice flusso di testo perderebbe. ColPali permette di interrogare questi documenti con domande libere, come "qual è il fatturato del terzo trimestre?" o "in quale università lavora James V. Fiorca?", e di recuperare le pagine pertinenti.

Come funziona

L'architettura di ColPali si appoggia a PaliGemma-3B, un Vision Language Model che combina un encoder visivo SigLIP con un piccolo language model Gemma-2B. A partire da questo backbone, gli autori hanno sviluppato una versione bimodale che genera rappresentazioni dense sia per il testo della query sia per le patch visive della pagina. Il cuore innovativo è l'adozione di una strategia di late interaction simile a ColBERT: ogni token della query e ogni patch dell'immagine vengono proiettati in uno spazio latente condiviso, e il punteggio di rilevanza si ottiene massimizzando le similarità tra i singoli vettori.

Il risultato è una rappresentazione multi-vettore: una pagina non viene compressa in un unico embedding, ma in una matrice di vettori, uno per ogni patch visiva. Questo meccanismo consente di catturare corrispondenze fini tra porzioni specifiche della query e aree specifiche del documento, migliorando sensibilmente la precisione rispetto ai sistemi che appiattiscono l'intera pagina in un singolo vettore.

L'addestramento è stato eseguito su un dataset di 127.460 coppie query-pagina, composte per il 63% da dataset accademici pubblici e per il 37% da dati sintetici generati a partire da PDF raccolti sul web e arricchiti con pseudo-domande prodotte da un VLM. Gli autori hanno utilizzato adattatori LoRA con parametri alpha=32 e r=32 applicati ai layer del language model, insieme a uno strato di proiezione inizializzato casualmente. L'ottimizzatore è paged AdamW a 8 bit, con learning rate di 5e-5, decadimento lineare, 2,5% di warmup e batch size 32, su un cluster di 8 GPU. Il training è durato un'epoca.

Perché conta per founder, PMI e agenzie italiane

Per chi gestisce prodotti digitali, knowledge base aziendali o servizi di automazione documentale, ColPali offre un cambio di prospettiva. I sistemi di retrieval tradizionali su documenti richiedono spesso una catena di componenti fragili: OCR, correzione degli errori di riconoscimento, estrazione della struttura, chunking del testo e poi embedding. Ogni anello della catena introduce errori e costi di manutenzione. ColPali riduce questa complessità in un unico modello end-to-end, addestrato direttamente a produrre embedding utili per la ricerca.

Per una startup o una PMI italiana che vuole costruire un assistente sui propri documenti interni, questo significa tempi di prototipazione più brevi e una dipendenza minore da pipeline di preprocessing personalizzate. Per un'agenzia che sviluppa soluzioni di knowledge management per clienti, ColPali può essere un componente di un sistema RAG multimodale in grado di gestire documenti eterogenei senza dover configurare motori OCR diversi per ogni formato. Inoltre, la natura open source e la disponibilità su Hugging Face abbassano la barriera all'accesso sperimentale.

Il modello è rilevante anche per l'evoluzione dei motori di ricerca aziendali: anziché limitarsi a cercare nel testo estratto, è possibile interrogare direttamente il documento nella sua forma visiva originale, preservando il contesto grafico e strutturale. Questo è utile in ambiti come il legal tech, il fintech, l'industria manifatturiera e la pubblica amministrazione, dove i documenti sono spesso PDF ricchi di tabelle, formule e sezioni formattate.

Limitazioni e attenzioni

ColPali non è un modello generativo: non risponde direttamente alle domande, ma recupera i documenti più pertinenti. Per ottenere una risposta testuale occorre combinarlo con un lettore, come un language model, in una pipeline di tipo retrieve-then-read. Inoltre, il training set è principalmente in inglese e focalizzato su documenti di tipo PDF: la generalizzazione ad altre lingue, incluso l'italiano, o a tipologie documentali molto diverse non è garantita, sebbene i modelli pre-addestrati sottostanti contengano anche contenuti multilingua.

Un'altra attenzione riguarda l'infrastruttura. Il meccanismo di late interaction multi-vettore è potente, ma non tutti i database vettoriali o i motori di ricerca lo supportano nativamente. Implementare ColPali in produzione può richiedere adattamenti tecnici, ad esempio l'uso di motori come Vespa o l'implementazione di indici specializzati per gli embedding multi-vettore. Infine, il backbone PaliGemma-3B è distribuito sotto licenza Gemma, mentre gli adapter di ColPali sono rilasciati sotto licenza MIT: chi intende usare il modello a fini commerciali deve verificare la compatibilità delle due licenze.

Dove trovarlo

ColPali è disponibile in forma open source su più piattaforme. Il codice per l'addestramento e l'inferenza è pubblicato nel repository GitHub illuin-tech/colpali, che include anche le varianti successive come ColQwen2 e ColSmol. I pesi del modello, le schede tecniche e gli esempi di utilizzo sono ospitati su Hugging Face nell'organizzazione vidore, con checkpoint come vidore/colpali, vidore/colpali-v1.2 e vidore/colpali-v1.3. Il paper di riferimento è consultabile su arXiv all'indirizzo arxiv.org/abs/2407.01449. Per l'inferenza pratica è disponibile la libreria Python colpali-engine, installabile tramite pip e compatibile con l'ecosistema Hugging Face Transformers.

Hai letto fino a qui

🤔 Hai domande su questo argomento?

Posso aiutarti a capire come applicarlo al tuo business. Scegli come vuoi parlarmi.

— oppure —

💬 Chat: risposta immediata · 📧 Email: risposta personale entro 24h · 🔒 Niente spam

Continua a leggere