百度Unlimited OCR开源:5天Star破万,93.92%刷新SOTA
作者:Python编程
日期:2026-07-02 09:47:53 阅读:229 次
面对一本几十页的PDF,传统OCR只能一页页读、一页页拼,像跑一个for循环,读一页忘一页。现在,百度用3B参数、激活仅570M的小模型,让OCR一口气读完整本几十页的书,不降速、不失忆。这就是百度最新开源的Unlimited OCR。
技术突破:滑动窗口注意力机制
过去OCR处理长文档时,每生成一个Token,KV Cache就膨胀一圈,显存越占越多、速度越来越慢。这是长文档OCR面临的

面对一本几十页的PDF,传统OCR只能一页页读、一页页拼,像跑一个for循环,读一页忘一页。现在,百度用3B参数、激活仅570M的小模型,让OCR一口气读完整本几十页的书,不降速、不失忆。这就是百度最新开源的Unlimited OCR。
技术突破:滑动窗口注意力机制
过去OCR处理长文档时,每生成一个Token,KV Cache就膨胀一圈,显存越占越多、速度越来越慢。这是长文档OCR面临的核心瓶颈。
Unlimited OCR的核心创新是参考滑动窗口注意力(Reference Sliding Window Attention, R-SWA)机制。它模仿人类抄书的方式:原书始终摊开在桌面上,手边只保留最近写下的几行字。
# R-SWA机制伪代码示意
class UnlimitedOCR:
def __init__(self):
self.full_image = None # 完整图像始终可见
self.output_buffer = [] # 最近128个Token输出
self.kv_cache = FixedSizeQueue(max_size=128) # 固定长度队列
def generate(self, image):
self.full_image = image # 始终能看见完整图像
for _ in range(max_tokens):
# 输出端只回看最近128个Token
recent_context = self.kv_cache.get_recent(128)
new_token = self.model.forward(
image=self.full_image,
recent_tokens=recent_context
)
# KV Cache固定长度,新Token挤掉最旧的
self.kv_cache.push(new_token)
self.output_buffer.append(new_token)
return self.output_buffer
# 核心优势:无论输出1万还是10万Token,显存占用始终不变
性能数据:93.92%刷新SOTA
在OmniDocBench v1.6基准测试中,Unlimited OCR以93.92%的综合成绩刷新端到端OCR最新纪录。对比DeepSeek OCR的87.01%,提升超过6个百分点。
| 模型 | 综合成绩 | 推理速度 |
|---|---|---|
| Unlimited OCR | 93.92% | 基准 |
| DeepSeek OCR | 87.01% | +12.7% |
真实文档场景下推理速度较DeepSeek OCR提升约12.7%,输出长度达6000 tokens时速度优势扩大至35%。更令人惊叹的是模型规模:总参数3B,推理时仅激活570M——激活参数不到Qwen3-VL(235B)零头的选手,反手把一众大模型全甩了。
5天Star破万,四榜登顶
发布次日即登顶GitHub Daily Trending榜和Python榜,5天Star破万。在HuggingFace全球模型总趋势榜和多模态模型趋势榜也均排名第一,实现GitHub、HuggingFace四榜第一。
这一成绩印证了开源社区对高效长文档OCR工具的迫切需求。无论是知识库构建、RAG应用还是Agent工作流,都需要精准的文档解析能力。
应用场景
- PDF转Markdown:复杂排版文档精准转换,保留表格、公式、层级结构
- 知识库构建:批量处理文档,提取结构化信息
- RAG增强检索:精准理解长文档内容,提升检索质量
- Agent工作流:端到端处理复杂文档任务
模型权重和代码已同步开源,适合Python开发者集成到现有文档处理流程中。
评论列表COMMENT
- 暂时还没有人发表评论。
发表评论
文明上网,从我做起!