Browse this library

Chinese source article

02 · DeepSeek-OCR: 用视觉 token 压缩文档上下文

DeepSeek-OCR 用串联的窗口注意力, 卷积压缩器与全局注意力编码器把高分辨率文档压成少量视觉 token, 并以 OCR 解码精度测量视觉表示的信息容量.

View original Markdown ↗

DeepSeek-AI 在 2025 年发布 DeepSeek-OCR 技术报告与代码. 模型由约 380M 参数的 DeepEncoder 和 DeepSeek-3B-MoE-A570M 解码器组成. 报告以视觉文本压缩为核心问题: 含有 NN 个文本 token 的页面至少需要多少视觉 token 才能恢复. OCR 同时承担实际文档解析任务和压缩实验的解码器.

报告给出两组核心结果. Fox 的 100 个英文文档页面上, 压缩比低于约 10×10\times 时解码精度接近 97%, 到约 20×20\times 时仍约为 60%. OmniDocBench 上, Small 模式只用 100 个视觉 token 就超过使用 256 token 的 GOT-OCR2.0; Gundam 模式少于 800 token, 综合结果优于平均使用约 6790 token 的 MinerU2.0. 两组实验分别回答信息容量边界与实际解析质量, 不能互相替代.

1. 光学压缩的计算对象

这里的「压缩比」比较文本 token 与视觉 token 的序列长度, 不是文件字节压缩率.

1.1. 压缩比怎样定义

报告把压缩比定义为 ground truth 经 DeepSeek-OCR tokenizer 编码后的文本 token 数, 除以 DeepEncoder 输出的视觉 token 数. 若页面有 NN 个文本 token, 编码后得到 nn 个视觉 token, 则压缩比为 r=N/nr=N/n. 这个比值比较序列长度, 不等同于文件字节压缩率, 也没有计入视觉编码器的计算量.

Fox 实验只选英文部分中 600–1300 文本 token 的文档, 共 100 页. Tiny 模式固定 64 个视觉 token, Small 模式固定 100 个. 600–700 token 区间里, Tiny 的压缩比约 10.5×10.5\times, 精度 96.5%; Small 为 6.7×6.7\times, 精度 98.5%. 到 1200–1300 token 区间, Tiny 达到 19.7×19.7\times 后精度降至 59.1%, Small 为 12.6×12.6\times 与 87.1%.

精度在相邻区间也不完全单调. Tiny 从 800–900 token 的 83.8% 到 900–1000 token 的 85.9% 略有回升, 说明页面布局和字符清晰度会覆盖纯 token 数趋势. Small 在 800–900 与 900–1000 两档同为 96.8%, 到 1000–1100 才降至 91.5%. 因此压缩比是主要解释变量之一, 但不是单页难度的充分统计量.

如果把实验用于自动档位选择, 系统还要先估计页面信息密度. 原始 PDF 若有文本层, 可以直接得到字符或 token 数; 扫描件则必须通过轻量 OCR 或版面特征估计. 估计过低会选到 token 不足的档位, 估计过高则失去压缩收益. 论文按已知 ground truth 分桶, 没有提供线上档位路由器.

这些数字形成一条容量曲线: 视觉 token 数固定时, 页面文字越多, 每个视觉 token 必须承载的信息越多. 曲线同时混入布局复杂度与缩放后的字符清晰度. 较长文档可能有更多栏、表格和公式, 在固定 512×512 或 640×640 画布上还会产生更小的字符. 因此 10 倍是该数据集、tokenizer、分辨率和评价方式下的经验区间, 不能直接当成普适的信息论阈值.

1.2. 为什么 OCR 能测视觉表示容量

页面图像先经过 DeepEncoder 映射为潜变量序列, 解码器再生成文本. 若输出能逐 token 恢复 ground truth, 视觉序列就保留了相应文字信息. 与只做分类相比, OCR 要恢复内容, 阅读顺序和部分结构, 对压缩表示的要求更严格. Fox 实验使用 Free OCR 提示, 尽量减少布局格式差异对文字恢复的干扰.

报告也指出输出格式无法与 Fox ground truth 完全一致, 所以字符或 token 精度会把格式差异计入错误. 这使结果更适合比较不同压缩档位, 不宜直接解释为纯字符识别上限. 论文没有给语义等价评分, 错误类型或重复采样方差; 60% 精度也不意味着剩余 40% 恰好是可控制的低价值信息.

Fox 表中每个 token 区间的页数并不均衡. 600–700 token 只有 7 页, 700–900 token 各有 28 页, 1200–1300 token 只有 4 页. 越靠近 20×20\times 压缩的区间样本越少, 59.1% 这一端点的统计稳定性因此弱于中间区间. 报告没有给逐页分数或置信区间, 也没有按布局类型分层. 曲线足以展示精度随压缩比下降的趋势, 不能精确确定一个跨数据集的拐点.

文本 token 数还依赖约 129K 词表的 tokenizer. 同一页内容换用字符级 tokenizer 或另一套子词词表, 分母不变而分子会变化, 压缩比也随之变化. 英文中常见词可能合成一个 token, 数学公式, 生僻字符与多语言文本往往需要更多 token. 因而报告的 77–20×20\times 是 DeepSeek-OCR tokenizer 下的比值, 不是语言无关的固定倍率.

光学表示还有一个额外成本: 文本必须先渲染成图像, 再由视觉编码器处理. 如果原始文本已经以 token 形式存在, 这条路径增加预处理和视觉编码计算. 报告讨论的收益位于后续 LLM 上下文长度和 KV cache, 不能据序列压缩比宣称端到端计算也等比例下降.

2. DeepEncoder 怎样控制激活与 token 数

DeepEncoder 要同时压住视觉 token 数和高分辨率输入产生的激活开销.

2.1. 窗口注意力先处理高分辨率输入

常见视觉编码器有三类限制. 双塔结构需要两套图像预处理并增加流水线复杂度; tile 方法能控制单块显存, 却会把大图切成许多块并产生大量 token; 直接自适应分辨率的方法保留整图, 但高分辨率下全局注意力激活迅速增长. DeepEncoder 的目标是同时支持高分辨率, 较低激活, 少量输出 token 与多分辨率输入.

DeepEncoder 先使用约 80M 参数的 SAM-base 部件. 这一阶段以窗口注意力处理密集 patch, 让大多数注意力计算局限在局部窗口. 若输入网格含 H×WH\times W 个 patch, 全局注意力需要在全部 HWHW 个位置间计算, 窗口注意力则把计算限制在各窗口内部. 它仍保留高分辨率局部感知, 但不会在最密集的序列上立即执行全局两两交互.

SAM 部件承担字符笔画, 线段和局部布局的感知. 局部窗口也会丢失跨页远距离联系, 因而 DeepEncoder 没有到此结束. 后面的 CLIP-large 部件补充全局交互与视觉知识. 两者不是并行双塔, 图像只走一条串联路径.

2.2. 16 倍卷积压缩后再做全局注意力

SAM 与约 300M 参数的 CLIP-large 之间放置两层 stride-2 卷积. 空间高宽各缩小 4 倍, token 总数缩小 4×4=164\times4=16 倍. 卷积同时聚合相邻特征, 压缩后的 token 再进入 CLIP 的 dense global attention. 全局注意力面对的是缩短后的序列, 激活与计算成本随之下降.

这一步的代价是局部细节被合并. 若字符在输入中已经过小, 卷积下采样会让相邻笔画更难区分; 若压缩前特征充分编码局部结构, 后续 CLIP 又能在页面范围交换信息, 则少量 token 仍可支持解码. Fox 曲线展示的正是这种取舍随压缩比变化的结果.

DeepEncoder 输出还经过投影, 作为视觉前缀送入 MoE 解码器. 解码器总参数约 3B, 每个 token 激活约 570M 参数. MoE 减少单 token 激活计算, 但视觉信息容量主要受 DeepEncoder 输出长度与表示质量限制. 报告没有给移除 SAM, 移除 CLIP 或改变 16 倍压缩器的逐项消融, 因而无法从最终表格拆出三个部件各自贡献.

串联结构还改变了两个预训练视觉模型的分工. SAM-base 擅长密集局部边界与区域感知, CLIP-large 的预训练则把视觉特征与语义空间联系起来. DeepEncoder 让 SAM 先接触高分辨率网格, CLIP 只接收压缩后的序列. 这样既复用两类初始化, 又避免让 CLIP 的全局注意力直接面对全部高分辨率 patch. 论文把两者称为 perception 与 knowledge 部件, 但没有用冻结实验验证这种语义分工.

16 倍压缩发生在进入 CLIP 之前, 所以 CLIP 无法恢复卷积压缩器已经丢失的局部变化. 解码器能够补全常见词形和文档结构, 但补全可能产生看似流畅却不忠于页面的字符. 对数据生产而言, 这类错误比明显乱码更难过滤. 报告主要用 edit distance 衡量输出, 没有单列数字, 专名与公式中的高风险替换.

2.3. 多分辨率档位不是同一输入的免费切换

模型提供 Tiny, Small, Base, Large, Gundam 与 Gundam-M 等档位. Tiny 对应 512×512 输入和 64 个视觉 token, Small 对应 640×640 与 100 token; 更高档位增加分辨率与 token 数. 位置编码插值让同一编码器接受不同网格, 但更高分辨率会增加 SAM 阶段的密集 patch 和计算.

Base 与 Large 对输入做 padding 以保留长宽比. 若实际内容区域的长边对齐方形画布, 短边方向会出现空白 token. 报告用式 (1) 估算有效 token: Nvalid=⌈Nactualmin⁡(w,h)/max⁡(w,h)⌉N_{valid}=\lceil N_{actual}\min(w,h)/\max(w,h)\rceil. 例如 1024×512 页面进入 Base 的 256 个槽位, 有效数约为 128. 该公式按面积比例估算, 不会判断页面边缘是否本来就是空白.

Tiny 与 Small 直接 resize, 没有 padding 浪费, 但会扭曲长宽比. 对普通段落, 形变可能仍可识别; 对几何图形, 图表比例与细小公式, 形变会改变视觉结构. 这也是高档位保留长宽比的原因. 论文没有在相同有效 token 下比较 resize 与 padding, 两种预处理的独立影响仍不清楚.

有效视觉 token 数还可能小于张量中的填充长度. OmniDocBench 表中 Base 为 256 个槽位, 平均有效 token 182; Large 为 400 与 285. 比较模型时应区分上限和有效平均数. 报告以平均每页 token 衡量推理序列, 没有把视觉编码器 FLOPs 与峰值显存放进同一张表.

多分辨率输入依赖位置编码插值. 预训练位置网格被调整到新的空间尺寸, 使相同参数能够处理不同宽高. 插值解决位置参数尺寸不匹配, 并不保证任意极端长宽比都有相同性能. 文档页面, 幻灯片与报纸的空间分布差异较大, 模型还要依靠训练中的分辨率和长宽比分布来适应. 报告没有给固定 token 数下不同长宽比的消融.

Gundam-M 还会把大图拆为若干局部视图并保留全局视图, 因而 token 数高于单幅 Gundam. 局部视图提高小字可读性, 全局视图保留页面布局. 这种组合与简单提高单图分辨率的计算路径不同. OmniDocBench 中 Gundam-M 的平均 1853 token 换来更低 edit distance, 但不再属于「少于 800 token」的档位.

3. 数据与训练把压缩器变成文档模型

3.1. OCR 数据不只包含纯文本页面

预训练数据包含 OCR 1.0, OCR 2.0, 一般视觉与纯文本数据. OCR 1.0 侧重文字和布局恢复, OCR 2.0 扩展到图表, 化学结构与几何图形. 一般视觉数据保持图像描述, 检测和 grounding 能力, 纯文本数据用于保留解码器语言能力. 不同任务通过 prompt 区分输出形式.

数据比例为 OCR 70%, 通用视觉 20%, 纯文本 10%. OCR 文档主体包括从互联网收集的 3000 万页 PDF, 中文和英文约 2500 万页, 其他近 100 种语言共约 500 万页. 中文与英文各有 200 万页细标注, 其余数据可使用 fitz 提取的粗标注. 自然场景 OCR 另从 LAION 与 Wukong 获取图像, 用 PaddleOCR 标注, 中英文各 1000 万条.

细标注由版面模型和已有 OCR 系统生成, 因此教师模型错误会进入训练集. 对低资源语言, 流水线先用 fitz 构建 patch 训练 GOT-OCR2.0, 再标注布局切分后的 patch, 形成 60 万条飞轮数据. 这种方法扩大语言覆盖, 也可能把字体或版面偏差循环放大. 论文没有报告人工抽检比例与各语言标签准确率.

PDF 页面来自真实文档与合成数据, 覆盖中英文及近 100 种语言. 合成页面可以控制字体, 布局与文字密度, 真实页面补充扫描噪声和复杂结构. 报告没有公布各类数据的精确比例与去重细节, 因而无法复原训练分布. 多语言能力也只给可视化样例, 没有逐语言基准表.

训练分两阶段. 第一阶段固定解码器, 主要训练 DeepEncoder, 使视觉特征对齐已有语言空间; 第二阶段联合训练编码器与解码器. 报告明确没有 SFT 阶段, 模型不是按聊天助手行为训练, 部分能力需要 completion prompt 激活. 这一点解释了开源权重的调用方式, 也限制把通用视觉样例当成对话能力证明.

第一阶段冻结语言模型可以避免尚未对齐的视觉特征立即扰动解码器, 训练压力集中在编码器和投影层. 视觉前缀逐渐学会触发已有词表中的正确文本. 第二阶段再联合更新, 让解码器适应文档布局, 公式与结构化输出. 两阶段分别处理模态对齐和端到端任务适配, 但论文没有报告第一阶段结束时的 OCR 成绩, 无法量化联合训练的增量.

数据引擎还通过 prompt 控制带布局与不带布局的输出. 同一页面可以训练纯文本 OCR, Markdown 布局恢复或特定图像区域的深度解析. 这种统一生成接口减少传统 OCR 中检测, 识别与版面重建的独立模块, 代价是所有错误集中到自回归序列中. 一处早期格式错误可能改变后续阅读顺序, 表格闭合与公式边界.

OCR 2.0 数据进一步扩展输出空间. 图表部分用 pyecharts 与 matplotlib 合成 1000 万幅折线图, 柱状图, 饼图和组合图, 目标输出改为 HTML table; 化学结构从 PubChem 获取 SMILES, 用 RDKit 渲染 500 万个图文对; 平面几何按 Slow Perception 构建 100 万条数据. 三类任务都要求模型从像素恢复结构, 不只是识别可见字符串.

合成数据的优势是 ground truth 可精确生成, 样式和坐标也容易控制. 局限在于渲染器分布比真实文档窄. 真实图表可能有遮挡, 扫描噪声和不规则图例; 化学式可能跨行或带手写标记; 几何图形的标注习惯也会变化. 报告提供定性样例, 没有分别给三类 OCR 2.0 任务的独立基准分数.

3.2. 生产吞吐与训练吞吐是不同指标

报告称 20 个节点, 每节点 8 张 A100-40G, 每天可处理 3300 万页, 折合单卡每天约 20 万页. 该数字描述数据生产管线的页面吞吐, 会受分辨率档位, 输出长度, batch 和后处理影响. 它不是训练速度, 也不能直接外推到任意硬件.

训练部分另给出纯文本约 100B token/天, 多模态约 70B token/天的速度. 文本 token 与页面数的单位不同. OCR 生产还要保存 Markdown 或结构化结果, 运行质量过滤并处理失败页面. 发布的吞吐证明模型适合大规模数据构建, 但没有给能耗, 错误重试和质量过滤后的净留存率.

训练采用 20 个节点, 每节点 8 张 A100-40G, 流水线并行分为四段, 数据并行度为 40, global batch size 为 640. SAM 与压缩器放在 PP0 并冻结, CLIP 放在 PP1 继续训练, 12 层 MoE 解码器均分到 PP2 与 PP3. 这种划分公开了计算组织方式, 但没有给总训练 step 与实际训练 token 数, 因而不能由每日吞吐还原总训练算力.

4. 实验结果与上下文遗忘边界

4.1. OmniDocBench 的优势来自 token 效率

OmniDocBench 使用 edit distance, 数值越低越好, 并分别评估文本, 公式, 表格和阅读顺序. DeepSeek-OCR Small 只用 100 token, 英文 overall 为 0.221, 优于 GOT-OCR2.0 的 0.287; Gundam 使用 795 token, 英文 0.127, 优于 MinerU2.0 的 0.133, 中文 0.181 也优于 MinerU2.0 的 0.238. Gundam-M 在 200dpi 下用 1853 token, 英文与中文 overall 分别为 0.123 和 0.157.

类别表显示文档结构决定所需档位. Slides 在 Tiny 下已为 0.116, Book 从 Tiny 的 0.147 降到 Small 的 0.085; Newspaper 则从 Tiny 的 0.94, Small 的 0.744, 一直到 Gundam 的 0.122 才明显可用. 报告解释报纸页面通常含 4000–5000 文本 token, 远高于书页和报告, 因而固定视觉 token 下压缩比更高.

比较仍有口径限制. pipeline 模型的 token 数没有统一列出, 不同端到端模型使用的图像分辨率和预处理也不同. OmniDocBench 结果证明 DeepSeek-OCR 在该协议下取得良好的质量与视觉 token 折中, 不能推出其视觉编码 FLOPs 最低. 公式项在中文和英文上仍明显难于普通文本, 也说明压缩没有消除细粒度符号识别问题.

表格还揭示 Base 与 Large 并非所有列都随 token 数单调改善. 英文 overall 从 Base 的 0.137 到 Large 的 0.138 略微变差, 英文 formula 从 0.267 到 0.277, order 从 0.064 到 0.067. 中文 overall 则从 0.240 改善到 0.208. 这些小幅反向变化可能来自样本差异, 解码波动或分辨率对不同结构的影响. 因而分辨率档位应按文档类型选择, 不能默认 token 越多每项必然越好.

Gundam 模式在中文公式上为 0.432, 仍明显高于中文文本的 0.097. Gundam-M 把公式降到 0.377, 改善有限. 公式包含二维结构, 上下标和相似符号, 既需要局部清晰度, 也需要严格序列化. 这项结果限制了把普通文本的近无损压缩结论直接推广到 STEM 文档.

4.2. 渐进遗忘仍是研究设想

报告提出把较早的对话文本渲染为图像, 随时间继续降低图像分辨率, 让旧上下文占用更少视觉 token. 最近信息保留高分辨率, 较远信息逐步丢失细节. Fox 的不同压缩比为这种设想提供 OCR 解码曲线, 但实验没有把图像压缩后的历史重新送入长对话任务.

真正的上下文压缩需要验证问答保持, 跨轮指代, needle-in-a-haystack 和数字精确回忆. OCR edit distance 只测文本恢复, 没有测模型能否利用被压缩信息完成推理. 报告结论也把数字与光学文本交错预训练, 长上下文检索列为后续工作. 因而「理论上无限上下文」不是已有实验结论.

遗忘机制还需要定义丢失优先级. 降低分辨率第一步损害小字符和密集区域, 未必先丢失语义上不重要的信息. 日期, 数字或代码中的一个字符可能对后续任务很关键. 如果系统只按时间降低清晰度, 信息价值与视觉可读性并不一致. DeepSeek-OCR 建立了视觉 token 容量的经验基线, 尚未解决长期记忆的选择与恢复策略.

压缩后的历史还引入可验证性问题. 原始文本若被图像表示替换, 后续回答引用旧信息时需要重新 OCR, 每次解码都可能产生不同局部错误. 系统若同时保留原文用于核对, 存储并没有真正消失; 若只保留图像, 又失去精确恢复保证. 实际长期记忆可能需要原文冷存储, 压缩表示用于常规推理, 在关键事实不确定时再检索原文.

因此 DeepSeek-OCR 已证明的是文档视觉 token 可以形成高压缩的可解码表示, 以及这种表示可服务实际 OCR 数据生产. 它尚未证明视觉上下文能替代文本上下文完成同等推理, 也未证明渐进降分辨率能按语义价值遗忘. 两者之间需要数字与光学文本交错预训练, 长上下文任务和端到端成本评测补足.

工程上可以先按页面信息密度选择 Tiny 到 Gundam-M, 把不同分辨率档位用于文档解析. 若用于对话记忆, 还必须保留原文回退路径与事实级校验, 避免压缩误差进入后续推理后持续传播.

这一区分决定了 OCR 产品能力与长期记忆研究不能共用同一套验收指标.

5. 一组能够区分机制的消融

控制字符熵: 保持字体,字号,页数和文本 token 数不变,分别渲染自然语言,词序打乱文本和随机字符. 三者视觉复杂度接近,语言熵逐步升高. 若自然语言远好于随机字符,说明解码器先验承担了重要压缩. 再按压缩比绘制曲线,可以估计视觉信道与语言冗余各自贡献.

控制空间密度: 将同一文本渲染为单栏大字,双栏小字和稀疏分散布局,保证内容完全相同. 若错误随字符像素高度变化,主要瓶颈在感知与下采样;若大字多栏仍有顺序错误,主要瓶颈在全局布局. 这组实验还能检验 16 倍压缩器对小字的敏感性.

5.1. 控制解码器容量

固定 DeepEncoder,分别使用较弱与较强语言解码器,或在正确前缀教师强制下测试. 强解码器若只提升自然文本而不提升随机串,收益主要来自语言建模;两者都提升则说明视觉表示中有信息但小解码器读不出.

控制视觉 token 数与输入分辨率: 当前档位同时改变分辨率和 token 数,两个变量耦合. 可以将高分辨率输入压到 64 token,也将低分辨率输入映射到 256 token. 前者测瓶颈容量,后者测原始像素上限. 若高分辨率 64 token 优于低分辨率 256 token,说明输入笔画清晰度更关键;反之则表示表示槽位不足.

测试下游任务而非全文恢复: 为每页生成精确问答,关系推理,数字查找和摘要任务. 在不同压缩档位下同时测 OCR 与任务正确率. 两条曲线可能不平行:摘要在高压缩下保持,数字查找快速下降. 这才直接回答渐进遗忘能否服务 LLM 上下文.

复用 DeepSeek-OCR 时的原则边界: 视觉 token 数适合作为 解码器上下文预算,不适合作为文件压缩比. 其收益应在相同隐藏维度,视觉编码成本和输出任务下比较. 当源内容已经是图像文档时,这条路径省去传统多模块流水线;当源内容本来是文本时,还要计入渲染与编码.

Fox 曲线适合说明自然英文文档的经验容量,高风险字段需要单独评测. 随机数字,代码,公式与低资源语言的熵和视觉结构不同,不能套用同一安全倍率. 页面越密集,越应增加局部视图或保留原文回退.

DeepEncoder 的核心结构关系可以压缩成一条信号路径:高分辨率局部感知先提取笔画,学习型卷积把空间信息转移到通道并将位置数降 16 倍,全局视觉模块再建立页面关系,投影后的短前缀由 MoE 解码器展开成文本或结构. 每一步都对应明确代价:窗口限制远程交互,下采样可能混叠,全局模块看不到已丢细节,语言解码可能用先验补错.

长期记忆设想需要把时间衰减改造成价值感知的预算分配. 旧信息可以更模糊,关键数字与身份字段仍应保真;热上下文可以保存视觉表示,冷存储保留原文;模型可在低置信时回源. 没有这些机制时,降分辨率只是按字形大小遗忘,尚未实现按语义价值遗忘.

DeepSeek-OCR 最重要的研究价值由此变得具体:它把视觉编码器从辅助感知模块提升为上下文信道,并给出第一条可测的序列长度—恢复误差曲线. 这条曲线开启了新的设计空间,同时要求后续工作用信息率,任务保持率和端到端成本补齐评价坐标.

压缩倍率的手算揭示什么: 同一档位随页面长度改变工作点: Tiny 固定 64 个视觉 token. 页面分别含 640,960 和 1280 个文本 token 时,压缩比分别为

640/64=10,960/64=15,1280/64=20.640/64=10,\qquad 960/64=15,\qquad 1280/64=20.

模型和图像分辨率没有改变,仅页面文字增加就从较可靠区间移动到明显失真区间. 因而「Tiny 模式准确率」不是单一常数,必须附带页面密度. Small 的 100 token 对同三页分别是 6.4,9.6 和 12.8 倍,拥有更大余量.

若一个 1280 token 页面采用 Base 的 256 个槽位,理论比值为 5 倍;若长宽比 1:2 使有效 token 约 128,有效比值又回到 10 倍. 这里暴露了两个口径:张量序列仍占 256 槽位,内容区域只覆盖约 128 个位置. 前者决定实际 KV 与计算,后者更接近信息密度. 报告比较平均有效 token 时强调后者,部署核算显存时还要看前者.

页面数吞吐可换算平均时间但不能外推延迟: 单卡每天 20 万页对应平均

86400200000≈0.432\frac{86400}{200000}\approx0.432

秒/页. 这是高并发生产吞吐的摊销值,不等于单请求延迟. batch 会并行处理多页,视觉编码与解码也可能流水重叠. 一页输出很短的幻灯片和数千 token 的报纸耗时不同,平均数还依赖页面分布.

20 节点共 160 张卡,若线性按 20 万页/卡估算,理论上约 3200 万页/天,与报告的 3300 万页规模接近. 这种一致性说明单卡与集群数字采用相近口径,仍没有给出质量过滤后的保留页数. 数据生产的有效吞吐应为

Tvalid=Traw(1−pfail)(1−preject),T_{valid}=T_{raw}(1-p_{fail})(1-p_{reject}),

其中 pfailp_{fail} 是推理或解析失败率,prejectp_{reject} 是质量过滤淘汰率.

5.2. 视觉前缀越短,长输出中的收益越大

假设原文历史为 1000 token,视觉压缩为 100 token,后续生成 500 token. 忽略层宽和常数,decode 注意力读取的历史位置总量可粗略比较为

∑i=1500(1000+i)与∑i=1500(100+i).\sum_{i=1}^{500}(1000+i) \quad\text{与}\quad \sum_{i=1}^{500}(100+i).

两者相差 500×900=450000500\times900=450000 次位置读取. 但若任务本身是 OCR 全文恢复,视觉方案还要生成原来的 1000 token;若任务只回答一句话,输出可能几十 token. 所以光学上下文的计算收益取决于使用方式,不只取决于 N/nN/n.

不确定性怎样变成可操作信号: token 概率只覆盖解码器不确定性: 自回归解码器在每一步给出词表分布. 最大概率低或熵

Hi=−∑vp(v∣Z,y<i)log⁡p(v∣Z,y<i)H_i=-\sum_v p(v\mid Z,y_{<i})\log p(v\mid Z,y_{<i})

较高,说明当前字符或子词有多个候选. 可以按区域聚合熵,触发更高分辨率重试. 但神经网络可能高置信地产生语言上常见、视觉上错误的词,因此概率没有天然校准.

解码温度为 0 时无法用采样方差估计不确定性. 可以比较不同档位输出:Small 与 Base 在某字段一致时提高信心,不一致时升级 Gundam 或回源. 也可以让独立 OCR 系统再次识别数字与实体. 这种一致性仍是启发式,共享训练数据的模型可能犯相同错误.

局部重读比整页升级节省 token: 若模型能输出文本区域坐标,低置信字段可以裁成局部图重新识别. 设整页 Gundam 需要 800 token,一个局部块为 100 token;只重读两个区域会增加 200,低于整页升级. 这把固定档位变成渐进计算:先用 Small 扫描,再为疑难区域追加视觉证据.

局部重读需要将输出字符映射回页面坐标. 若初次阅读顺序错误,坐标关联可能失效. Grounding prompt 与版面标注为这一机制提供接口,论文没有报告基于置信度的自适应重读实验.

关键字段应采用规则校验: 日期,金额,身份证号和化学式常有格式约束. 校验和,正则或领域解析器可以发现部分错误. 例如表格金额合计与明细不一致时,系统可定位相关单元格重读. 这些约束提升可靠性,但属于任务外部知识,不能用来宣称视觉编码本身无损.

与传统 OCR 流水线的机制差异: 显式中间结果换成隐式序列状态: 传统系统依次做文字检测,行框排序,字符识别和版面重建. 每一阶段有可观察中间结果,方便定位错误,但上游框偏移会传播到下游. DeepSeek-OCR 直接从视觉前缀生成最终序列,区域与阅读顺序隐含在模型状态中.

端到端训练允许最终文本损失共同调整特征,避免各模块目标错位. 代价是可解释性下降:漏掉一段时很难直接判断检测,排序还是解码出了问题. Deep parsing 的 prompt 将多任务统一,没有消除这些潜在子问题.

流水线可以保留高分辨率局部证据: 检测器先找出文字框后,识别器可逐框放大,所以小字不必与整页共享固定视觉 token. DeepSeek-OCR 的 Gundam 局部块在一定程度上恢复这一能力,但裁块粒度比文字框粗. 规则档位换来统一结构,在极端密集页上可能需要更多冗余 token.

传统系统还可为每个字符输出坐标与置信度,便于人工校对. 端到端 Markdown 更自然,字符级对齐则需要额外 grounding. 两条路线的优劣取决于输出任务,不能只用总体 token 数比较.

错误传播方向不同: 流水线的检测遗漏会让后续永远看不到区域,但已检测区域之间较独立. 自回归端到端模型读取整页,理论上能利用全局上下文纠错;一次早期生成错误又会成为后续条件,可能扰乱长段结构. n-gram processor缓解重复,无法纠正阅读顺序选择.

实际系统可以保留混合诊断:端到端模型生成 Markdown,轻量检测器检查文字区域覆盖,结构解析器验证表格与公式. 这些模块给黑盒序列输出增加可观测约束,又无须接管主识别路径.

多语言压缩的特殊变量: ### 5.3. 字符集与字体改变视觉难度

拉丁字母的基本笔画较少,中文字符在相同字号中包含更多局部结构,阿拉伯文还有连写与上下文形变. 输入像素高度相同不代表可辨信息相同. 压缩器的 16 倍空间下采样可能更早损害复杂字形.

文本 tokenizer 对各语言的分词效率也不同. 某语言平均每字符需要更多 token,报告比值 N/nN/n 会显得更高,其中一部分来自 tokenizer,一部分来自视觉难度. 多语言容量比较应同时报告字符错误率,每字符文本 token 数和视觉 token 数.

低资源语言面对双重稀缺: 训练页数少意味着字体与版面覆盖不足,教师 OCR 也可能更弱. 飞轮扩大样本时,伪标签错误更难被独立监督纠正. 通用视觉和语言解码器可以迁移笔画与文档结构,无法替代罕见字符真值.

逐语言测试还应控制脚本重叠. 使用拉丁字母的低资源语言可能从英语迁移,独特文字系统的难度更高. 论文的近 100 种语言样例展示覆盖范围,尚未形成每种语言的可靠压缩阈值.

混合语言页面增加路由压力: 科研文档可能同时包含中文正文,英文术语,LaTeX 公式和代码. 解码器要在词表与专家间快速切换,视觉编码器还要保存不同尺度的字形. 按整页指定单一语言无法解决局部切换.

混合页面的错误应按片段语言统计. 如果 overall 由大量中文正文主导,少量公式或英文专名失败会被平均掩盖. 这也是领域文档需要字段级验收的原因.

论文与公开实现的证据接口: DeepSeek-OCR 技术报告定义光学压缩比,DeepEncoder,训练数据与 Fox、OmniDocBench 实验. DeepSeek-OCR 官方仓库给出 Tiny 到 Gundam 的公开模式,prompt,权重和 vLLM/Transformers 推理设置. General OCR Theory把普通文字,公式,表格,图表,乐谱与几何形状统一到 OCR 2.0 的「人工光学字符」范围,解释了 DeepSeek-OCR 数据引擎为何超出传统文字识别.

三者连成一条清楚的技术路线:GOT 先把端到端 OCR 的输出范围扩展到结构化人工符号,DeepSeek-OCR 再把视觉编码器的输出长度提升为核心研究变量,官方仓库则把多分辨率与结构化提示变成可运行接口. 信息论推导,成本手算和失效分类沿这些公开定义展开,目的是标出实验数字适用的条件.

截至原始技术报告,视觉 token 高压缩已经在文档恢复和实际基准上得到验证;视觉记忆替代文本上下文仍需下游长程任务. 这两层结论同时保留,才能既看到 DeepEncoder 的新意,也避免把一条 OCR 率失真曲线提前写成通用长期记忆方案.

从页面压缩推广到上下文压缩的必要条件: 第一项条件是 任务接口能读取视觉前缀. DeepSeek-OCR 的解码器在训练中学过图像到文本和结构化输出;普通纯文本 LLM 没有视觉入口,不能直接消费 DeepEncoder token. 即使另接投影层,共享隐藏维度也不保证模型理解其含义,仍需要视觉—语言对齐训练.

第二项条件是视觉表示与后续文本能够交错. 长对话可能由旧页面,最近文本,工具结果和新图像组成. 模型要区分各段边界,建立跨模态位置关系,并在回答时同时引用. 仅训练单页 OCR 时,视觉前缀后面紧跟该页转写;它没有覆盖隔了许多轮之后再查询页面细节的分布.

第三项条件是压缩误差可以被发现. 若模型把视觉前缀中的模糊数字自信地补成常见值,后续推理会在错误事实上保持逻辑一致. 系统至少要保存字段置信度,页面来源和原文定位,让答案能够触发回源. 没有来源指针的连续视觉 token 很难单独承担可审计记忆.

第四项条件是节约大于新增成本. 对原生 PDF,视觉入口本来就需要;对纯文本历史,渲染,DeepEncoder 和更复杂的多模态 prefill 都是新增项. 只有在历史较长,复用次数较多或 KV 预算紧张时,短视觉前缀才更可能获得端到端收益. 对几百 token 的短对话,直接保留文本通常更简单也更精确.

第五项条件是遗忘策略与任务风险匹配. 普通闲聊允许语义级恢复,代码补丁,财务数字与医疗剂量要求逐字符保真. 同一个时间衰减规则不能同时服务这些内容. 视觉压缩应成为多层记忆中的一种表示,由风险和价值路由,而非覆盖所有历史的唯一格式.

这五项条件把压缩曲线连接到上下文系统:曲线帮助选择每页视觉预算,估计恢复风险,并决定何时加载原文. 当前实验已充分支撑高 token 效率的文档视觉编码与解码;用于长期上下文时,还要逐项验证上述接口,交错训练,回源,成本和风险条件.