传统的计算机视觉模型通常专注于模仿人类的视觉感知。jina-embeddings-v4 采用了一种不同的方法:它结合了图像和文本处理,以理解人们如何阅读和解释视觉呈现的信息。与简单地数字化文本的 OCR 程序不同,它实际上解析复杂的视觉材料,如图表、示意图和表格等——这些文档中的文本和视觉元素都带有语义意义。我们将这些称为“视觉丰富的文档”。

如果仅仅使用 OCR 和文本 向量模型,我们会错过重要的信息。如果使用在图像-标题对上训练的传统 向量模型,我们将无法提取文本的语义。对于像表格这样的东西,我们必须知道文本的含义并且处理文本元素之间的空间关系才能正确处理它们。我们必须以视觉感知的方式处理它们,这就是为什么它被称为视觉文档检索。

但是你必须能够看到东西才能理解它们,对于 向量模型来说也是如此。图像质量至关重要。

图像质量的差异可能来自许多来源:照片失焦、光照条件差、运动导致模糊,以及有损压缩算法破坏细节。但是,视觉丰富的文档通常是“天生”数字化的。它们包括屏幕截图、演示幻灯片和光面 PDF 等内容——这些数据已通过某种演示或发布过程呈现为图像。有时,它们是实际纸质页面的扫描件,但如果制作得当,这些图像不会受到真实世界场景图片中普遍存在的那种问题的影响。

对于视觉丰富的文档,主要的输入质量问题是图像分辨率。太小,我们将丢失检索所需的信息。但是太大,我们会用虚假的细节淹没模型,从而破坏准确的处理。将输入大小调整到适合 jina-embeddings-v4 的大小将节省您的资金并提高您的检索结果。
本文着眼于 jina-embeddings-v4 如何处理图像以及图像分辨率对其检索视觉丰富文档能力的影响。我们在 Hugging Face 上的 JinaVDR 仓库中提供了代码,如果您想自己应用本文中的想法,可以重现我们的结果或测试您自己的数据。
tag视觉语言模型
jina-embeddings-v4 是一个视觉语言模型 (VLM),它扩展了 Qwen2.5-VL-3B-Instruct VLM。这种 向量模型图像的方法不同于单模态图像或文本模型以及像 jina-clip-v2 这样的 CLIP 风格的模型。
图 5 是 jina-embeddings-v4 模型架构的示意图。骨干模型类似于传统的基于 Transformer 的 向量模型,不同之处在于它支持双输出模式:由解码器最后一层平均池化产生的单向量(密集向量) 向量模型,以及由与输入大小相同的投影层产生的多向量(后期交互)输出。
对于文本,其输入与传统的文本 向量模型相同:文本被 分词,并且 词元 通过替换查找表中的向量来替换。这些 词元 向量一起用作模型的输入。
VLM 的创新之处在于它们处理图像的方式:传统的图像 向量模型连接到文本 向量模型,但它的最后一层不是通过平均池化产生图像 向量模型,而是成为文本 向量模型的输入,就像它只是一系列 词元 向量一样。

这意味着大图像对于 向量模型来说存在与长文本相同的问题。更长的输入会增加计算成本和编码时间,并且通常会产生无信息的 向量模型。小图像存在相反的问题:如果太多的信息被打包到一个补丁中,它会在 向量模型过程中被衰减,并在单向量 向量模型中丢失,而对于多向量 向量模型,它会降低匹配的强度。在提供给模型的信息量与其准确提取相关信息的能力之间存在权衡。
但是文本无法调整大小;图像可以。
tagjina-embeddings-v4 中的图像预处理
当您将图像提交到 jina-embeddings-v4 时,它会被分成 28x28 像素的补丁。这意味着补丁的数量大致与图像的大小成正比。如果您使用 Jina API,则支持的最大大小为 602,112 像素,但如果您下载它,它是一个用户可设置的模型代码参数。
VLM 架构意味着模型可以支持的 28x28 图像补丁的数量等于它可以支持的文本 词元 的数量。这给图像大小设置了一个绝对上限,大约为 20 兆像素。

tag图像分辨率实验
我们使用 jina-embeddings-v4 和 ViDoRe v1、v2 套件以及 JinaVDR 基准测试套件的一部分,评估了不同的图像分辨率,同时考察了单向量和多向量输出。将模型的 max_pixels 参数调整到高达 19,267,584 像素(即 5,376x3,584)的一系列值,可以生成来自不同图像分辨率的 向量模型。如果图像已经小于 max_pixels 的值,则不会更改。
tagViDoRe v1
表 1 报告了五个分辨率在单个 ViDoRe v1 基准测试上的单向量(密集向量) 向量模型 检索结果(平均 nDCG@5 分数)。我们只报告高达 9,633,792 像素的值,因为 ViDoRe v1 中没有大于该值的图像。

| 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 |
您可以从表 1 中看到,最高分辨率远非最佳。960 万像素在测试中的表现低于最佳分辨率,除了一个没有大于 480 万像素的图像的测试,它获得了相同的分数,因为没有进行大小调整。平均表现最好的是 120 万像素,在不同基准测试中获得最多最佳分数的分辨率是 240 万像素。
如果我们采用每个基准测试中的最佳分数并求平均值,我们将得到 0.84905。这仅比 120 万像素的分数高 0.345%。
如表 2 所示,使用多向量 向量模型 时,我们的检索分数明显更高。多向量匹配通常比单向量匹配表现更好。但是,不同分辨率的性能大致相同。
| 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 |
与单向量 向量模型 一样,120 万像素分辨率具有最高的平均分数,而 240 万像素是最多单个数据集的最佳得分分辨率。所有基准测试的最佳分数的平均值为 0.90853,而 120 万像素分辨率的平均分数低 0.344%,几乎与单向量情况完全相同。
tagViDoRe v2
ViDoRe v2 使用比 ViDoRe v1 更详细和色彩鲜艳的图像,这表明最佳分辨率可能会更高。

我们在 ViDoRe v2 基准测试套件上测试了来自 jina-embeddings-v4 的多向量 向量模型 ,结果如表 3 所示。单向量结果相似但分数较低,因此我们在此处省略了它们。
| 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 |
在这种情况下,平均表现最好的是 480 万像素分辨率,960 万像素的平均性能基本相同。尽管如此,对于四个基准测试中的三个,最高分辨率的表现都比更低的分辨率差,除了一个测试,其中没有图像大于 480 万像素。
tag高分辨率基准测试
ViDoRe v1 和 ViDoRe v2 由具有相似原生分辨率的图像组成,因此我们从 JinaVDR 套件中选取了两个包含非常高分辨率、难以处理的图像的基准测试,并对它们执行了相同的多向量 向量模型 测试。
一个是 europeana-de-news 基准测试,其中包含 17 世纪至 20 世纪德国报纸的高分辨率扫描件;另一个是 wikimedia-commons-maps 基准测试,其中包含印刷地图的超高分辨率扫描件,这些地图大多来自前数字时代。

wikimedia-commons-maps. (Right) Front page of the Hamburger Nachrichten newspaper, dated 26 April 1819 and included in europeana-de-news, scanned to 4324x4738 pixels.正如您在表 4 中所看到的,结果非常复杂。
| Benchmark Dataset | 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 |
|---|---|---|---|---|---|---|---|
| Max embedding vector size 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 |
| AVERAGE | 0.34995 | 0.46939 | 0.54819 | 0.59409 | 0.59936 | 0.58706 | 0.59398 |
报纸数据显然不需要与地图数据相同的分辨率。这可能是因为地图中的文本相对于整体图像尺寸来说非常小,并且确实需要可读才能使检索工作。当报纸扫描件的尺寸大于最佳尺寸时,性能会波动和下降。
平均值对于两者来说都不是最佳的,这表明没有一个正确的分辨率可以解决问题。正是这个发现激发了我们接下来所做的事情。
tag多分辨率向量模型
jina-embeddings-v4的 VLM 架构以对待文本 词元 的方式对待图像的各个patch,因此我们很容易用低分辨率的patch来增强高分辨率的patch。只要我们保持在模型支持的最大范围内,这仅仅意味着更多的数据输入。如果较低分辨率产生比高分辨率更好的语义,我们可以直接包含它们,而不用担心最佳分辨率是多少。
为了验证这个假设,我们研究了三种分辨率的组合:
| Mix 1 | Mix 2 | Mix 3 | |
|---|---|---|---|
| Maximum number of total tokens | 2,880 | 5,234 | 12,096 |
| Resolutions | 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 |
这意味着,当我们测试 Mix 1 时,我们将每个图像调整为四种不同的分辨率 — 150,528 px、301,056 px、602,112 px、1,204,224 px — 并将它们分别处理成多向量 向量模型,然后在进行查询匹配之前连接结果。Mix 2 和 Mix 3 也是如此,但分辨率不同。我们在 ViDoRe v2 基准测试中尝试了所有三种组合,总结在表 6 中。
| Benchmark Dataset | Best Single Resolution | Mix 1 | Mix 2 | Mix 3 |
|---|---|---|---|---|
| Max embedding vector size 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 |
| AVERAGE | 0.58943 | 0.60689 | 0.61139 | 0.59997 |
对于所有 ViDoRe v2 基准测试,Mix 2 的表现优于 Mix 1 和 Mix 3,这表明更多不同的分辨率比添加更高的分辨率产生更好的结果。在四个基准测试中的两个中,所有分辨率的混合都优于最佳单一分辨率,而对于剩下的两个,只有 Mix 1 表现不佳,而且差距不大。
这些结果表明,虽然没有适用于所有数据的最佳分辨率组合,但确定一个好的分辨率组合是找到最佳解决方案的正确方向。
tag结论
在处理视觉上丰富的材料时,图像分辨率对于 jina-embeddings-v4 来说非常重要。一个关键问题是文本的大小应该可读。您无法阅读的内容,AI 也无法阅读,如果文本很重要,那么就必须能够被读取。
但是,分辨率太高,嵌入模型就很难将图像patch组装成一个连贯的整体。而且成本也很高:更高的分辨率意味着更多的处理,对于多向量 向量模型 来说,意味着更多的存储和更慢的匹配。
使用多种分辨率并将后期交互式评分应用于所有输出是一种处理具有不同尺寸的视觉上丰富的图像的好方法。但是,这会增加处理和存储成本,并像非常大的分辨率一样减慢检索速度。
我们正在研究如何将这种见解付诸实践,以改进神经搜索。我们不断尝试多样化我们的训练和测试数据,以探测我们模型的缺点并设计改进它们的方法。我们正在研究分辨率和多分辨率技术(如本文所述)对各种类型材料的影响。
我们还在进行实验,以查看像本文所述的多种分辨率技术是否可以减轻图像中的噪声影响并产生更强大的检索效果。
此外,有可能预先自动确定每个图像的最佳分辨率。如果我们能够可靠地检测到最佳分辨率,那么它将消除用户的又一个参数,同时改善整体结果,从而使 向量模型 更易于访问和使用。









