欢迎光临
我们一直在努力

Unlimited OCR Works:一篇读懂 R-SWA 如何把长文档 OCR 从 for-loop 推向 one-shot

写在前面

图片

欢迎大家关注Rocky的公众号:WeThinkIn 欢迎大家关注Rocky的知乎:Rocky Ding AIGC算法工程师/开发工程师面试面经秘籍分享:WeThinkIn/Interview-for-Algorithm-Engineer欢迎大家Star~

AIGC时代的 《三年面试五年模拟》AI算法工程师/开发工程师求职面试秘籍独家资源: 【三年面试五年模拟】AI算法工程师面试秘籍

Rocky最新撰写AI Agent(AI智能体)的深入浅出全维度解析文章: 深入浅出完整解析AI Agent(AI智能体)的核心基础知识

AIGC算法岗/开发岗面试面经交流社群(涵盖AI Agent、AIGC图像创作、AI视频、LLM大模型、AI多模态、数字人、传统深度学习、具身智能等AIGC面试干货资源)欢迎大家加入:https://t.zsxq.com/33pJ0


大家好,我是Rocky。

核心导读

但 Rocky 认为,这篇报告真正值得看的地方,不只是“百度也做了一个 OCR 模型”,而是它抓住了端到端 OCR 走向长文档解析时最容易被忽略的系统瓶颈:当 decoder 用 LLM 生成越来越长的文本时,KV cache 会持续增长,显存和延迟会逐步吞掉 one-shot parsing 的可行性。

这句话听起来像工程细节,但背后的逻辑很大。

过去文档 OCR 常见做法是逐页处理:第一页进模型,输出第一页;第二页进模型,输出第二页;然后靠外部调度器把结果拼起来。这种 for-loop 范式很实用,但它不是一个真正连续的长程解析过程。每一页都被当成独立短任务,模型不会保留“我已经抄到哪里、前后页之间如何连续”的内在状态。

Unlimited OCR 的核心判断是:对于 OCR、ASR、翻译这类 reference-based parsing 任务,模型不需要在每一步都回看所有已生成文本。它只需要持续看到 reference tokens,也就是源文档、音频或待翻译文本;同时保留最近一小段输出,用来追踪当前解析进度。更久远的输出可以软遗忘。

于是作者提出 Reference Sliding Window Attention,R-SWA:每个新生成 token 都能看见全部 reference tokens 和最近

n

n

n 个输出 tokens,默认

n

=

128

n=128

n=128。这样做的结果是,解码端 KV cache 不再随着生成长度

T

T

T 线性增长,而是被限制在

L

m

+

n

L_m+n

Lm​+n 这个常量上界内。

先给结论:

  • Unlimited OCR 以 DeepSeek OCR 为 baseline,保留 DeepEncoder 的高压缩视觉编码能力,把 decoder 所有 attention 层替换为 R-SWA。
  • R-SWA 让长程解码中的 KV cache 保持常量上界,解决了输出越长越慢、显存越涨越高的问题。
  • 论文在 OmniDocBench v1.5 上整体分数达到 93.23,比 DeepSeek-OCR 的 87.01 提升 6.22;在 OmniDocBench v1.6 上整体分数达到 93.92。
  • 在长文档 one-shot OCR 测试里,40+ 页仍能保持 96.90% Distinct-35 和 0.1069 edit distance。
  • 理论 TPS 对比中,输出长度到 6144 tokens 时,DeepSeek OCR 为 5822.87 TPS,Unlimited OCR 为 7847.71 TPS,差距约 35%。

Rocky 的核心判断是:DeepSeek-OCR 证明了文本可以被高效压成视觉 tokens,Unlimited OCR 则进一步证明了长程解析不一定要保留完整输出历史;它把“可控遗忘”从概念图推进到了 decoder attention 机制。

在这里插入图片描述

图 1 是整篇报告的技术核心。标准 full attention 会让每个新 token 看到完整历史,因此 KV cache 随输出长度不断增长;普通 sliding window attention 虽然限制了历史长度,但如果把 reference tokens 也纳入状态转移,视觉特征会在递归更新中逐渐模糊。R-SWA 的关键是把 reference tokens 固定保留,让它们不参与输出状态的滚动遗忘;输出侧只保留最近

n

n

n 个 token。

问题背景:作者到底想解决什么

端到端 OCR 在过去几年重新变热,原因很直接:LLM decoder 能利用语言先验,让模型不只是识别字符,还能生成更连贯的文档结构。DeepSeek-OCR 就是典型代表,它通过 DeepEncoder 把高分辨率页面压缩成少量 vision tokens,再用 MoE decoder 生成文本、版面、表格和结构化结果。

但 LLM decoder 带来了一个副作用:输出越长,KV cache 越大;KV cache 越大,每一步 attention 的计算和显存压力越高;文档越长,生成越慢。

这就形成了一个矛盾:

一方面,端到端 OCR 希望把检测、识别、版面、结构化输出都统一到一个生成过程里;另一方面,越是长文档、长书籍、长报告,这个生成过程越容易被 decoder 的历史缓存拖垮。

论文用人的抄书过程作为类比。人类抄书时不会反复回看已经抄过的所有内容,而是看原书、看刚写过的一小段、写下一个字符。真正需要长期保留的是原始 reference,而不是完整输出历史。

这个类比很朴素,但对模型架构很有启发:OCR、ASR、翻译都不是开放式聊天,它们都有一个稳定 reference。模型不是凭空创作,而是在沿着 reference 连续解析。既然 reference 始终可见,历史输出就没有必要无限保留。

Rocky 认为,这里最值得关注的是范式变化:从“所有历史都要保留”的通用生成思维,转向“reference 永久可见、输出局部可见”的解析任务思维。

核心思路:用一句主线串起来

Unlimited OCR 的主线可以压缩成一句话:

保留 DeepSeek-OCR 的高压缩 DeepEncoder,把 decoder 里的标准 MHA 全部替换为 R-SWA,让每个生成 token 始终能看到完整 reference tokens,但只看到最近 128 个输出 tokens,从而让长程解析的 KV cache 保持常量上界。

这个方案不是简单“把窗口调小”。如果只是 vanilla SWA,模型只能看局部历史,可能丢失源图像信息;如果把视觉 tokens 也放进状态转移,视觉特征会被连续更新、逐渐模糊。R-SWA 的设计区别在于两段式 attention:

  • reference segment:视觉 tokens + prompt,长度为

    L

    m

    L_m

    Lm​,全程可见且保持静态;

  • decode segment:已生成输出,只保留最近

    n

    n

    n 个 tokens,作为 causal sliding window。

因此,它既保留了对原文档的全局访问,又避免输出历史无限增长。

方法展开:沿着论文原始逻辑拆解

1. 从 pipeline OCR 到端到端 OCR:长文档问题为什么会暴露出来

传统 OCR 通常是 pipeline:检测模型先定位文字块、表格、公式、图像,再由多个识别模块分别处理。这个范式成熟、可控、工程可拆分,但流程里有大量裁剪、矫正、拼接和启发式规则。

端到端 OCR 则把检测和识别统一成一个 VLM 生成过程。它更接近“模型一次读懂一页”,但也更依赖 decoder 的长序列生成能力。

在单页场景里,输出长度还可控;到了几十页甚至上百页,问题就不同了。多页文档如果仍然逐页 for-loop,就失去了连续状态;如果强行 one-shot,又会遇到长输出 KV cache 和 attention 计算的压力。

因此,Unlimited OCR 的问题定义其实比 OCR 更大:如何让 reference-based parsing 在长程输出里保持连续状态,同时不让历史输出成本无限增长。

2. 系统架构:DeepEncoder 负责压缩输入,R-SWA 负责控制输出

在这里插入图片描述

图 2 展示了 Unlimited OCR 的整体架构。系统仍然采用 DeepSeek OCR 的 DeepEncoder + MoE-LLM decoder 结构。DeepEncoder 负责把高分辨率 PDF image 压缩成少量 vision tokens;decoder 则把所有标准 MHA 替换成 R-SWA。

论文保留 DeepEncoder 的两个模式:

  • Base:

    1024

    ×

    1024

    1024 \\times 1024

    1024×1024,用于 multi-page;

  • Gundam:dynamic resolution,用于 single-page。

DeepEncoder 可以把一个

1024

×

1024

1024 \\times 1024

1024×1024 PDF image 压缩到 256 tokens。这个数字很关键,因为 multi-page prefill 的长度首先取决于视觉 tokens 数量。假设 20-30 页对应 10K vision tokens,如果每个 vision token 大约能解码 10 个 text tokens,那么完整输出可能超过 100K tokens。输入侧已经被 DeepEncoder 压缩过,但输出侧如果仍然用标准 MHA,KV cache 还是会一路线性增长。

这就是 Unlimited OCR 的系统分工:

  • DeepEncoder 解决输入侧 prefix 过长的问题;
  • R-SWA 解决输出侧 continuation 过长的问题。

从产品工程角度看,这个分工非常重要。很多系统优化失败,不是因为单点能力不强,而是只优化了输入或输出的一端。长文档解析是一个端到端吞吐问题:prefill、decode、KV cache、显存、TPS、页面密度都要一起算。

3. R-SWA 的 attention 计算:reference 全局可见,输出局部可见

R-SWA 把可访问集合定义为:

公式(1):

N

(

t

)

=

P

∪

D

n

(

t

)

,

P

=

{

1

,

…

,

L

m

}

\\mathcal{N}(t)=\\mathcal{P}\\cup\\mathcal{D}_n(t), \\quad \\mathcal{P}=\\{1,\\ldots,L_m\\}

N(t)=P∪Dn​(t),P={1,…,Lm​}

其中

P

\\mathcal{P}

P 是 prefix segment,包含视觉 tokens 和 prompt,长度为

L

m

L_m

Lm​。

decode 区间则是宽度为

n

n

n 的 causal sliding window:

公式(2):

D

n

(

t

)

=

{

j

∣

max

⁡

(

L

m

+

1

,

L

m

+

t

−

n

)

≤

j

≤

L

m

+

t

−

1

}

\\mathcal{D}_n(t)= \\left\\{ j\\mid \\max(L_m+1,L_m+t-n)\\leq j\\leq L_m+t-1 \\right\\}

Dn​(t)={j∣max(Lm​+1,Lm​+t−n)≤j≤Lm​+t−1}

也就是说,第

t

t

t 个输出 token 可以看见全部 reference tokens,也可以看见最近

n

n

n 个已生成 tokens,但不能看见更早的完整输出历史。

attention 权重仍然是标准 softmax 形式,只是归一化范围被限制在

N

(

t

)

\\mathcal{N}(t)

N(t) 内:

公式(3):

α

t

j

=

exp

⁡

(

q

t

⊤

k

j

d

k

)

∑

i

∈

N

(

t

)

exp

⁡

(

q

t

⊤

k

i

d

k

)

,

j

∈

N

(

t

)

\\alpha_{tj}= \\frac{ \\exp\\left( \\frac{\\mathbf{q}_t^\\top\\mathbf{k}_j}{\\sqrt{d_k}} \\right) }{ \\sum_{i\\in\\mathcal{N}(t)} \\exp\\left( \\frac{\\mathbf{q}_t^\\top\\mathbf{k}_i}{\\sqrt{d_k}} \\right) }, \\quad j\\in\\mathcal{N}(t)

αtj​=∑i∈N(t)​exp(dk​

​qt⊤​ki​​)exp(dk​

​qt⊤​kj​​)​,j∈N(t)

输出表示为:

公式(4):

o

t

=

∑

j

∈

N

(

t

)

α

t

j

v

j

\\mathbf{o}_t= \\sum_{j\\in\\mathcal{N}(t)} \\alpha_{tj}\\mathbf{v}_j

ot​=j∈N(t)∑​αtj​vj​

这个机制的直觉很清楚:模型每一步都能看到原始文档,因此不会丢掉 reference;模型也能看到最近输出,因此不会忘记自己刚刚写到哪里;更早的输出被软遗忘,因此不会造成 KV cache 无限增长。

这也是它和普通 sliding window attention 的区别。普通 SWA 更像“我只看最近历史”;R-SWA 更像“我一直看原文,只保留最近书写状态”。对于 OCR、ASR、翻译这类任务,后者更符合工作流。

4. KV cache 管理:真正的“无限”来自常量上界

标准 MHA 的 KV cache 大小可以写成:

公式(5):

C

M

H

A

(

T

)

=

L

m

+

T

C_{\\mathrm{MHA}}(T)=L_m+T

CMHA​(T)=Lm​+T

其中

T

T

T 是已生成输出长度。输出越长,KV cache 越大。

R-SWA 的 KV cache 则是:

公式(6):

C

R

–

S

W

A

(

T

)

=

L

m

+

min

⁡

(

n

,

T

)

≤

L

m

+

n

C_{\\mathrm{R\\text{-}SWA}}(T)= L_m+\\min(n,T) \\leq L_m+n

CR–SWA​(T)=Lm​+min(n,T)≤Lm​+n

也就是说,reference cache 始终保留,decode cache 只保留最近

n

n

n 个 tokens。因此当

T

T

T 增长时,缓存不会继续线性增长。

论文进一步定义 cache ratio:

公式(7):

ρ

(

T

)

=

C

R

–

S

W

A

(

T

)

C

M

H

A

(

T

)

=

L

m

+

min

⁡

(

n

,

T

)

L

m

+

T

\\rho(T)= \\frac{C_{\\mathrm{R\\text{-}SWA}}(T)} {C_{\\mathrm{MHA}}(T)} =\\frac{L_m+\\min(n,T)} {L_m+T}

ρ(T)=CMHA​(T)CR–SWA​(T)​=Lm​+TLm​+min(n,T)​

当

T

≫

n

T\\gg n

T≫n 时:

公式(8):

ρ

(

T

)

=

L

m

+

n

L

m

+

T

\\rho(T)= \\frac{L_m+n}{L_m+T}

ρ(T)=Lm​+TLm​+n​

如果 decode length 远大于 prefix length 和 window size:

公式(9):

ρ

(

T

)

≈

L

m

+

n

T

→

0

\\rho(T)\\approx \\frac{L_m+n}{T} \\rightarrow 0

ρ(T)≈TLm​+n​→0

这组公式就是 Unlimited OCR 的底层答案。它不是“无限上下文”,而是“输出侧缓存不随输出长度无限增长”。真正的限制还在 prefill:reference tokens 仍然受 32K、128K 等上下文长度约束。

Rocky 认为,这一点必须讲清楚:Unlimited OCR 的 unlimited 不是数学意义上的无限,而是把长程解析中最危险的 decode-side KV cache 增长变成了常量上界。

5. Kernel study:延迟曲线为什么能稳定下来

在这里插入图片描述

图 3 展示了 Flash Attention v3 kernel 的 per-call duration。DeepSeek OCR baseline 随着解码长度增加,标准 MHA kernel 延迟逐步上升;Unlimited OCR 的曲线则基本保持稳定。

论文还指出,DeepSeek OCR 曲线中出现 spike,是因为 KV cache 长度跨过某些 alignment boundary 后,数据传输效率突然下降。R-SWA 因为 cache 长度固定,也避免了这种问题。

这张图的意义不是单纯展示速度,而是说明一个系统性质:长程解析任务最需要的不是短跑峰值,而是长跑稳定性。如果处理一本书、几十页 PDF 或数小时音频,生成速度不能越跑越慢,显存也不能越跑越高。

实验与证据:结果能支撑到什么程度

1. 训练设置:继续训练,而不是从零重造

Unlimited OCR 从 DeepSeek OCR checkpoint 出发继续训练。作者构造了约 200 万 document OCR 数据样本,单页与多页比例为 9:1。多页数据通过拼接单页数据合成,约 20 万样本,每个样本包含 2 到 50 页,并用 <page> 作为页间分隔符。所有数据 pack 到 32K sequence length。

训练配置上,作者冻结 DeepEncoder,只训练 LLM 参数;训练 4000 steps,global batch size 为 256,最大序列长度 32K,使用 8×16 A800 GPUs;采用 DeepEP,expert parallelism 设置为 4;训练框架为 Megatron-LM,推理侧实现了 Transformers 和 SGLang 支持。

这个设置说明作者的目标不是重新证明视觉编码能力,而是验证 decoder attention 替换是否可行。也就是说,论文的实验变量非常聚焦:把标准 attention 换成 R-SWA 后,OCR 精度是否损失?长程解析是否成立?速度和显存是否稳定?

2. OmniDocBench 主结果:R-SWA 没有牺牲单页能力

表 1 是论文最主要的 benchmark 结果。为了保留证据完整性,我在这里保留原始表格。

ModelSizeOverall ↑Text Edit ↓Formula CDM ↑Table TEDS ↑Table TEDS-S ↑Read-order Edit ↓
End-to-end Model (v1.5)
OCRFlux 3B 74.82 0.193 68.03 75.75 80.23 0.202
GPT-4o – 75.02 0.217 79.70 67.07 76.09 0.148
InternVL3 78B 80.33 0.131 83.42 70.64 77.74 0.113
POINTS-Reader 3B 80.98 0.134 79.20 77.13 81.66 0.145
olmOCR 7B 81.79 0.096 86.04 68.92 74.77 0.121
InternVL3.5 241B 82.67 0.142 87.23 75.00 81.28 0.125
MinerU2-VLM 0.9B 85.56 0.078 80.95 83.54 87.66 0.086
Nanonets-OCR-s 3B 85.59 0.093 85.90 80.14 85.57 0.108
Qwen2.5-VL 72B 87.02 0.094 88.27 82.15 86.22 0.102
Gemini-2.5 Pro – 88.03 0.075 85.82 85.71 90.29 0.097
dots.ocr 3B 88.41 0.048 83.22 86.78 90.62 0.053
OCRVerse 4B 88.56 0.058 86.91 84.55 88.45 0.071
Qwen3-VL 235B 89.15 0.069 88.14 86.21 90.55 0.068
DeepSeek-OCR 2 3B-A0.5B 89.17 0.049 86.85 85.60 90.06 0.060
DeepSeek-OCR 3B-A0.5B 87.01 0.073 83.37 84.97 88.80 0.086
Unlimited-OCR 3B-A0.5B 93.23 0.038 92.61 90.93 94.07 0.045
vs DeepSeek-OCR ↑6.22 ↓0.035 ↑9.24 ↑5.96 ↑5.27 ↓0.041
End-to-end Model (v1.6)
HunyuanOCR 1B 89.95 0.088 87.68 91.01 92.23 0.171
DeepSeek-OCR 2 3B-A0.5B 90.25 0.050 91.84 83.89 87.75 0.144
dots.ocr 3B 90.77 0.048 89.95 87.18 90.58 0.138
FireRed-OCR 2B 93.26 0.037 95.44 88.04 91.06 0.131
Logics-Parsing-v2 4B 93.33 0.041 95.65 88.42 91.98 0.137
Qianfan-OCR 4B 93.90 0.040 95.08 90.53 93.31 0.130
Unlimited-OCR 3B-A0.5B 93.92 0.042 95.79 90.16 93.32 0.129

这个结果最值得读的是两点。

第一,R-SWA 没有让基础 OCR 能力塌掉。相反,在 OmniDocBench v1.5 上,它比 DeepSeek-OCR baseline 全面提升:overall +6.22,text edit distance 降低 0.035,table TEDS 提升 5.96。

第二,v1.6 上 Unlimited-OCR 的 93.92 overall 与当前强模型处于同一梯队,且 size 只有 3B-A0.5B。这里的重点不是“榜单第一”本身,而是说明 decoder attention 的替换没有带来明显能力损失。

当然,严谨地说,这里也存在一个变量:Unlimited OCR 不是只换 attention,它还基于 200 万 PDF-specific 数据继续训练。因此不能把所有提升都单独归因于 R-SWA。但作者的主张更保守:R-SWA 在 parsing task 上至少是可用的、低损甚至有益的。

3. 分文档类型结果:复杂版面没有明显退化

表 2 比较了 DeepSeek-OCR、DeepSeek-OCR 2 和 Unlimited OCR 在 9 类文档上的 text edit distance 与 reading order edit distance。

ModelEdit ↓PPTAcademic PaperBookColorful TextbookExam PaperMagazineNewspaperNoteResearch Report
DS-OCR Text 0.052 0.028 0.022 0.130 0.074 0.049 0.131 0.145 0.015
R-order 0.052 0.021 0.040 0.125 0.083 0.101 0.217 0.089 0.016
DS-OCR 2 Text 0.031 0.013 0.033 0.053 0.047 0.026 0.139 0.068 0.008
R-order 0.025 0.013 0.027 0.066 0.048 0.100 0.176 0.035 0.011
UOW Text 0.025 0.023 0.019 0.046 0.049 0.020 0.081 0.066 0.008
R-order 0.023 0.012 0.025 0.051 0.049 0.061 0.134 0.018 0.013

这个表对 R-SWA 很关键。因为如果 sliding window 机制只适合简单文档,它可能会在 PPT、报纸、杂志、笔记这类复杂版面上出现阅读顺序混乱。但结果显示,Unlimited OCR 在 newspaper、magazine、note 等复杂类型上没有明显劣势。

Rocky 的理解是:R-SWA 能成立,是因为 OCR 的 progress tracking 主要依靠局部输出状态,而不是全部历史文本。模型需要知道“我刚刚解析到哪里”,但不一定需要完整保留“我十页前写了什么”。

4. 长程解析:40+ 页仍可 one-shot,但还不是无限

表 3 是这篇论文最有新意的部分:

Metrics / Pages2510152040+
Distinct-20 ↑ 99.76% 99.78% 97.49% 99.92% 98.73% 96.08%
Distinct-35 ↑ 99.87% 99.98% 99.83% 99.99% 99.89% 96.90%
Edit Distance ↓ 0.0362 0.0452 0.0526 0.0787 0.0572 0.1069

作者构造了 in-house 长程 OCR 测试集,按 2、5、10、15、20、40+ 页分组,每组不少于 10 本书或文档。结果显示,20 页以内 edit distance 仍较低;40+ 页时 edit distance 为 0.1069,Distinct-35 为 96.90%。

Distinct-n 在这里主要用于观察重复退化。长程生成很容易出现重复段落、循环输出、迷失进度。如果 Distinct-35 仍然接近 97%,说明模型没有明显陷入重复生成。

但这仍然不是“无限 OCR”。论文自己也承认,32K 最大上下文仍限制了 prefill length。DeepEncoder 压缩率再高,页面数继续增加时,reference tokens 也会超过上下文窗口。作者短期计划训练 128K,长期计划做 prefill pool,让模型自动获取 prefill KV chunks,模拟人类翻页。

这也是这篇工作的边界:R-SWA 解决的是 decode-side 历史增长,不解决无限 reference 输入。

5. TPS 上限:长输出越长,R-SWA 优势越明显

表 4 对比了不同输出长度下 DeepSeek OCR 和 Unlimited OCR 的理论 TPS 上限:

Model / TPS25651210242048307240966144
DeepSeek OCR 7229.32 7468.27 7422.50 7166.85 6790.72 6430.21 5822.87
Unlimited OCR 7229.52 7714.78 7840.94 7881.11 7881.93 7905.18 7847.71

在 256 tokens 时,两者几乎一样;输出越长,差距越明显。到 6144 tokens,DeepSeek OCR 降到 5822.87 TPS,Unlimited OCR 仍有 7847.71 TPS。

这组数字的产品意义很强:如果只处理短文本,R-SWA 没有太大体感;但如果处理几十页 PDF、长音频转录、长篇翻译,稳定 TPS 就会直接影响可用性、成本和并发能力。

工具不是护城河,判断才是护城河。真正的工程判断,是知道哪个瓶颈会在任务规模扩大后突然变成主矛盾。Unlimited OCR 抓到的正是这个瓶颈。

这篇工作的边界与可复现性

第一,Unlimited OCR 仍受 prefill length 限制。它让 decode-side KV cache 常量化,但 reference tokens 仍要进入上下文。32K 下可以处理几十页,不等于任意页数。

第二,长程测试是 in-house benchmark。表 3 很有价值,但外部复现和横向对比仍依赖公开测试集、数据分布和评测脚本披露。它能证明方向可行,但不能完全代表所有长文档场景。

第三,继续训练数据会影响结果归因。Unlimited OCR 基于 DeepSeek OCR 继续训练 4000 steps,使用约 200 万 PDF-specific 数据。因此单页 benchmark 的提升,既可能来自 R-SWA,也可能来自数据继续训练。更严格的 ablation 需要控制数据和训练步数。

第四,R-SWA 适合 reference-based parsing,但未必适合开放式对话。OCR、ASR、翻译都有稳定 reference;聊天、复杂推理、开放式写作则可能需要更长的输出历史依赖。不能把 R-SWA 直接外推成所有 LLM 任务的通用替代。

第五,公式上 cache ratio 趋近 0 的前提是

T

T

T 远大于

L

m

+

n

L_m+n

Lm​+n。如果 reference prefix 很长,或者输出不长,R-SWA 的收益会变小。这也是为什么论文强调 long-horizon parsing。

如果继续研究/落地,应该关注什么

1. R-SWA 最适合的不是聊天,而是“有 reference 的长程任务”

这篇论文最后提到 ASR 和翻译,Rocky 认为这个方向是对的。

OCR 的 reference 是图像页;ASR 的 reference 是音频特征;翻译的 reference 是源语言文本。它们共同特点是:输出不是自由发散,而是沿着 reference 做连续解析。历史输出需要局部连续性,但不一定需要全量回看。

这意味着 R-SWA 可能会成为一类 parsing attention,而不是普通 LLM attention 的替代品。

2. 真正的 Unlimited 需要 prefill pool

论文已经说得很坦诚:32K 仍然限制 prefill。未来如果要真正解析上百页甚至上千页,不能只扩大 context window,还需要 prefill pool 或 reference memory manager。

这有点像人类翻书。我们不会把整本书所有页面同时摊在眼前,而是当前页高分辨率可见,附近页可快速翻回,远处页通过目录和索引定位。

未来文档 VLM 如果要进入企业知识库、审计、法律尽调、科研综述这类长文档场景,可能需要三层结构:

  • 当前页面的高分辨率 reference tokens;
  • 附近页面的缓存 KV chunks;
  • 全文级目录、索引和检索系统。
  • 3. OCR 赛道会从“页级解析”走向“任务级解析”

    页级 OCR 解决的是一页纸。任务级解析解决的是一本书、一份尽调报告、一套财报、一批合同。

    从这个视角看,Unlimited OCR 的意义不是让单页 OCR 分数更高,而是让 OCR 模型开始具备连续处理长任务的能力。它把外部 for-loop 调度的一部分职责收回模型内部,让模型自己在窗口里维持进度。

    这对产品很重要。用户真正想要的不是“帮我 OCR 第 17 页”,而是“帮我读完整份材料,结构化成可问答、可检索、可对比的数据”。页级工具会越来越多,任务级系统才有更高的商业闭环价值。

    术语与概念速查

    术语解释
    Unlimited OCR 百度提出的长程 OCR 模型,以 DeepSeek OCR 为 baseline,用 R-SWA 替换 decoder attention。
    R-SWA Reference Sliding Window Attention,每个输出 token 关注全部 reference tokens 和最近

    n

    n

    n 个输出 tokens。

    Reference tokens 在 OCR 中主要是视觉 tokens 和 prompt,是解析任务的稳定输入依据。
    Decode window 输出侧 causal sliding window,论文默认宽度为 128。
    KV cache Transformer 推理中缓存历史 key/value 的结构,标准 MHA 下随输出长度增长。
    DeepEncoder DeepSeek OCR 的高压缩视觉编码器,可将

    1024

    ×

    1024

    1024 \\times 1024

    1024×1024 PDF image 压到 256 tokens。

    One-shot parsing 多页文档一次输入并连续生成结果,而不是逐页 for-loop。
    Distinct-n 生成文本中不同 n-gram 的比例,用于观察长程生成是否重复退化。
    TPS Tokens per second,生成吞吐指标。
    Prefill length reference tokens 进入模型时的前缀长度,仍受最大上下文长度约束。

    拓展思考:值得继续扩展研究与思考的创新点

    1. 可控遗忘会成为长程 AI 系统的基础能力

    上一篇 DeepSeek-OCR 用光学压缩讨论“历史上下文可以被逐步模糊”;这篇 Unlimited OCR 用 R-SWA 在 decoder 里实现“输出历史可以被局部遗忘”。

    两篇连起来看很有意思:一个在输入侧压缩,一个在输出侧遗忘。它们共同指向一个趋势:未来长程 AI 系统不可能靠无限保留一切来解决问题,而要学会区分什么必须保留、什么可以压缩、什么可以遗忘。

    这不是降级,而是系统能力。

    2. 长文档解析会成为 Agent 的基础设施

    Agent 要真正进入企业流程,绕不开长文档:合同、财报、审计材料、投研报告、病例、论文、代码文档。当前很多 Agent demo 做不好深度任务,不是模型不会说话,而是文档进入系统后没有被稳定解析、结构化和持续跟踪。

    Unlimited OCR 这类工作把 OCR 从“工具”推向“基础设施”。它让模型不只是识别页面,而是连续处理任务材料。

    3. Attention 机制会越来越任务分化

    过去我们常常把 attention 当成一个通用模块。但这篇论文提醒我们,不同任务需要不同的信息访问模式。

    聊天可能需要长历史;搜索问答需要检索;OCR/ASR/翻译需要稳定 reference 和局部输出状态;代码生成需要文件上下文、近期编辑状态和 AST/测试反馈。

    Rocky 认为,未来高价值模型系统不会只靠一个 attention 机制打天下,而是会根据任务结构设计 memory pattern。R-SWA 的价值就在于它把 OCR 的任务结构写进了 attention。

    4. 不要被“Unlimited”这个词带偏

    最后还是要回到严谨性。Unlimited OCR 很有价值,但它不是无限上下文模型,也不是解决所有长程任务的银弹。它解决的是 reference-based parsing 里 decoder-side KV cache 和延迟增长问题。

    真正值得肯定的是,它没有用“堆更长上下文”这种粗暴方式,而是从任务机制出发,问了一个更本质的问题:在连续解析中,模型到底需要看什么?

    这才是 Rocky 对这篇论文的最终判断:

    Unlimited OCR 真正有价值的地方,不是把 OCR 分数又刷高了一点,而是把“软遗忘”落成了一个可训练、可推理、可部署的 attention pattern。

    AI 技术周期从来不会因为曾经的工程范式有效而停止前进。页级 OCR、pipeline OCR、端到端 OCR 都有各自阶段的价值。但当任务从一页纸走向一本书、从一次识别走向连续解析,旧边界就会暴露。

    工具会迭代,模型会换代,工作流会被重构。真正跨周期的,是对任务结构和系统瓶颈的重新理解。

    这就是 Unlimited OCR Works 值得认真读的地方。

    推荐阅读

    Rocky一直在运营技术交流群(WeThinkIn-技术交流群),这个群的初心主要聚焦于技术话题的讨论与学习,包括但不限于算法,开发,竞赛,科研以及工作求职等。群里有很多人工智能行业的大牛,欢迎大家入群一起学习交流~(请添加小助手微信Jarvis8866,拉你进群~)

    1. 深入浅出完整解析AI Agent(AI智能体)的核心基础知识

    2025年可以说是AI Agent全面落地应用的元年,因此Rocky在持续撰写对AI Agent的全维度解析文章:深入浅出完整解析AI Agent(AI智能体)的核心基础知识

    2. 深入浅出完整解析扩散模型DDPM、DDIM、Classifier/Classifier-Free Guidance、Rectified Flow核心基础知识

    和Rocky一起学习探究扩散模型的本质原理与和核心基础知识,同时不断跟进扩散模型的最新发展。Rocky在本文中对扩散模型的本质做了全面系统的梳理与讲解:深入浅出完整解析扩散模型DDPM、DDIM、SDE、Classifier/Classifier-Free Guidance、Rectified Flow核心基础知识

    3. 深入浅出完整解析FLUX.2、Seedream(即梦)、Z-image、GLM-Image核心基础知识

    https://zhuanlan.zhihu.com/p/1975174691049189562

    4. 深入浅出完整解析FLUX.1 Kontext和FLUX.1 Krea核心基础知识

    深入浅出完整解析FLUX.1 Kontext和FLUX.1 Krea核心基础知识

    5. 深入浅出完整解析DeepSeek系列核心基础知识

    深入浅出完整解析DeepSeek系列核心基础知识

    6、Sora等AI视频大模型的核心原理,核心基础知识,网络结构,经典应用场景,从0到1搭建使用AI视频大模型,从0到1训练自己的AI视频大模型,AI视频大模型性能测评,AI视频领域未来发展等全维度解析文章正式发布!

    码字不易,欢迎大家多多点赞:

    Sora等AI视频大模型文章地址:深入浅出完整解析Sora、Wan2.1、AnimateDiff、CogVideoX等AI视频大模型核心基础知识

    7、Stable Diffusion 3和FLUX.1核心原理,核心基础知识,网络结构,从0到1搭建使用Stable Diffusion 3和FLUX.1进行AI绘画,从0到1上手使用Stable Diffusion 3和FLUX.1训练自己的AI绘画模型,Stable Diffusion 3和FLUX.1性能优化等全维度解析文章正式发布!

    码字不易,欢迎大家多多点赞:

    Stable Diffusion 3和FLUX.1文章地址:深入浅出完整解析Stable Diffusion 3(SD 3)和FLUX.1系列核心基础知识

    8、Stable Diffusion XL核心基础知识,网络结构,从0到1搭建使用Stable Diffusion XL进行AI绘画,从0到1上手使用Stable Diffusion XL训练自己的AI绘画模型,AI绘画领域的未来发展等全维度解析文章正式发布!

    码字不易,欢迎大家多多点赞:

    Stable Diffusion XL文章地址:深入浅出完整解析Stable Diffusion XL(SDXL)核心基础知识

    9、Stable Diffusion 1.x-2.x核心原理,核心基础知识,网络结构,经典应用场景,从0到1搭建使用Stable Diffusion进行AI绘画,从0到1上手使用Stable Diffusion训练自己的AI绘画模型,Stable Diffusion性能优化等全维度解析文章正式发布!

    码字不易,欢迎大家多多点赞:

    Stable Diffusion文章地址:深入浅出完整解析Stable Diffusion(SD)核心基础知识

    10、ControlNet核心基础知识,核心网络结构,从0到1使用ControlNet进行AI绘画,从0到1训练自己的ControlNet模型,从0到1上手构建ControlNet商业变现应用等全维度解析文章正式发布!

    码字不易,欢迎大家多多点赞:

    ControlNet文章地址:深入浅出完整解析ControlNet核心基础知识

    11、LoRA系列模型核心原理,核心基础知识,从0到1使用LoRA模型进行AI绘画,从0到1上手训练自己的LoRA模型,LoRA变体模型介绍,优质LoRA推荐等全维度解析文章正式发布!

    码字不易,欢迎大家多多点赞:

    LoRA文章地址:深入浅出完整解析LoRA(Low-Rank Adaptation)模型核心基础知识

    12、深入浅出完整解析AIGC时代Transformer核心基础知识

    在AIGC时代中,Transformer为AI行业带来了深刻的变革。Transformer架构正在一步一步重构所有的AI技术方向,成为AI技术架构大一统与多模态整合的关键核心基座,大有一统“AI江湖”之势。Rocky也对Transformer模型进行持续的深入浅出梳理与解析:

    Transformer文章地址:深入浅出完整解析AIGC时代Transformer核心基础知识

    13、最全面的AIGC面经《手把手教你成为AIGC算法工程师,斩获AIGC算法offer!(2024年版)》文章正式发布!

    码字不易,欢迎大家多多点赞:

    AIGC面经文章地址:手把手教你成为AIGC算法工程师,斩获AIGC算法offer!

    14、50万字大汇总《“三年面试五年模拟”之算法工程师的求职面试“独孤九剑”秘籍》文章正式发布!

    码字不易,欢迎大家多多点赞:

    算法工程师三年面试五年模拟文章地址:https://zhuanlan.zhihu.com/p/545374303

    《三年面试五年模拟》github项目地址(希望大家能多多star):https://github.com/WeThinkIn/Interview-for-Algorithm-Engineer

    15、Stable Diffusion WebUI、ComfyUI、Fooocus三大主流AI绘画框架核心知识,从0到1搭建AI绘画框架,从0到1使用AI绘画框架的保姆级教程,深入浅出介绍AI绘画框架的各模块功能,深入浅出介绍AI绘画框架的高阶用法等全维度解析文章正式发布!

    码字不易,欢迎大家多多点赞:

    AI绘画框架文章地址:深入浅出完整解析主流AI绘画框架(ComfyUI、Stable Diffusion WebUI、Fooocus)核心基础知识

    16、GAN网络核心基础知识,网络架构,GAN经典变体模型,经典应用场景,GAN在AIGC时代的商业应用等全维度解析文章正式发布!

    码字不易,欢迎大家多多点赞:

    GAN网络文章地址:https://zhuanlan.zhihu.com/p/663157306

    17. AI算法工程师的《三年面试五年模拟》求职秘籍

    AIGC时代的算法工程师的求职面试秘籍(持续更新中)

    18. AIGC产业的深度思考与分析

    2023年3月21日,微软创始人比尔·盖茨在其博客文章《The Age of AI has begun》中表示,自从1980年首次看到图形用户界面(graphical user interface)以来,以OpenAI为代表的科技公司发布的AIGC模型是他所见过的最具革命性的技术进步。

    Rocky也认为,AIGC及其生态,会成为AI行业重大变革的主导力量。AIGC会带来一个全新的红利期,未来随着AIGC的全面落地和深度商用,会深刻改变我们的工作、生活、学习以及交流方式,各行各业都将被重新定义,过程会非常有趣。

    那么,在此基础上,我们该如何更好的审视AIGC的未来?我们该如何更好地拥抱AIGC引领的革新?Rocky准备从技术、产品、商业模式、长期主义等维度持续分享一些个人的核心思考与观点,希望能帮助各位读者对AIGC有一个全面的了解:

    深入浅出全面解析AIGC时代核心价值与发展趋势(2025年版)

    赞(0)
    未经允许不得转载:171主机测评 » Unlimited OCR Works:一篇读懂 R-SWA 如何把长文档 OCR 从 for-loop 推向 one-shot
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址