最近审阅:2026-10 · 先读:ViT、KV cache

如果一页文档原本占 2000 个文本 token,改成图片后只用 200 个视觉 token 送给 LLM,看起来省了 10 倍。但这只是输入长度的账:字有没有读错、表格结构有没有丢、图像编码花了多少时间,都要一起算。

先分清 3 个任务

任务 要交出的东西 怎么验
OCR 转录 尽量准确的文字与阅读顺序 字符/词错误率、字段准确率
文档理解 根据布局和内容回答 答案与对应证据是否正确
上下文压缩 用较短表示保留后续任务需要的信息 压缩预算下的任务表现、恢复能力与总成本

能抄回文字,不等于能推理整张表;能回答一道题,也不等于所有原文都被保留下来。DeepSeek-OCR 把视觉编码和文本解码联系起来,用来研究光学上下文压缩,但不能据此宣布长上下文问题已解决。论文

DeepEncoder 压的不是一段摘要

DeepEncoder 先用以窗口注意力为主的视觉模块,再下采样,接全局视觉模块;压缩后的连续视觉表示交给 MoE 文本解码器。不是先生成“这是一页报表”这样的短 caption,再让 LLM 猜回原文。架构说明

flowchart TD
    A["文档像素"] --> B["局部视觉特征"]
    B --> C["空间下采样:更少的位置"]
    C --> D["全局视觉建模"]
    D --> E["连续视觉 token"]
    E --> F["文本解码器"]
    F --> G["转录 / 结构化文本"]

论文的 1024 输入示例先产生 $64\times64=4096$ 个 patch,再经两次空间步长 2 的下采样得到 $16\times16=256$ 个位置。空间边长缩为四分之一,位置数才是十六分之一。DeepEncoder §3.2

OCR 2:除了压缩,还要组织阅读顺序

2026 年的 DeepSeek-OCR 2 使用 DeepEncoder V2:保留前面的视觉压缩,把后面的 CLIP 模块换成小型语言模型(language model, LM)结构。视觉 token 作为前缀,可学习的 causal-flow queries 通过专门的 attention mask 读取它们,输出 query 表征(representation)再交给文本解码器。OCR 2 报告 §3

区别在于:不只问“能用多少 token 装下这一页”,还问“后面的解码器应该按什么关系读取这些信息”。双栏文章、侧边注释、表格脚注,未必按从左到右、从上到下的 patch 顺序就能读通。

例如左栏写一段论证,右栏是广告。逐行横扫会把两段内容交错;正确转录应先保持各自段落。可以用这种自制双栏页测试阅读顺序,再单独测字符准确率。这里的 causal 指模型内的信息依赖,不是统计意义上的因果推断,也不证明它复现了人的眼动。

一笔不完整、但有用的预算

设一份教学文档经 tokenizer 切分后长 2000 个 token,视觉表示长 200,则名义压缩比为:

$$r=\frac{N_{text}}{N_{vision}}=\frac{2000}{200}=10.$$

文字数量与 token 数不是同一个单位。中文 2000 字、英文 2000 词,不应直接放进这个式子;先指定 tokenizer 再计数。

如果问题占 100 个 token,输入长度从 2100 变为 300。在同一语言主干、相同 cache dtype 的假设下,输入部分的原始 KV 存储约变为 $300/2100=1/7$。但还没算视觉编码器(encoder),也没算输出。

假如任务要求把整页抄回来,输出可能仍是 2000 个 token。自回归生成没消失,所以“输入压缩 10 倍”不能变成“总推理快 10 倍”。如果后续只问一个短问题,成本结构又不同。

最危险的错,往往只差一个字符

一张虚构发票写着 ¥1,280.00,另一张写 ¥1,230.00。整体文本几乎一致,但关键字段不同。若 100 个字段错了 1 个,平均字符准确率仍可能很好看,账却对不上。

因此,教学实验不只测自然段落,还可以自制:随机编号、相近数字、小数点、单位、列错位、低对比度小字。这些内容不能仅靠语言常识可靠猜对,更适合检查模型到底看见了多少。

独立研究通过打乱文本语义来测试语言先验的影响,提醒我们区分“读出了像素”与“补出了合理句子”。其结论依赖测试协议,不能一概推到所有 OCR 模型或所有文档。独立审计论文

怎么设计一个公平实验

固定项 变化项 同时报告
同一份合成文档与问题 分辨率、压缩预算 字段准确率、字符错误率
相同生成长度上限 原生文字 vs 文档图片 总延迟、视觉编码时间、输入/输出 token
相同字体和版面 自然文字 vs 随机字符串 对语言先验的依赖
相同事实 调整列顺序或阅读顺序 布局关系是否保留

调预算时保留原图和原文,方便追查。验证集不能只由同一个 OCR 模型生成标注;否则它自己的错也会成为标准答案。

什么时候不值得转成图片

已有干净、结构清楚的文本时,原生文本检索(retrieval)或分块可能更简单。扫描件、复杂布局或需要联合看图时,视觉路线才可能补上额外价值。即使选择压缩,也应保留回查原文的路径。

把旧内容降分辨率,可以是资源分配策略的研究设想;它不自动具备“知道哪些记忆不重要”的能力。丢掉的恰好可能是日期、姓名或小数点。别把模糊当成经过验证的智能遗忘。

继续读:视觉理解与图片生成的区别 · 评估与切片

本页术语 4
语言模型 language model, LM
对文本序列建模,用上下文预测或生成后续内容
表征 representation
将原始信息转换成模型可以使用的形式,例如向量
编码器 encoder
把原始输入压成向量的那一半模型
检索 retrieval
从外部语料里找出相关内容