视觉语言模型是功能强大的模型,它以图像而非传统大语言模型(LLM)所用的文本作为输入。这带来了许多可能性------我们可以直接处理文档内容,而不必先通过OCR提取文本,再把文本输入LLM。
在这篇文章中,我将讨论如何将视觉语言模型应用于长文本文档理解任务。这意味着将VLM用于处理超过100页的超长文档,或包含大量信息(如图纸)的高密度文档。我会介绍使用VLM时需要考虑的因素,以及可以用它们完成哪些任务。

为什么我们需要VLM?
我在之前的文章里多次讨论过VLM,并解释了为什么理解某些文档内容时VLM至关重要。主要原因是,文档中的许多信息需要通过视觉输入才能理解。
VLM的替代方案是使用OCR提取文本,然后交给LLM处理。但这样做的问题是,你只提取了文档中的文字,却忽略了视觉信息,例如:
- 不同文本之间的相对位置关系
- 非文本信息(即所有非字母内容,如图形、符号)
- 文本与其他信息之间的相对位置
这些信息对于真正理解文档通常非常关键,因此往往直接使用VLM效果更好------直接输入图像,从而也能解读视觉信息。
对于长文档,使用VLM是一项挑战,因为表示视觉信息需要大量tokens。处理上百页文档因此是个大难题。不过,随着近期VLM技术的许多进步,模型在将视觉信息压缩到合理上下文长度方面做得越来越好,使得在长文档理解任务中应用VLM变得可行且实用。

使用VLM进行OCR
处理长文档并同时包含视觉信息的一个好方法是使用VLM来执行OCR。像Tesseract这样的传统OCR只能提取文档中的文字及其边界框。然而,VLM也经过训练可以执行OCR,并能进行更高级的文本提取,例如:
- 提取Markdown格式文本
- 解释纯视觉信息(例如,如果有绘图,用文字描述绘图)
- 补充缺失信息(例如,如果有一个写着"日期"的框和后面的空白字段,可以指示OCR输出"日期 <空>")
最近,Deepseek发布了一款强大的基于VLM的OCR模型,引起了广泛关注,使得VLM用于OCR变得越来越流行。
- Markdown
Markdown非常强大,因为它能提取带格式的文本。这使得模型可以:
- 提供标题和子标题
- 准确呈现表格
- 标记粗体文本
这样,模型就能提取更具代表性的文本,更准确地描述文档的文本内容。如果此时再将LLM应用于此文本,LLM的表现将远优于应用于传统OCR提取的纯文本。
LLM在Markdown这类格式化文本上的表现,优于在传统OCR提取的纯文本上的表现。
- 解释视觉信息
VLM OCR的另一个用途是解释视觉信息。例如,如果有一张没有任何文字的绘图,传统OCR不会提取任何信息,因为它只训练来提取文字字符。但你可以使用VLM来描述图像中的视觉内容。假设你有以下文档:
xml
这是文档的介绍文本<显示埃菲尔铁塔的图片>这是文档的结论
如果应用像Tesseract这样的传统OCR,你会得到:
这是文档的介绍文本这是文档的结论
这显然有问题,因为你没有包含关于埃菲尔铁塔图片的信息。相反,你应该使用VLM,它会输出类似这样的内容:
xml
这是文档的介绍文本<图片>此图片描绘了白天的埃菲尔铁塔</图片>这是文档的结论
如果你在第一个文本上使用LLM,它当然不会知道文档包含埃菲尔铁塔的图片。但是,如果你在第二个由VLM提取的文本上使用LLM,那么LLM在回答关于文档的问题时自然会表现得更好。
- 补充缺失信息
你还可以提示VLM在信息缺失时输出相应内容。要理解这个概念,请看下图:

如果你对此图像应用传统OCR,会得到:
地址 1号路日期公司 谷歌
但是,如果使用VLM(并给予相应指示),它可能会输出:
xml
地址 1号路日期 <空>公司 谷歌
这样更具信息性,因为我们告知了下游模型日期字段是空的。如果不提供这个信息,以后将无法知道日期是缺失了、OCR未能提取,还是出于其他原因。
然而,使用VLM进行OCR仍然存在一些传统OCR所面临的问题,因为它不是直接处理视觉信息。你可能听过"一图胜千言"的说法,这在处理文档中的视觉信息时往往成立。是的,你可以用VLM作为OCR来提供绘图的文字描述,但这个文字描述永远不如绘图本身那样具有描述性。因此,我认为在很多情况下,直接使用VLM处理文档是更好的选择,我将在接下来的部分讨论这一点。
- 开源模型与闭源模型
目前有很多可用的VLM。我关注HuggingFace的VLM排行榜,以了解任何新的高性能模型。根据这个排行榜,如果你想通过API使用闭源模型,应该选择Gemini 2.5 Pro或GPT-5。根据我的经验,这些是处理长文档理解和复杂文档的很好选择,效果不错。
但是,出于隐私、成本考虑,或者想对自己的应用有更多控制,你可能也想使用开源模型。在这种情况下,SenseNova-V6--5-Pro位居榜首。我个人没有尝试过这个模型,但我经常使用Qwen 3 VL,它给我的体验很好。Qwen还发布了一个专门针对长文档理解的指南。
- 处理能力考量
如果你运行的是开源模型,主要考虑之一是你能运行多大的模型以及所需时间。你至少需要访问一块较大的GPU,在大多数情况下至少是A100。幸运的是,这已经广泛可用且相对便宜(通常每小时成本在1.5-2美元左右,很多云服务商现在都提供)。但是,你还必须考虑可接受的延迟。运行VLM需要大量处理能力,你需要考虑以下因素:
- 处理一个请求可以接受多长时间?
- 需要多高的图像分辨率?
- 需要处理多少页?
例如,如果你有一个实时聊天,就需要快速处理;然而,如果你只是进行后台处理,则可以允许更长的处理时间。
图像分辨率也是一个重要的考虑因素。如果需要能够阅读文档中的文字,你需要高分辨率的图像,通常超过2048×2048,当然这具体取决于文档。例如,带有小文字的详细图纸将需要更高的分辨率。提高分辨率会大大增加处理时间,这是一个重要的考量点。你应该力求使用能够完成所有任务的最低分辨率。此外,页数也是一个类似的考虑因素。增加页数通常是为了获取文档中的所有信息。然而,通常最重要的信息包含在文档的前部分,所以你可能只需要处理前10页。
对于研究者和开发者来说,获取、部署和测试这些不同的开源VLM模型本身就是一个挑战。如果你对于OCR模型或更广泛的视觉语言模型感兴趣,并希望快速进行实验、评估或应用开发,可以进入Coovally平台。它提供了一个集成的AI算法平台,能够方便地访问、管理和部署包括各类前沿VLM在内的开源模型,大幅降低了从模型选择到实际应用的门槛。

处理长文档和高分辨率图像对算力要求极高,自行搭建和维护这样的GPU环境涉及复杂的资源配置与优化。Coovally平台不仅提供模型资源,还可以帮助你提供AI解决方案,可以扫描二维码,我们来给你提供解决方案!!

点击阅读原文,即可体验Coovally平台!
- 答案依赖型处理
为了降低所需的处理能力,你可以尝试从简单开始,只有在没有得到想要的答案时才进行更复杂的处理。
例如,你可以先只查看前10页,看看是否能妥善完成任务,比如从文档中提取一条信息。只有当我们无法提取该信息时,才开始查看更多页面。你可以对图像分辨率应用相同的概念,从较低分辨率开始,然后根据需要提高到所需的高分辨率。
这种分层处理可以减少所需的处理能力,因为大多数任务可能只需要查看前10页或使用较低分辨率图像就能解决。然后,只有在必要时,我们才继续处理更多图像或更高分辨率的图像。
- 成本
使用VLM时,成本是一个重要的考虑因素。我处理过很多文档,通常发现使用图像(VLM)比使用文本(LLM)时token数量会增加大约10倍。由于在长文档任务中,输入tokens通常是成本的主要驱动因素,使用VLM通常会显著增加成本。请注意,对于OCR,关于输出tokens比输入tokens多的这一点不适用,因为OCR在输出图像中的所有文本时自然会生成大量输出tokens。
因此,在使用VLM时,最大限度地利用缓存的tokens非常重要。
结论
在本文中,我讨论了如何将视觉语言模型应用于长文档,以处理复杂的文档理解任务。我阐述了VLM为何如此重要,以及在长文档上使用VLM的方法。例如,你可以使用VLM进行更复杂的OCR,或者直接将VLM应用于长文档,但需要注意所需的处理能力、成本和延迟。我认为VLM正变得越来越重要,Deepseek OCR的近期发布就凸显了这一点。因此,我认为你应该涉足VLM用于文档理解这个领域,并学习如何在文档处理应用中使用VLM。