I modelli di visione artificiale tradizionali si concentrano tipicamente sull'imitazione della percezione visiva umana. jina-embeddings-v4 adotta un approccio diverso: combina l'elaborazione di immagini e testo per comprendere come le persone leggono e interpretano le informazioni presentate visivamente. A differenza dei programmi OCR che si limitano a digitalizzare il testo, analizza effettivamente materiali visivi complessi come infografiche, grafici, diagrammi e tabelle, ovvero documenti in cui sia il testo che gli elementi visivi veicolano un significato semantico. Li chiamiamo "documenti visivamente ricchi".

Se usassimo solo OCR e modelli di vector embeddings testuali, perderemmo informazioni importanti. Se usassimo modelli di vector embeddings convenzionali addestrati su coppie immagine-didascalia, non saremmo in grado di estrarre la semantica del testo. E nel caso di elementi come le tabelle, dobbiamo sapere cosa significa il testo e elaborare le relazioni spaziali tra gli elementi testuali per elaborarli correttamente. Dobbiamo elaborarli in modi consapevoli a livello visivo, motivo per cui si chiama recupero di documenti visivi.

Ma devi essere in grado di vedere le cose per capirle, e non è diverso per i modelli di vector embeddings. La qualità dell'immagine conta.

Le differenze di qualità dell'immagine possono derivare da molte fonti: le foto sono fuori fuoco, le condizioni di illuminazione sono cattive, il movimento causa sfocatura e gli algoritmi di compressione lossy distruggono i dettagli. Ma i documenti visivamente ricchi sono tipicamente "nati" digitali. Sono costituiti da elementi come screenshot, diapositive di presentazioni e PDF lucidi, dati che sono stati trasformati in immagini da un processo di presentazione o pubblicazione. A volte, sono scansioni di vere pagine di carta, ma se realizzate in modo competente, queste immagini non soffrono dei tipi di problemi che sono pervasivi con le immagini di scene del mondo reale.

Per i documenti visivamente ricchi, il problema principale della qualità dell'input è la risoluzione dell'immagine. Troppo piccola e le informazioni necessarie per il recupero vengono perse. Ma troppo grande e inondiamo il modello con dettagli spuri che minano l'elaborazione accurata. Ridimensionare correttamente i tuoi input a jina-embeddings-v4 ti farà risparmiare denaro e migliorerà i risultati di recupero.
Questo articolo esamina come jina-embeddings-v4 elabora le immagini e l'effetto della risoluzione dell'immagine sulla sua capacità di recuperare documenti visivamente ricchi. Abbiamo fornito il codice nel repository JinaVDR su Hugging Face per riprodurre i nostri risultati o testare i tuoi dati se desideri applicare le idee di questo articolo da solo.
tagModelli di linguaggio visivo
jina-embeddings-v4 è un modello di linguaggio visivo (VLM) che estende il VLM Qwen2.5-VL-3B-Instruct. Questo approccio all'incorporazione di immagini è diverso dai modelli di immagine o testo a modalità singola e dai modelli in stile CLIP come jina-clip-v2.
La Figura 5 è uno schema dell'architettura del modello jina-embeddings-v4. Il modello backbone è simile a un modello di vector embeddings convenzionale basato su transformer, tranne per il fatto che supporta modalità di output duali: un vector embeddings a vettore singolo (vettore denso) prodotto dal mean-pooling dell'ultimo livello del decoder e un output multi-vettore (interazione tardiva) prodotto da un livello di proiezione che ha le stesse dimensioni dell'input.
Per i testi, il suo input è lo stesso dei modelli di vector embeddings testuali convenzionali: i testi vengono tokenizzati e i token vengono sostituiti sostituendo i vettori da una tabella di ricerca. Questi vettori di token insieme fungono da input per il modello.
L'innovazione dei VLM è nella loro gestione delle immagini: un modello di vector embeddings di immagini convenzionale è collegato al modello di vector embeddings testuali, ma invece di produrre un vector embeddings di immagini tramite mean pooling, il suo livello finale diventa l'input per il modello di vector embeddings testuali, come se fosse solo una sequenza di vettori di token.

Ciò significa che le immagini di grandi dimensioni hanno gli stessi problemi per i modelli di vector embeddings che hanno i testi lunghi. Input più lunghi aumentano i costi computazionali e i tempi di codifica e spesso producono vector embeddings non informativi. Le immagini piccole hanno il problema opposto: se troppe informazioni sono impacchettate in una patch, vengono attenuate nel processo di vector embeddings e vengono perse nei vector embeddings a vettore singolo, mentre per i vector embeddings multi-vettore, riduce la forza delle corrispondenze. C'è un compromesso tra la quantità di informazioni fornite al modello e la sua capacità di estrarre accuratamente le informazioni pertinenti.
Ma i testi non possono essere ridimensionati; le immagini sì.
tagElaborazione preliminare delle immagini in jina-embeddings-v4
Quando si invia un'immagine a jina-embeddings-v4, viene divisa in patch di 28x28 pixel. Ciò significa che il numero di patch è approssimativamente proporzionale alla dimensione dell'immagine. Se si utilizza l'API Jina, la dimensione massima supportata è di 602.112 pixel, ma è un parametro impostabile dall'utente nel codice del modello se lo si scarica.
L'architettura VLM significa che il numero di patch di immagini 28x28 che il modello può supportare è uguale al numero di token di testo che può supportare. Ciò pone un limite superiore assoluto alla dimensione dell'immagine a circa 20 megapixel.

tagEsperimenti con la risoluzione delle immagini
Abbiamo valutato diverse risoluzioni delle immagini utilizzando jina-embeddings-v4 con le suite ViDoRe v1 e v2 e parte della suite di benchmark JinaVDR, esaminando sia l'output a vettore singolo che quello a vettori multipli. Regolando il parametro max_pixels del modello a un intervallo di valori fino a 19.267.584 pixel (ovvero 5.376x3.584) si producono vettori modello da diverse risoluzioni delle immagini. Laddove un'immagine è già più piccola del valore di max_pixels, non viene modificata.
tagViDoRe v1
La Tabella 1 riporta i risultati del recupero di vettori modello a vettore singolo (vettore denso) per cinque risoluzioni sui singoli benchmark ViDoRe v1 (punteggio medio nDCG@5). Riportiamo solo i valori fino a 9.633.792 pixel perché nessuna immagine in ViDoRe v1 era più grande di quella.

| Dataset di benchmark | 301.056 px | 602.112 px | 1.204.224 px | 2.408.448 px | 4.816.896 px | 9.633.792 px |
|---|---|---|---|---|---|---|
| Dimensione massima del vettore modello in token | 384 | 768 | 1.536 | 3.072 | 6.144 | 12.288 |
arxivqa_test_subsampled |
0.83487 | 0.84529 | 0.84537 | 0.83785 | 0.83439 | 0.83469 |
docvqa_test_subsampled |
0.47366 | 0.50715 | 0.52421 | 0.51075 | 0.50287 | 0.50258 |
infovqa_test_subsampled |
0.84404 | 0.87510 | 0.87890 | 0.87978 | 0.87672 | 0.87710 |
shiftproject_test |
0.77524 | 0.81494 | 0.83988 | 0.84427 | 0.84127 | 0.84196 |
syntheticDocQA_artificial_intelligence_test |
0.93809 | 0.96786 | 0.96655 | 0.97155 | 0.97024 | 0.97024 |
syntheticDocQA_energy_test |
0.86865 | 0.89540 | 0.89847 | 0.91172 | 0.91286 | 0.91286 |
syntheticDocQA_government_reports_test |
0.91708 | 0.93417 | 0.93865 | 0.92309 | 0.91609 | 0.91609 |
syntheticDocQA_healthcare_industry_test |
0.93865 | 0.96428 | 0.96024 | 0.96542 | 0.95417 | 0.95286 |
tabfquad_test_subsampled |
0.94298 | 0.94853 | 0.94502 | 0.94505 | 0.94505 | 0.94612 |
tatdqa_test |
0.58622 | 0.64832 | 0.65867 | 0.65985 | 0.65395 | 0.65498 |
| MEDIA | 0.81195 | 0.84010 | 0.84560 | 0.84493 | 0.84076 | 0.84095 |
Come si può vedere nella Tabella 1, la risoluzione più alta è tutt'altro che la migliore. 9,6 megapixel hanno ottenuto prestazioni inferiori alla risoluzione migliore nei test, tranne in quello senza immagini più grandi di 4,8 megapixel, dove ha ottenuto lo stesso punteggio perché non c'è stato alcun ridimensionamento. La migliore in media è stata 1,2 megapixel e la risoluzione con il maggior numero di punteggi migliori nei diversi benchmark è stata 2,4 megapixel.
Se prendessimo il punteggio migliore in ogni benchmark e ne facessimo la media, otterremmo 0,84905. Questo è solo lo 0,345% in più rispetto al punteggio per 1,2 megapixel.
Utilizzando vettori modello multipli, come mostrato nella Tabella 2, i nostri punteggi di recupero sono significativamente più alti. La corrispondenza a vettori multipli in genere offre prestazioni migliori rispetto alla corrispondenza a vettore singolo. Tuttavia, le prestazioni delle diverse risoluzioni sono più o meno le stesse.
| Dataset di benchmark | 301.056 px | 602.112 px | 1.204.224 px | 2.408.448 px | 4.816.896 px | 9.633.792 px |
|---|---|---|---|---|---|---|
| Dimensione massima del vettore modello in token | 384 | 768 | 1.536 | 3.072 | 6.144 | 12.288 |
arxivqa_test_subsampled |
0.87456 | 0.88881 | 0.88736 | 0.88531 | 0.88899 | 0.89052 |
docvqa_test_subsampled |
0.55344 | 0.61284 | 0.61123 | 0.59941 | 0.59087 | 0.59229 |
infovqa_test_subsampled |
0.88777 | 0.92646 | 0.93376 | 0.94007 | 0.93459 | 0.93533 |
shiftproject_test |
0.86224 | 0.90563 | 0.93547 | 0.92847 | 0.92240 | 0.92240 |
syntheticDocQA_artificial_intelligence_test |
0.99631 | 0.99131 | 0.99500 | 0.99262 | 0.99262 | 0.99262 |
syntheticDocQA_energy_test |
0.95216 | 0.96524 | 0.96524 | 0.96893 | 0.96762 | 0.96762 |
syntheticDocQA_government_reports_test |
0.95934 | 0.97085 | 0.97524 | 0.98024 | 0.96655 | 0.96655 |
syntheticDocQA_healthcare_industry_test |
0.97893 | 0.97893 | 0.99631 | 0.98524 | 0.98393 | 0.98393 |
tabfquad_test_subsampled |
0.95386 | 0.95732 | 0.95611 | 0.95379 | 0.95379 | 0.95379 |
tatdqa_test |
0.70547 | 0.78534 | 0.79516 | 0.80422 | 0.80552 | 0.80727 |
| MEDIA | 0.87241 | 0.89827 | 0.90509 | 0.90383 | 0.90069 | 0.90123 |
Proprio come per i vettori modello a vettore singolo, la risoluzione di 1,2 megapixel ha il punteggio medio più alto e 2,4 megapixel è la risoluzione con il punteggio migliore per il maggior numero di set di dati individuali. La media dei punteggi migliori su tutti i benchmark è 0,90853 e il punteggio medio della risoluzione di 1,2 megapixel è inferiore dello 0,344%, quasi esattamente lo stesso del caso a vettore singolo.
tagViDoRe v2
ViDoRe v2 utilizza immagini molto più dettagliate e colorate di ViDoRe v1, il che suggerisce che la risoluzione ottimale sarà probabilmente più alta.

Abbiamo testato i vettori modello multipli di jina-embeddings-v4 sulla suite di benchmark ViDoRe v2, con risultati nella Tabella 3. I risultati a vettore singolo sono simili ma con punteggi inferiori, quindi li omettiamo qui.
| Dataset di benchmark | 150.528 px | 301.056 px | 602.112 px | 1.204.224 px | 2.408.448 px | 4.816.896 px | 9.633.792 px |
|---|---|---|---|---|---|---|---|
| Dimensione massima del vettore modello in token | 192 | 384 | 768 | 1.536 | 3.072 | 6.144 | 12.288 |
esg_reports_v2 |
0.40444 | 0.54013 | 0.52005 | 0.51916 | 0.49953 | 0.52664 | 0.51442 |
biomedical_lectures_v2 |
0.58760 | 0.60479 | 0.6184 | 0.60748 | 0.60748 | 0.60748 | 0.60748 |
economics_reports_v2 |
0.47666 | 0.50399 | 0.54216 | 0.54998 | 0.54998 | 0.54998 | 0.54998 |
esg_reports_human_labeled_v2 |
0.42171 | 0.56940 | 0.61227 | 0.57307 | 0.61108 | 0.63858 | 0.64921 |
| MEDIA | 0.47260 | 0.55458 | 0.57322 | 0.56242 | 0.56702 | 0.58067 | 0.58027 |
In questo caso, la migliore in media è la risoluzione di 4,8 megapixel, con prestazioni medie a 9,6 megapixel essenzialmente identiche. Tuttavia, per tre dei quattro benchmark, la risoluzione più alta ha ottenuto risultati peggiori rispetto alle risoluzioni inferiori, tranne che per un test in cui nessuna immagine era più grande di 4,8 megapixel.
tagBenchmark ad alta risoluzione
ViDoRe v1 e ViDoRe v2 sono costituiti da immagini con risoluzioni native simili, quindi abbiamo preso due benchmark dalla suite JinaVDR che contengono immagini ad altissima risoluzione, difficili da elaborare, ed abbiamo eseguito lo stesso test di vettori modello multipli con essi.
Uno è il benchmark europeana-de-news, che contiene scansioni ad alta risoluzione di giornali tedeschi dal XVII al XX secolo; l'altro è il benchmark wikimedia-commons-maps, che contiene scansioni ad altissima risoluzione di mappe stampate, per lo più dell'era pre-digitale.

wikimedia-commons-maps. (Destra) Prima pagina del giornale Hamburger Nachrichten, datato 26 aprile 1819 e incluso in europeana-de-news, scansionato a 4324x4738 pixel.I risultati sono molto variabili, come si può vedere nella Tabella 4.
| Dataset di benchmark | 301,056 px | 602,112 px | 1,204,224 px | 2,408,448 px | 4,816,896 px | 9,633,792 px | 19,267,584 px |
|---|---|---|---|---|---|---|---|
| Dimensione massima del vettore di embedding in tokens | 384 | 768 | 1,536 | 3,072 | 6,144 | 12,288 | 24,576 |
europeana-de-news |
0.46319 | 0.59457 | 0.66802 | 0.66550 | 0.66407 | 0.63948 | 0.65208 |
wikimedia-commons-maps |
0.23671 | 0.34421 | 0.42835 | 0.52268 | 0.53464 | 0.53464 | 0.53588 |
| MEDIA | 0.34995 | 0.46939 | 0.54819 | 0.59409 | 0.59936 | 0.58706 | 0.59398 |
I dati dei giornali chiaramente non richiedono la stessa risoluzione dei dati delle mappe. Questo è probabilmente dovuto al fatto che il testo nelle mappe è molto piccolo rispetto alle dimensioni complessive dell'immagine e deve essere leggibile affinché il recupero funzioni. Quando le scansioni dei giornali sono dimensionate più grandi del valore ottimale, le prestazioni fluttuano e diminuiscono.
La media è subottimale per entrambi, suggerendo che non esiste una risoluzione giusta per risolvere il problema. È questa scoperta che motiva ciò che abbiamo fatto dopo.
tagVettori Modello a Risoluzione Multipla
L'architettura VLM di jina-embeddings-v4 tratta le singole patch di immagini allo stesso modo in cui tratta i tokens di testo, quindi è facile per noi aumentare le patch ad alta risoluzione con quelle a bassa risoluzione. Significa solo più dati in ingresso, purché rimaniamo entro il massimo supportato dal modello. Se la bassa risoluzione produce una semantica migliore rispetto all'alta risoluzione, possiamo semplicemente includerle e non preoccuparci di quale sia la risoluzione ottimale.
Per testare questa ipotesi, abbiamo esaminato tre combinazioni di risoluzioni:
| Mix 1 | Mix 2 | Mix 3 | |
|---|---|---|---|
| Numero massimo di tokens totali | 2,880 | 5,234 | 12,096 |
| Risoluzioni | 150,528 px<br>301,056 px<br>602,112 px<br>1,204,224 px | 50,000 px<br>90,000 px<br>160,000 px<br>250,000 px<br>360,000 px<br>490,000 px<br>602,112 px<br>900,000 px<br>1,204,224 px | 150,528 px<br>301,056 px<br>602,112 px<br>1,204,224 px<br>2,408,448 px<br>4,816,896 px |
Questo significa che quando abbiamo testato Mix 1, abbiamo ridimensionato ogni immagine a quattro risoluzioni diverse — 150,528 px, 301,056 px, 602,112 px, 1,204,224 px — e le abbiamo elaborate singolarmente in vettori modello multi-vettore, quindi abbiamo concatenato i risultati prima di eseguire la corrispondenza delle query. Lo stesso vale per Mix 2 e Mix 3, ma a risoluzioni diverse. Abbiamo provato tutte e tre le combinazioni sui benchmark ViDoRe v2, riassunti nella Tabella 6.
| Dataset di benchmark | Migliore risoluzione singola | Mix 1 | Mix 2 | Mix 3 |
|---|---|---|---|---|
| Dimensione massima del vettore di embedding in tokens | — | 2,880 | 5,234 | 12,096 |
esg_reports_v2 |
0.54013 | 0.58354 | 0.59252 | 0.56567 |
biomedical_lectures_v2 |
0.61840 | 0.61678 | 0.61714 | 0.61638 |
economics_reports_v2 |
0.54998 | 0.54997 | 0.55534 | 0.55049 |
esg_reports_human_labeled_v2 |
0.64921 | 0.67726 | 0.68057 | 0.66734 |
| MEDIA | 0.58943 | 0.60689 | 0.61139 | 0.59997 |
Per tutti i benchmark ViDoRe v2, Mix 2 supera Mix 1 e 3, suggerendo che più risoluzioni diverse producono risultati migliori rispetto all'aggiunta di risoluzioni più elevate. Su due benchmark su quattro, tutte le miscele di risoluzioni superano la migliore risoluzione singola, e per i restanti due, solo Mix 1 ha prestazioni inferiori, e comunque non di molto.
Questi risultati mostrano che, sebbene non esista una singola miscela di risoluzioni migliore per tutti i dati, identificare una buona miscela di risoluzioni è la direzione giusta da intraprendere per trovare una soluzione ottimale.
tagConclusione
La risoluzione dell'immagine è molto importante per jina-embeddings-v4 quando si elaborano materiali visivamente ricchi. Un problema chiave è che il testo deve essere dimensionato per essere leggibile. Ciò che non si può leggere, l'intelligenza artificiale non può leggerlo nemmeno, e se il testo è importante, allora deve essere letto.
Ma, una risoluzione troppo alta rende difficile per il modello di embedding assemblare le patch di immagini in un insieme coerente. È anche costoso: risoluzioni più elevate significano più elaborazione e, per i vettori modello multi-vettore, più spazio di archiviazione e una corrispondenza più lenta.
L'utilizzo di più risoluzioni e l'applicazione di un punteggio in stile interazione tardiva su tutti gli output insieme è un buon modo per gestire immagini visivamente ricche con dimensioni variabili. Ma questo aumenta i costi di elaborazione e archiviazione e rallenta il recupero nello stesso modo in cui lo fanno le risoluzioni molto grandi.
Stiamo studiando modi per rendere operativa questa intuizione per migliorare la ricerca neurale. Cerchiamo costantemente di diversificare i nostri dati di addestramento e di test per sondare i nostri modelli alla ricerca di lacune e ideare modi per migliorarli. Stiamo esaminando gli effetti della risoluzione e delle tecniche multi-risoluzione come quelle descritte qui su vari tipi di materiali.
Stiamo anche conducendo esperimenti per vedere se le tecniche multi-risoluzione come quelle descritte qui mitigano l'effetto del rumore nelle immagini e producono un recupero più robusto.
Inoltre, potrebbe essere possibile determinare automaticamente in anticipo la risoluzione ottimale per ogni immagine. Se possiamo rilevare in modo affidabile la risoluzione migliore, rimuoverebbe un parametro in più per gli utenti migliorando al contempo i risultati complessivi, rendendo i vettori modello più accessibili e utilizzabili.






