百度开源 Unlimited-OCR:几十页文档一次过,不卡不慢

百度开源 Unlimited-OCR:几十页文档一次过,不卡不慢

百度刚开源了一个 OCR 项目叫 Unlimited-OCR,目标很明确——把 DeepSeek OCR 再往前推一步。

核心问题

现有端到端 OCR 模型(比如 DeepSeek OCR)用 LLM 做解码器,效果确实好,但有个硬伤:输出越长,KV cache 越大,速度越来越慢。人抄东西不会越抄越慢,但模型会。

怎么解决的

提出了一种叫 R-SWA(Reference Sliding Window Attention) 的注意力机制,替换了解码器里所有的 attention 层。效果是:

  • 整个解码过程中 KV cache 恒定不变,不随输出长度增长
  • 结合 DeepSeek OCR 编码器的高压缩率,在标准 32K 最大长度下,一次前向传播就能处理几十页文档
  • 而且 R-SWA 不只是 OCR 专用——ASR、翻译等序列解析任务都能用

跑一下试试

模型权重在 HuggingFace 和 ModelScope 都有,支持 Transformers 和 SGLang 两种推理方式。HuggingFace 上还有个 在线 Demo 可以直接试。

pip install torch transformers Pillow pymupdf
from transformers import AutoModel, AutoTokenizer
import torch

tokenizer = AutoTokenizer.from_pretrained("baidu/Unlimited-OCR", trust_remote_code=True)
model = AutoModel.from_pretrained("baidu/Unlimited-OCR", trust_remote_code=True, torch_dtype=torch.bfloat16)
model = model.eval().cuda()

model.infer(tokenizer, prompt="<image>document parsing.", image_file="test.jpg", output_path="./out", base_size=1024, image_size=640, crop_mode=True, max_length=32768)

链接