← 返回信息流
AI 资讯Hacker News·2 小时前

Unlimited OCR:实现单次输入长序列解析

原标题:Unlimited OCR: One-Shot Long-Horizon Parsing

速览

Unlimited OCR是一种新型光学字符识别技术,旨在解决长序列文档解析难题。该技术支持单次输入即可完成对超长文本的解析,显著提升了处理效率。这一突破对于文档数字化和信息提取具有重要意义。

AI 深度解读

Unlimited OCR:一次提示,长视界解析

背景

在文档智能处理领域,光学字符识别(OCR)一直是核心痛点。传统的 OCR 模型往往受限于输入图像的尺寸和上下文窗口,难以同时兼顾高分辨率细节捕捉与长文档的全局语义理解。此前,百度团队曾推出 Deepseek-OCR 模型,在文档解析任务中展现了强劲性能。然而,面对复杂的多页 PDF、高分辨率扫描件或包含大量文本的长文档,现有方案在“长视界”(Long-Horizon)解析能力上仍存在瓶颈。

2026年6月23日,百度团队在 arXiv 上发布了论文《Unlimited OCR Works》,并同步开源了模型权重至 Hugging Face 和 ModelScope。该项目旨在将 Deepseek-OCR 的能力推向新的高度,提出了一种名为 Unlimited-OCR 的架构,旨在实现“单次提示(One-Shot)”下的无限长视界文档解析。该工作得到了 ModelScope 社区的支持,并参考了 Deepseek-OCR、Deepseek-OCR-2 以及 PaddleOCR 的宝贵经验。

核心内容

Unlimited-OCR 的核心突破在于其能够处理极长上下文和高分辨率图像的混合输入,通过灵活的配置策略,实现从单张图片到多页 PDF 的无缝解析。

1. 双模式推理架构

Unlimited-OCR 针对单张图片推理提供了两种配置模式,以适应不同的精度与速度需求:

  • Gundam 模式:适用于需要高分辨率细节的场景。基础尺寸(base_size)为 1024,图像尺寸(image_size)为 640,启用裁剪模式(crop_mode=True)。这种配置通过局部裁剪和重组,保留更多文本细节。
  • Base 模式:适用于全局结构理解。基础尺寸为 1024,图像尺寸为 1024,不启用裁剪。此模式更适合作为多页解析的基础配置。

2. 长上下文与去重机制

为了支持长文档解析,模型配置了极大的上下文长度(max_length=32768)。同时,引入了自定义的 Logit Processor 机制,具体参数包括:

  • no_repeat_ngram_size:设置为 35,防止模型生成重复的 n-gram 序列。
  • ngram_window:在单图 Gundam 模式下设为 128,在多页/ Base 模式下设为 1024,通过滑动窗口限制重复生成的范围,提升长文本生成的连贯性和准确性。

3. 多页与 PDF 处理流程

Unlimited-OCR 原生支持多页图像解析(Multi-page parsing)和 PDF 文件解析。

  • 多页解析:通过 model.infer_multi 接口,传入多个图像文件列表,模型能够跨页理解文档结构。
  • PDF 支持:利用 PyMuPDF (fitz) 将 PDF 页面转换为高分辨率(默认 300 DPI)图像,再送入多页解析模块。这一流程确保了 PDF 中的矢量文本和复杂排版能被准确提取。

4. 部署与推理方案

项目提供了两种主要的部署方式:

A. 基于 Hugging Face Transformers 的直接推理 适用于快速验证和中小规模任务。

  • 环境要求:Python 3.12.3 + CUDA 12.9,依赖 torch 2.10.0, transformers 4.57.1 等。
  • 模型加载:使用 AutoModelAutoTokenizer 加载 baidu/Unlimited-OCR,启用 trust_remote_codesafetensors,数据类型为 bfloat16
  • 代码示例
    # 单图解析 (Gundam 模式)
    model.infer(
        tokenizer,
        prompt='<image>document parsing.',
        image_file='your_image.jpg',
        output_path='your/output/dir',
        base_size=1024, image_size=640, crop_mode=True,
        max_length=32768,
        no_repeat_ngram_size=35, ngram_window=128,
        save_results=True,
    )
    

B. 基于 SGLang 的高性能服务部署 适用于生产环境,支持高并发和流式输出。

  • 环境搭建:使用 uv 管理虚拟环境,安装特定的 SGLang wheel、kernels (0.11.7) 和 PyMuPDF。
  • 服务器启动:通过 sglang.launch_server 启动服务,关键参数包括:
    • --attention-backend fa3:使用 FA3 注意力后端优化性能。
    • --context-length 32768:设置上下文长度。
    • --enable-custom-logit-processor:启用自定义 Logit 处理器以支持去重逻辑。
    • --mem-fraction-static 0.8:静态内存分配比例。
  • API 交互:提供 OpenAI 兼容的 API 接口。客户端通过 requests 发送包含 Base64 编码图像的 JSON 请求,支持流式响应(stream=True)。
  • 自定义 Logit 处理器:集成 DeepseekOCRNoRepeatNGramLogitProcessor,在服务器端动态处理生成逻辑,确保长文本生成的稳定性。

C. 批量推理工具 提供 infer.py 脚本,支持对图像目录或 PDF 文件进行批量处理。

  • 并发控制:通过 --concurrency 参数控制并发请求数(如 8)。
  • 自动管理:脚本自动启动 SGLang 服务器,处理图像转换、请求发送和结果保存。

关键要点

  • 模型名称与来源:Unlimited-OCR,由百度团队开发,论文发表于 arXiv (2026/06/23),权重开源于 Hugging Face (baidu/Unlimited-OCR) 和 ModelScope。
  • 核心能力:支持“一次提示”下的长视界(Long-Horizon)文档解析,最大上下文长度达 32,768 tokens。
  • 双模式策略
    • Gundam 模式:单图高分辨率解析,image_size=640, crop_mode=True, ngram_window=128
    • Base 模式:多页/全局解析,image_size=1024, crop_mode=False, ngram_window=1024
  • 技术栈依赖
    • 推理后端:支持 Hugging Face Transformers 原生推理和 SGLang 高性能服务。
    • 关键库:PyTorch 2.10.0, Transformers 4.57.1, SGLang, PyMuPDF (fitz)。
    • CUDA 版本:测试环境为 CUDA 12.9。
  • PDF 处理流程:使用 PyMuPDF 将 PDF 转换为 300 DPI 的 PNG 图像,再送入多页解析模块。
  • 去重机制:通过自定义 Logit Processor 实现 no_repeat_ngram_size=35,有效抑制长文本生成中的重复现象。
  • API 兼容性:SGLang 部署提供 OpenAI 兼容的 /v1/chat/completions 接口,支持流式输出和自定义参数(如 images_config, custom_logit_processor)。
  • 致谢与传承:项目明确致谢 Deepseek-OCR、Deepseek-OCR-2 和 PaddleOCR,表明其技术路线建立在先前优秀工作基础之上。

意义与影响

Unlimited-OCR 的发布标志着文档智能处理向“无限视界”迈出了关键一步。其意义主要体现在以下三个方面:

  1. 突破长文档解析瓶颈:传统 OCR 模型在处理多页
查看原文 →github.com