Les modèles de vision artificielle traditionnels se concentrent généralement sur l'imitation de la perception visuelle humaine. jina-embeddings-v4 adopte une approche différente : il combine le traitement d'images et de texte pour comprendre comment les gens lisent et interprètent les informations présentées visuellement. Contrairement aux programmes de reconnaissance optique de caractères (OCR) qui se contentent de numériser le texte, il analyse en réalité des documents visuels complexes tels que des infographies, des graphiques, des diagrammes et des tableaux, c'est-à-dire des documents où le texte et les éléments visuels ont une signification sémantique. Nous appelons ces documents des « documents riches en visuels ».

Si nous utilisions uniquement l'OCR et des modèles d'Embeddings de texte, nous passerions à côté d'informations importantes. Si nous utilisions des modèles d'Embeddings conventionnels entraînés sur des paires image-légende, nous ne serions pas en mesure d'extraire la sémantique du texte. Et dans le cas de tableaux, par exemple, nous devons savoir ce que signifie le texte et traiter les relations spatiales entre les éléments textuels pour les traiter correctement. Nous devons les traiter d'une manière visuellement consciente, c'est pourquoi on parle de recherche de documents visuels.

Mais il faut être capable de voir les choses pour les comprendre, et il en va de même pour les modèles d'Embeddings. La qualité de l'image compte.

Les différences de qualité d'image peuvent provenir de nombreuses sources : les photos sont floues, les conditions d'éclairage sont mauvaises, les mouvements provoquent un flou et les algorithmes de compression avec perte détruisent les détails. Mais les documents riches en visuels sont généralement « nés » numériques. Ils se composent d'éléments tels que des captures d'écran, des diapositives de présentation et des PDF brillants, c'est-à-dire des données qui ont été transformées en images par un processus de présentation ou de publication. Parfois, il s'agit de numérisations de pages papier réelles, mais si elles sont réalisées de manière compétente, ces images ne souffrent pas des types de problèmes qui sont omniprésents avec les photos de scènes du monde réel.

Pour les documents riches en visuels, le principal problème de qualité d'entrée est la résolution de l'image. Si elle est trop petite, les informations dont nous avons besoin pour la recherche sont perdues. Mais si elle est trop grande, nous inondons le modèle de détails inutiles qui nuisent à un traitement précis. Adapter la taille de vos entrées à jina-embeddings-v4 vous permettra d'économiser de l'argent et d'améliorer vos résultats de recherche.
Cet article examine la façon dont jina-embeddings-v4 traite les images et l'effet de la résolution de l'image sur sa capacité à récupérer des documents riches en visuels. Nous avons fourni du code dans le référentiel JinaVDR sur Hugging Face pour reproduire nos résultats ou tester vos propres données si vous souhaitez appliquer vous-même les idées de cet article.
tagModèles de langage visuel
jina-embeddings-v4 est un modèle de langage visuel (VLM) qui étend le VLM Qwen2.5-VL-3B-Instruct
. Cette approche de l'intégration d'images est différente des modèles d'image ou de texte unimodaux et des modèles de style CLIP comme jina-clip-v2.
La figure 5 est un schéma de l'architecture du modèle jina-embeddings-v4. Le modèle dorsal est similaire à un modèle d'Embeddings conventionnel basé sur un transformateur, sauf qu'il prend en charge deux modes de sortie : un Embeddings à vecteur unique (vecteur dense) produit par le regroupement moyen de la dernière couche du décodeur, et une sortie à vecteurs multiples (interaction tardive) produite par une couche de projection de la même taille que l'entrée.
Pour les textes, son entrée est la même que celle des modèles d'Embeddings de texte conventionnels : les textes sont divisés en Tokens, et les Tokens sont remplacés par des vecteurs de substitution provenant d'une table de consultation. Ces vecteurs de Tokens servent ensemble d'entrée au modèle.
L'innovation des VLM réside dans leur traitement des images : Un modèle d'Embeddings d'image conventionnel est connecté au modèle d'Embeddings de texte, mais au lieu de produire un Embeddings d'image par regroupement moyen, sa dernière couche devient l'entrée du modèle d'Embeddings de texte, comme s'il s'agissait d'une simple séquence de vecteurs de Tokens.

Cela signifie que les grandes images posent les mêmes problèmes aux modèles d'Embeddings que les textes longs. Des entrées plus longues augmentent les coûts de calcul et les temps d'encodage et produisent souvent des Embeddings peu informatifs. Les petites images ont le problème inverse : Si trop d'informations sont regroupées dans un seul patch, elles sont atténuées dans le processus d'Embeddings et sont perdues dans les Embeddings à vecteur unique, tandis que pour les Embeddings à vecteurs multiples, cela réduit la force des correspondances. Il existe un compromis entre la quantité d'informations fournies au modèle et sa capacité à extraire avec précision les informations pertinentes.
Mais les textes ne peuvent pas être redimensionnés ; les images, si.
tagPrétraitement des images dans jina-embeddings-v4
Lorsque vous soumettez une image à jina-embeddings-v4, elle est divisée en patchs de 28x28 pixels. Cela signifie que le nombre de patchs est à peu près proportionnel à la taille de l'image. Si vous utilisez l'API Jina, la taille maximale prise en charge est de 602 112 pixels, mais il s'agit d'un paramètre définissable par l'utilisateur dans le code du modèle si vous le téléchargez.
L'architecture VLM signifie que le nombre de patchs d'image de 28x28 que le modèle peut prendre en charge est égal au nombre de Tokens de texte qu'il peut prendre en charge. Cela place une limite supérieure absolue à la taille de l'image à environ 20 mégapixels.

tagExpériences avec la résolution d'image
Nous avons évalué différentes résolutions d'image en utilisant jina-embeddings-v4 avec les suites ViDoRe v1 et v2, et une partie de la suite de benchmarks JinaVDR, en examinant à la fois les sorties à vecteur unique et à vecteurs multiples. L'ajustement du paramètre max_pixels
du modèle à une plage de valeurs allant jusqu'à 19 267 584 pixels (soit 5 376x3 584) produit des vecteurs modèles à partir de différentes résolutions d'image. Lorsqu'une image est déjà plus petite que la valeur de max_pixels
, elle n'est pas modifiée.
tagViDoRe v1
Le Tableau 1 présente les résultats de la récupération d'Embedding à vecteur unique (vecteur dense) pour cinq résolutions sur des benchmarks ViDoRe v1 individuels (score nDCG@5 moyen). Nous ne rapportons que les valeurs allant jusqu'à 9 633 792 pixels, car aucune image dans ViDoRe v1 n'était plus grande que cela.

Benchmark Dataset | 301,056 px | 602,112 px | 1,204,224 px | 2,408,448 px | 4,816,896 px | 9,633,792 px |
---|---|---|---|---|---|---|
Max embedding vector size in tokens | 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 |
AVERAGE | 0.81195 | 0.84010 | 0.84560 | 0.84493 | 0.84076 | 0.84095 |
Vous pouvez voir dans le Tableau 1 que la résolution la plus élevée est loin d'être la meilleure. 9,6 mégapixels ont obtenu des résultats inférieurs à la meilleure résolution sur les tests, sauf celui où aucune image n'était supérieure à 4,8 mégapixels, où elle a obtenu le même score car il n'y a pas eu de redimensionnement. La meilleure performance en moyenne a été de 1,2 mégapixel, et la résolution avec le plus de meilleurs scores sur différents benchmarks était de 2,4 mégapixels.
Si nous prenions le meilleur score sur chaque benchmark et que nous en faisions la moyenne, nous obtiendrions 0,84905. C'est seulement 0,345 % de mieux que le score pour 1,2 mégapixel.
L'utilisation d'Embeddings multi-vecteurs, comme indiqué dans le Tableau 2, nos scores de récupération sont significativement plus élevés. La correspondance multi-vecteurs fonctionne généralement mieux que la correspondance à vecteur unique. Cependant, les performances des différentes résolutions sont à peu près les mêmes.
Benchmark Dataset | 301,056 px | 602,112 px | 1,204,224 px | 2,408,448 px | 4,816,896 px | 9,633,792 px |
---|---|---|---|---|---|---|
Max embedding vector size in tokens | 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 |
AVERAGE | 0.87241 | 0.89827 | 0.90509 | 0.90383 | 0.90069 | 0.90123 |
Tout comme pour les vecteurs modèles à vecteur unique, la résolution de 1,2 mégapixel a le score moyen le plus élevé, et 2,4 mégapixels est la résolution la mieux notée pour le plus grand nombre d'ensembles de données individuels. La moyenne des meilleurs scores sur tous les benchmarks est de 0,90853, et le score moyen de la résolution de 1,2 mégapixel est de 0,344 % inférieur, presque exactement le même que pour le cas à vecteur unique.
tagViDoRe v2
ViDoRe v2 utilise des images beaucoup plus détaillées et colorées que ViDoRe v1, ce qui suggère que la résolution optimale sera probablement plus élevée.

Nous avons testé les vecteurs modèles multi-vecteurs de jina-embeddings-v4 sur la suite de benchmarks ViDoRe v2, avec des résultats dans le Tableau 3. Les résultats à vecteur unique sont similaires, mais avec des scores plus bas, nous les omettons donc ici.
Benchmark Dataset | 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 |
---|---|---|---|---|---|---|---|
Max embedding vector size in tokens | 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 |
AVERAGE | 0.47260 | 0.55458 | 0.57322 | 0.56242 | 0.56702 | 0.58067 | 0.58027 |
Dans ce cas, la meilleure performance en moyenne est la résolution de 4,8 mégapixels, avec une performance moyenne à 9,6 mégapixels essentiellement identique. Néanmoins, pour trois des quatre benchmarks, la résolution la plus élevée a donné des résultats inférieurs à ceux des résolutions plus basses, sauf pour un test où aucune image n'était supérieure à 4,8 mégapixels.
tagBenchmarks haute résolution
ViDoRe v1 et ViDoRe v2 sont constitués d'images avec des résolutions natives similaires, nous avons donc pris deux benchmarks de la suite JinaVDR qui contiennent des images très haute résolution et difficiles à traiter, et nous avons effectué le même test d'Embeddings multi-vecteurs avec elles.
L'un est le benchmark europeana-de-news
, qui contient des scans haute résolution de journaux allemands du 17e au 20e siècle ; l'autre est le benchmark wikimedia-commons-maps
, qui contient des scans très haute résolution de cartes imprimées, principalement de l'ère pré-numérique.

wikimedia-commons-maps
. (Droite) Première page du journal Hamburger Nachrichten, datée du 26 avril 1819 et incluse dans europeana-de-news
, numérisée à 4324x4738 pixels.Les résultats sont très mitigés, comme vous pouvez le voir dans le Tableau 4.
Ensemble de données de référence | 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 |
---|---|---|---|---|---|---|---|
Taille maximale du vecteur de 向量模型 en 词元 | 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 |
MOYENNE | 0.34995 | 0.46939 | 0.54819 | 0.59409 | 0.59936 | 0.58706 | 0.59398 |
Les données du journal ne nécessitent clairement pas la même résolution que les données cartographiques. Cela est probablement dû au fait que le texte dans les cartes est très petit par rapport à la taille globale de l'image et qu'il doit vraiment être lisible pour que la récupération fonctionne. Lorsque les numérisations de journaux sont dimensionnées plus grand que l'optimum, les performances fluctuent et diminuent.
La moyenne est sous-optimale pour les deux, ce qui suggère qu'il n'y a pas une seule bonne résolution pour résoudre le problème. C'est cette découverte qui motive ce que nous avons fait ensuite.
tag向量模型 multi-résolution
L'architecture VLM de jina-embeddings-v4 traite les patchs individuels d'images de la même manière qu'elle traite les 词元 de texte, il est donc facile pour nous d'augmenter les patchs haute résolution avec des patchs basse résolution. Cela signifie simplement plus de données en entrée, tant que nous restons dans la limite maximale prise en charge par le modèle. Si une résolution inférieure donne de meilleures sémantiques qu'une haute résolution, nous pouvons simplement les inclure et ne pas nous soucier de la résolution optimale.
Pour tester cette hypothèse, nous avons examiné trois combinaisons de résolutions :
Mix 1 | Mix 2 | Mix 3 | |
---|---|---|---|
Nombre maximal de 词元 totaux | 2,880 | 5,234 | 12,096 |
Résolutions | 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 |
Cela signifie que lorsque nous avons testé Mix 1, nous avons redimensionné chaque image à quatre résolutions différentes — 150,528 px, 301,056 px, 602,112 px, 1,204,224 px — et les avons traitées individuellement en 向量模型 multi-vecteurs, puis nous avons concaténé les résultats avant de faire la correspondance des requêtes. Idem pour Mix 2 et Mix 3, mais à des résolutions différentes. Nous avons essayé les trois combinaisons sur les benchmarks ViDoRe v2, résumés dans le Tableau 6.
Ensemble de données de référence | Meilleure résolution unique | Mix 1 | Mix 2 | Mix 3 |
---|---|---|---|---|
Taille maximale du vecteur de 向量模型 en 词元 | — | 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 |
MOYENNE | 0.58943 | 0.60689 | 0.61139 | 0.59997 |
Pour tous les benchmarks ViDoRe v2, Mix 2 surpasse Mix 1 et 3, ce qui suggère que plus de résolutions différentes produisent de meilleurs résultats que l'ajout de résolutions plus élevées. Sur deux des quatre benchmarks, tous les mélanges de résolutions surpassent la meilleure résolution unique, et pour les deux restants, seul Mix 1 est moins performant, et encore, pas de beaucoup.
Ces résultats montrent que bien qu'il n'y ait pas de mélange unique de résolutions optimal pour toutes les données, identifier un bon mélange de résolutions est la bonne direction à prendre pour trouver une solution optimale.
tagConclusion
La résolution d'image est très importante pour jina-embeddings-v4 lors du traitement de documents visuellement riches. Un problème clé est que le texte doit être dimensionné pour être lisible. Ce que vous ne pouvez pas lire, l'IA ne peut pas le lire non plus, et si le texte est important, alors il doit être lu.
Mais, une résolution trop élevée et il devient difficile pour le modèle de 向量模型 d'assembler les patchs d'image en un ensemble cohérent. C'est aussi coûteux : des résolutions plus élevées signifient plus de traitement et, pour les 向量模型 multi-vecteurs, plus de stockage et une correspondance plus lente.
L'utilisation de plusieurs résolutions et l'application d'une notation de style d'interaction tardive sur toutes les sorties ensemble est un bon moyen de gérer les images visuellement riches avec des tailles variables. Mais, cela ajoute aux coûts de traitement et de stockage, et ralentit la récupération de la même manière que les très grandes résolutions.
Nous étudions les moyens de rendre cette idée opérationnelle pour améliorer la recherche neuronale. Nous essayons constamment de diversifier nos données d'entraînement et de test pour sonder nos modèles à la recherche de lacunes et trouver des moyens de les améliorer. Nous étudions les effets de la résolution et des techniques multi-résolutions comme celles décrites ici sur divers types de matériaux.
Nous menons également des expériences pour voir si les techniques multi-résolutions comme celles décrites ici atténuent l'effet du bruit dans les images et produisent une récupération plus robuste.
De plus, il peut être possible de déterminer automatiquement à l'avance la résolution optimale pour chaque image. Si nous pouvons détecter de manière fiable la meilleure résolution, cela supprimerait un paramètre de plus pour les utilisateurs tout en améliorant les résultats globaux, rendant les 向量模型 plus accessibles et utilisables.