⚠️ 免责声明本工具依赖境外公开数据源部分平台在中国大陆需合规网络环境访问。本文仅供技术学习参考不构成任何产品或服务推荐。每日开源 · 早间篇 [#076](javascript:百度 Unlimited-OCR 重磅开源3B参数一次看完40页文档OCR 从此不再「逐页失忆」2026年6月27日 · 早间篇想象一下你面前有一份50 页的 PDF 合同需要把里面的条款、表格、公式全部提取出来。用传统 OCR逐页识别 → 拼接 → 格式全乱 → 人工修复一套操作下来比手打一遍还累。这就是长文档 OCR 的逐页失忆诅咒——每处理一页就重置记忆跨页的表格断了、上下文丢了、阅读顺序乱了。6 月 22 日百度在 GitHub 上丢出一个核弹级项目——Unlimited-OCR。3B 参数、实际激活仅 500M 的小模型却能一次性看完 40 页文档并输出结构化 Markdown。发布 5 天已斩获 10,000 StarsOmniDocBench 端到端模型排名第一被媒体称为「长文档 OCR 的长时域革命」。 项目速览**项目名称**Unlimited-OCR**出品方**百度**GitHub Stars**10,291 今日新增****2,068 Stars**模型参数**3B 总参数MoE激活仅 ~500M**核心机制**R-SWA 参考滑动窗口注意力**基准成绩**OmniDocBench v1.6 综合 93.92%端到端 SOTA**许可证**MIT 完全开源**推理速度**5580 TPS长文本比 DeepSeek OCR 快 35% 它能解决什么问题传统 OCR 的架构缺陷在你处理长文档时会被无限放大**痛点 1逐页失忆。**每页独立处理 → KV 缓存重置 → 跨页表格断裂、章节承接受损。一份 50 页的财务报表跨页的损益表和现金流量表直接断开。**痛点 2多模型流水线脆弱。**传统方案需串联版面分析 → 文字检测 → 文字识别 → 阅读顺序 → 结构化输出每个环节引入误差最终结果支离破碎。**痛点 3KV 缓存爆炸。**端到端 OCR 解码时KV 缓存随输出长度线性增长。处理 10 页文档时显存占用是单页的 10 倍处理 40 页直接 OOM。**痛点 4格式还原差。**OCR 结果变纯文本垃圾——标题层级丢失、表格变乱码、公式面目全非、阅读顺序颠倒。Unlimited-OCR 的思路非常朴素效果却极其炸裂让模型一次性看完整个文档而不是逐页重启。 核心亮点R-SWA让 OCR 学会「人类抄书」Unlimited-OCR 最核心的创新是一个叫R-SWAReference Sliding Window Attention参考滑动窗口注意力的机制。理解它为什么牛先看一个类比️ 人类是怎么抄书的当你抄写一本几百页的书时你不会持续回看所有已写内容。你的注意力只集中在三个地方正在看的原文 刚刚写下的几个字 即将落笔的下一个字。已写过的内容自然淡出记忆——这是人类极致高效的软遗忘机制。 传统注意力机制是怎么做的标准 MHAMulti-Head Attention每生成一个新 token都要访问之前所有 token的 KV 缓存。每写一个字都要回头看一眼写过的所有字——显存占用随输出线性增长推理越来越慢直到 OOM。R-SWA分离参考与生成R-SWA 的设计哲学很优雅把注意力分成两段处理。 参考段Reference包含全部图像 Token 和提示词。在整个解码过程中始终完整可见但不参与状态转移。图像只在编码阶段处理一次之后冻结不动。** 解码窗口Window**只保留最近128 个已生成 Token 的上下文。每生成一个新 Token最早进入窗口的那个被逐出队列。解码侧 KV 缓存大小固定在常数级别。✅ 关键效果标准 MHA 的 KV 缓存随输出长度T线性增长为O(T)R-SWA 将其压缩为O(mn)m 参考 Token 数n 窗口大小 128与输出长度无关。这意味着**无论你处理 2 页还是 40 页文档推理时的显存占用和延迟基本保持不变。**这是一个从线性增长到常数上限的质变。DeepEncoder16× 极致视觉压缩R-SWA 解决了解码端的缓存爆炸那编码端的输入膨胀怎么解决Unlimited-OCR 沿用了 DeepSeek OCR 的DeepEncoder编码器SAM-ViT → CLIP-ViT → Bridge 压缩 →****1024×1024 页面 仅 256 个 Token**压缩率**16×一张高清 PDF 页面被压缩到仅 256 个视觉 Token。即便同时输入 40 页prefill 阶段的视觉 Token 总量也在可控范围内。DeepEncoder 压前端 R-SWA 稳后端——两端协同才实现了「一次性解析数十页」的能力。 性能炸裂小模型干翻大块头Unlimited-OCR 最打脸的地方是3B 总参数、激活仅 500M却把一堆大模型按在地上摩擦。 OmniDocBench v1.6 端到端模型排行**HunyuanOCR1B**89.95%**DeepSeek-OCR 23B**90.25%**FireRed-OCR2B**93.26%**Logics-Parsing-v24B**93.33%**Qianfan-OCR4B**93.90%** Unlimited-OCR3B**93.92%相比 DeepSeek OCR 基线88.17%→93.92%综合得分提升 6.22%。细分指标同样亮眼**文本编辑距离**0.038DeepSeek OCR 为 0.073降低近一半**公式识别 CDM**95.79%表格还原 TEDS****93.32%提升近 6%**9 类文档 7 项**领先DeepSeek OCR 2推理速度长文本越拉越开⏱️ 不同输出长度下推理速度对比TPS**256 tokens**7230 vs 7230持平1024 tokens7841 vs 74235.6%2048 tokens7881 vs 716710.0%4096 tokens7905 vs 643022.9%6144 tokens7848 vs 582334.8%关键洞察**随着输出变长标准注意力的 TPS 持续下降R-SWA 保持平稳。**在真实 OmniDocBench 评测中Unlimited-OCR 吞吐量 5580 TPS比 DeepSeek OCR4951 TPS快 12.7%。输出 6000 token 时速度领先扩大至35%。长文档40 页仍稳如老狗 多页文档一次性解析表现**2 页**编辑距离 0.036Distinct-3599.87%**5 页**编辑距离 0.045Distinct-3599.98%**10 页**编辑距离 0.053Distinct-3599.83%**20 页**编辑距离 0.057Distinct-3599.89%**40 页**编辑距离 0.107Distinct-3596.90%即使在 40 页以上的极限场景编辑距离仍控制在 0.11 以内重复生成控制指标 Distinct-35 仍高达 96.90%。团队指出此时的主要误差来源是 PDF 小字体在 1024×1024 分辨率下难以辨认而非 R-SWA 机制失向。 实战场景这些场景请直接上 Unlimited-OCR 合同/法律文档解析几十页的合同 PDF需要保留每一条款的层级结构和跨页连续编号。Unlimited-OCR 一次性解析输出完整 Markdown条款结构不丢失。 学术论文数字化含公式、图表、参考文献的复杂论文。公式识别 CDM 95.79%表格还原 TEDS 93.32%一站式输出高质量结构化内容。 财务报表批量处理年报、季报中大量跨页表格资产负债表、现金流量表。传统逐页处理必然导致表格断裂Unlimited-OCR 一次看完保证连贯性。️ 企业知识库建设存量纸质档案批量数字化入库需要高质量 Markdown 输出供后续检索和分析。单模型取代传统 OCR pipeline 后处理链路大幅降低工程复杂度。 古籍/扫描书籍电子化中英文混排、竖排文本、特殊排版——模型端到端理解阅读顺序无需预设版面模板。 上手指南三步跑起来模型完全开源MIT 协议最低 16GB 显存即可在消费级 GPU 上运行。官方提供Transformers 原生推理和SGLang 高并发部署两种方案。方案一Transformers 快速体验单卡推理1. 安装依赖pip install torch2.10.0 torchvision0.25.0 pip install transformers4.57.1 pip install Pillow12.1.1 matplotlib3.10.8 einops0.8.2 pip install addict2.4.0 easydict1.13 pymupdf1.27.2.2 psutil7.2.22. 加载模型import torch from transformers import AutoModel, AutoTokenizer model_name baidu/Unlimited-OCR tokenizer AutoTokenizer.from_pretrained(model_name, trust_remote_codeTrue) model AutoModel.from_pretrained( model_name, trust_remote_codeTrue, use_safetensorsTrue, torch_dtypetorch.bfloat16, ) model model.eval().cuda()3a. 单页高精度Gundam 模式# gundam 模式base_size1024, image_size640, crop_modeTrue model.infer( tokenizer, promptimagedocument parsing., image_fileyour_image.jpg, output_path./output, base_size1024, image_size640, crop_modeTrue, max_length32768, no_repeat_ngram_size35, ngram_window128, save_resultsTrue, )3b. 多页/PDF 批量Base 模式# 多页图片解析 model.infer_multi( tokenizer, promptimageMulti page parsing., image_files[page1.png, page2.png, page3.png], output_path./output, image_size1024, # base 模式固定 1024 max_length32768, no_repeat_ngram_size35, ngram_window1024, # 多页场景窗口设为 1024 save_resultsTrue, ) # PDF 文件解析 import fitz # PyMuPDF import tempfile, os def pdf_to_images(pdf_path, dpi300): doc fitz.open(pdf_path) tmp_dir tempfile.mkdtemp(prefixpdf_ocr_) mat fitz.Matrix(dpi / 72, dpi / 72) paths [] for i, page in enumerate(doc): out os.path.join(tmp_dir, fpage_{i1:04d}.png) page.get_pixmap(matrixmat).save(out) paths.append(out) doc.close() return paths model.infer_multi( tokenizer, promptimageMulti page parsing., image_filespdf_to_images(your_doc.pdf, dpi300), output_path./output, image_size1024, max_length32768, no_repeat_ngram_size35, ngram_window1024, save_resultsTrue, )方案二SGLang 生产部署OpenAI 兼容 API适合生产环境自带 OpenAI 兼容的 /v1/chat/completions API支持流式响应和并发推理。1. 搭建环境并启动服务# 环境搭建 uv venv --python 3.12 source .venv/bin/activate uv pip install wheel/sglang-0.0.0.dev11416g92e8bb79e-py3-none-any.whl uv pip install kernels0.11.7 uv pip install pymupdf1.27.2.2 # 启动 SGLang 推理服务 python -m sglang.launch_server \ --model baidu/Unlimited-OCR \ --served-model-name Unlimited-OCR \ --attention-backend fa3 \ --page-size 1 \ --mem-fraction-static 0.8 \ --context-length 32768 \ --enable-custom-logit-processor \ --disable-overlap-schedule \ --skip-server-warmup \ --host 0.0.0.0 \ --port 100002. 批量推理自动启动服务 并发处理# 批量处理图片目录 python infer.py \ --image_dir ./examples/images \ --output_dir ./outputs \ --concurrency 8 \ --image_mode gundam # 批量处理 PDF python infer.py \ --pdf ./examples/document.pdf \ --output_dir ./outputs \ --concurrency 8 \ --image_mode gundam关键启动参数说明**–attention-backend fa3**使用 FlashAttention 3 后端**–mem-fraction-static 0.8**GPU 80% 显存用于静态分配**–context-length 32768**最大上下文长度 32K**–enable-custom-logit-processor**启用 no-repeat-ngram 防重复️ 架构全景一张图看懂**编码器**DeepEncoder SAM-ViT CLIP-ViT 级联Bridge 层 16× Token 压缩**解码器**3B 参数 MoE 架构推理时激活 ~500M**注意力**全部注意力层替换为 R-SWA参考滑动窗口**上下文**32K 标准长度可支持数十页一次性输入**训练**基于 DeepSeek OCR Checkpoint4000 步继续训练Batch Size 256**双模式**Gundam单页高精度动态分辨率 Base多页长文档1024 固定团队透露短期计划将上下文扩展至128K支持更多页面一次性 prefill长期目标构建 prefill 池让模型自动按需读取 KV 片段模拟翻页记忆检索——这才是真正的「无限」解析。 有趣的幕后项目作者列表中出现了一个署名 “YY”行业观察者推测其真实身份可能是前 DeepSeek OCR 团队负责人。Unlimited-OCR 的 README 也明确写道「旨在将 DeepSeek OCR 推进到下一个阶段」——这不是颠覆而是在巨人肩膀上的跨越。✍️ 今日总结Unlimited-OCR 给长文档 OCR 带来的最大突破不是精度又涨了几个点——而是从架构层面把 KV 缓存从 O(T) 压缩到 O(1)。这意味着不再需要逐页处理 → 外部调度器 → 后拼接的复杂流水线不再因为输出变长而推理越来越慢、显存越来越炸跨页表格、章节承接、阅读顺序——这些困扰多年的问题自然解决了R-SWA 不止用于 OCR论文明确指出也可用于 ASR、翻译等长输出任务用一句话总结OCR 不再是「预处理步骤」而是「理解步骤」。从逐字识别到端到端文档理解一个模型一镜到底。 聊聊看你在工作中遇到过哪些长文档 OCR 的坑跨页表格断裂、格式丢失、中英文混排识别混乱……哪个最让你头疼欢迎在评论区分享你的实战经验 资源链接GitHubgithub.com/baidu/Unlimited-OCRHuggingFacehuggingface.co/baidu/Unlimited-OCRModelScopemodelscope.cn/models/PaddlePaddle/Unlimited-OCR论文arxiv.org/abs/2606.23050在线体验huggingface.co/spaces/baidu/Unlimited-OCR本栏目每日更新关注前沿开源项目。本文内容基于公开资料整理仅供参考学习。项目信息以 GitHub 官方为准。[#每日开源](javascript:[#OCR](javascript:[#百度](javascript:[#开源](javascript:[#文档解析](javascript:[#AI](javascript: