单篇 · 无期号ARTICLE

论文 / 机制解读 paper

领域 推理与效率OCR 与文档理解

当模型学会遗忘:R-SWA 注意力机制的技术拆解

2026-07-20 阅读约 17 分钟

本期要点POINTS

本期要点

本期未收录要点:抽取阶段判定该篇正文没有可提炼的线索性结论(不造数、不空着)。

关键实测数据DATA

关键实测数据

本期无新增实测:该篇正文没有自测数字(不造数、不空着)。 同类读数集中在有实测的期与 证据索引页。

百度开源 Unlimited OCR,号称"500M 参数吊打 235B 大模型"。这个宣称有几分真、几分营销?论文揭示了一颗值得关注的注意力机制内核——R-SWA。


"500M vs 235B" 的真实面目

2026 年 6 月,百度开源了 Unlimited OCR——一个基于 DeepSeek-OCR 改进的文档解析模型。随之在社交网络上传播的是:

3B 总参数、仅 500M 激活参数的 OCR 模型,在 OmniDocBench 上以 93%+ 的 Overall 分数,超越了 Qwen3-VL 235B(~89%)。

500M 激活 vs 235B 全参。但这组数据需要放在正确的参考系中解读。

在 OmniDocBench v1.5 上几个代表性模型的分数[^1]:

模型 参数量 Overall ↑
InternVL3 78B 80.33
Qwen2.5-VL 72B 87.02
Qwen3-VL 235B 89.15
DeepSeek-OCR(基线) 3B-A0.5B 87.01
Unlimited OCR 3B-A0.5B 93.23
DeepSeek-OCR 2 3B-A0.5B 89.17

← 表格可左右滑动查看

两个关键信息被"500M vs 235B"的叙事掩盖了:

  1. DeepSeek-OCR 本身就达到了 87%——只比 235B 的 Qwen3-VL 低 2 个百分点。OCR 任务上通用模型的规模优势远不如在其他领域显著。
  2. 真正更有意义的对比是 Unlimited OCR 和它的基线 DeepSeek-OCR 之间的差距——同样架构、同样参数量,唯一的变化是把标准 MHA 换成了 R-SWA。分数从 87.01 跳到 93.23,净增 6.22 个百分点。

"500M 吊打 235B" 确实是营销话术——跨量级对比永远存在"专项 vs 通用"的不可比性。但 R-SWA 这个注意力机制本身打了一场硬仗:只改 attention,4000 步 fine-tune,相同参数量的模型性能提升 6.22%。


问题根源:长序列解码的 KV Cache 诅咒

所有基于 LLM 的 OCR 模型(包括 DeepSeek-OCR)都面临同一个困境:KV cache 随输出长度线性增长。

假设一份 20 页的文档:

  • DeepEncoder 将每页压缩为 256 visual tokens → prefix = 5120 tokens
  • 每页平均输出约 5120 tokens → total output ≈ 102K tokens

标准 MHA 下每层的 KV cache:

C_MHA(T) = L_prefix + L_output = 5K + 102K = 107K

仅 KV cache 就占满了单张 A100。论文 Fig.3 展示了解码延迟随序列长度增长的趋势:DeepSeek-OCR 的 FlashAttention 耗时在 6K 步时已达 ~18μs/步,仍在上升[^1]。这就是所有端到端 OCR 模型只能逐页 for-loop 处理的根本原因。


R-SWA 核心设计

Unlimited-OCR 架构总览

认知科学灵感

论文描述了一个很直觉的观察:人类抄书时注意力聚焦在三处:

  • 原书(对应 visual tokens):始终可见
  • 刚写的几个字(对应最近几个 output tokens):大约只看最近 3-5 个
  • 写好的内容(对应更早的 output tokens):不保留精确记忆,只保留"软遗忘"

这个观察对应了两个关键设计原则:

  1. visual/reference tokens 永久驻留——它们是最核心的信息源,不应随滑动窗口被驱逐
  2. output tokens 只需要近期上下文——更早的历史不需要精确回溯

Attention Scope 定义

R-SWA 注意力作用域

R-SWA 的 attention scope 分为两段[^1]:

N(t) = P ∪ D_n(t)

P = {1, ..., L_m}                     ← 全部 visual + prompt tokens(永久可见)
D_n(t) = { j | max(L_m+1, L_m+t-n) 
             ≤ j ≤ L_m+t-1 }         ← output 最近的 n 个 tokens(默认 n=128)

每个 decode token 的 attention 计算只在 m + n 个 token 内进行——通常约 5K-10K(visual)+ 128(output)= 一个固定值。

与标准 SWA 的关键区别

维度 标准 SWA R-SWA
Visual tokens 随窗口滑动逐步驱逐 永久保留,从不驱逐
Output tokens 滑动窗口 滑动窗口(n=128)
Visual 信息衰减 渐进模糊 保真度不损
适用场景 文本生成 OCR/ASR/翻译等 reference-based 任务

← 表格可左右滑动查看

KV Cache 管理

KV cache 实现为固定容量的环形缓冲区[^1]:

C_R-SWA(T) = L_m + min(n, T) ≤ L_m + n

无论输出 1K tokens 还是 100K tokens,decode-side KV cache 永远不超过 L_m + 128。

输出长度 MHA KV Cache R-SWA KV Cache 压缩比
256 5,376 5,248 ~1x
1K 6,144 5,248 1.17x
10K 15,360 5,248 2.9x
100K 105,000 5,248 20x

← 表格可左右滑动查看

注:假设 L_m = 5K(约 20 页文档的 visual tokens),实际取决于图像分辨率和页数。

推理速度实测

论文 Table 4 给出了理论推理速度天花板对比[^1](prefill length=10,理想并发条件):

输出长度 DS-OCR TPS U-OCR TPS Δ
256 7,229 7,229 0%
512 7,468 7,715 +3%
2,048 7,167 7,881 +10%
6,144 5,823 7,848 +35%

← 表格可左右滑动查看

在 6K 输出时 Unlimited OCR 比基线快 35%。论文解释:标准 MHA 的 FlashAttention kernel 在 KV cache 长度跨越特定对齐边界时会出现数据传输效率骤降(Fig.3 中的 spike),R-SWA 完全避免了这个问题[^1]。

R-SWA 为何提高准确率

仅改变 attention 机制、不增加任何参数量,Unlimited OCR 比 DeepSeek-OCR 高出 6.22 个百分点。

论文 Table 2 展示了全部 9 种子类型文档(PPT、学术论文、书籍、考试卷、报纸、杂志、笔记等)的详细对比,R-SWA 在每一项上都全面优于或持平于基线[^1]。

一个合理的推测(论文未明说,但可从数据推断):标准 Full Attention 在长序列解码时,注意力分布随序列增长而发散,模型需要对过去所有 token 计算 attention,信息被稀释。R-SWA 强制模型聚焦在近 128 个 output tokens 和全部 visual tokens 上,反而让注意力更集中。

OmniDocBench 详细对比

论文 Table 1 展示了 Unlimited OCR 与基线 DeepSeek-OCR 的逐项对比[^1]:

指标 DS-OCR U-OCR Δ
Overall ↑ 87.01 93.23 +6.22%
Text Edit ↓ 0.073 0.038 -48%
Formula CDM ↑ 83.37 92.61 +11.1%
Table TEDS ↑ 84.97 90.93 +7.0%
Read-order Edit ↓ 0.086 0.045 -48%

← 表格可左右滑动查看

多页长文 One-shot

论文 Table 3 展示了 Unlimited OCR 的多页处理能力[^1](自建测试集):

页数 Edit Distance ↓ Distinct-35 ↑
2 0.036 99.87%
5 0.045 99.98%
10 0.053 99.83%
20 0.057 99.89%
40+ 0.107 96.90%

← 表格可左右滑动查看

论文分析认为 40+ 页时 Edit Distance 上升到 0.107 的主要原因是 DeepEncoder 的 Base 模式(1024×1024)分辨率不足以识别小字,而非 R-SWA 丢失方向[^1]。

"Unlimited" 的边界

论文诚实地标注了当前限制[^1]:

  • Prefill length 仍然是瓶颈。20 页 ≈ 5K visual tokens。200 页时 prefill 本身会撑爆 32K context。
  • Base 模式(1024×1024)在多页场景下遇到小字识别瓶颈。40+ 页测试中的错误大量来自小字模糊问题。
  • 当前最大上下文 32K,对应约 ~30 页文档的极限(128K 训练版已在路线图上)。

训练细节

论文 §4 详细说明了训练设置[^1]:

项目 取值
起点 DeepSeek-OCR checkpoint
训练步数 4000 steps
训练数据 200 万 PDF 样本(9:1 单页:多页)
单页标注 PaddleOCR 标注 → 拼接坐标 + 内容
多页构造 随机拼接 2~50 页,<page> 分隔,pack 到 32K
冻结部分 DeepEncoder(冻结,只训 LLM)
优化器 AdamW + cosine annealing, lr=1e-4
硬件 8×16 A800, global batch=256
并行方案 DeepEP + expert parallelism=4, Megatron-LM

← 表格可左右滑动查看

只训 4000 步说明 R-SWA 属于低成本替换——不改变模型架构,只改 attention mask + KV cache 管理。


这为什么值得关注

对 OCR 从业者

大批量文档 OCR 场景(银行流水、发票、论文库):

  • 扔掉 for-loop 分页逻辑。20 页文档一次推理,延迟恒定。跨页的阅读顺序、表格、引用连贯性相比逐页处理有质的提升。
  • 硬件成本骤降。恒定 KV cache 意味着不需要为长文档预留巨量显存,8GB 消费级显卡也能处理长文档。
  • 部署简单。HuggingFace transformers 直接可用,SGLang / vLLM 均已支持[^2]。

对 Attention 机制研究者

R-SWA 填补了一个被忽视的空白:在 reference-based 长序列解码场景下,visual tokens 不应该滑动。

论文中给出了具体架构参数[^3]:hidden=1280, heads=10, head_dim=128, MoE intermediate=896, 64 experts, top-6 routing, vocab=129,280。并非通用 attention 方案,而是针对一个精心剪裁的架构。

论文明确指出了向 ASR(音频固定、文本生成滑动)和翻译(源文本固定、目标文本生成滑动)的迁移路线[^1]。这个价值大于 OCR 本身。

对大模型格局的观察

Unlimited OCR 间接回答了一个更大的问题:端到端 OCR 赛道已极度成熟。

  • 3B MoE 模型已在 OCR 专项上击败 235B 通用模型
  • DeepEncoder 的 16× 压缩比已相当好
  • 现在连 attention 机制也找到了最适合这个任务的变体

留给后来者的创新空间正在收窄——除非在训练数据量或数据质量上做出突破性差异。

诚实评价

回到最初的问题:"500M 吊打 235B" 是否事实?

  • 在 OmniDocBench OCR 单项上,Unlimited OCR 确实超越了 Qwen3-VL 235B。这个结论是事实
  • 但这是 OCR 专项模型 vs 通用 VL 模型的跨量级对比,字面上正确但不反映真实差距。这个叙事是营销
  • R-SWA 本身的 6.22% 提升(同参数量下)和 35% 推理加速(6K 输出时)是实打实的贡献

参考文献

[^1]: Baidu Inc. Unlimited OCR Works. arXiv:2606.23050, 2026. https://arxiv.org/abs/2606.23050 [^2]: Baidu. Unlimited-OCR. GitHub, 2026. https://github.com/baidu/Unlimited-OCR [^3]: Dicklesworthstone. franken_ocr — Pure-Rust CPU-only OCR engine for Unlimited-OCR. GitHub, 2026. (提供架构参数逆向分析)


发布于 2026-07-17 | 锐Owl · AI 观察者 · 解构者 · 传播者