← 返回信息流
技术博客Hugging Face Blog·17 天前

PaddleOCR 3.5:使用 Transformers 后端运行 OCR 和文档解析任务

原标题:PaddleOCR 3.5: Running OCR and Document Parsing Tasks with a Transformers Backend

速览

PaddleOCR 3.5 版本正式推出,核心亮点是引入了 Transformers 后端。这一更新旨在提升 OCR 及文档解析任务的性能与灵活性。通过集成先进的 Transformer 架构,该版本为开发者提供了更强大的文本识别与理解工具。

AI 深度解读

PaddleOCR 3.5 深度解读:基于 Transformers 后端的 OCR 与文档解析新范式

背景

在构建 RAG(检索增强生成)、Document AI(文档智能)以及文档 Agent 应用时,真正的挑战往往始于 LLM 之前。开发者首先需要将 PDF、扫描文档、截图、表格、图表、公式以及复杂的页面布局转化为可靠的结构化数据。如果这一“数据摄入”(ingestion)环节薄弱,下游的 LLM 工作流可能会遗漏关键信息、检索到错误的上下文,或产生不可靠的答案。

PaddleOCR 长期以来通过提供 PP-OCRv5 等 OCR 模型系列,以及 PaddleOCR-VL 1.5 等文档解析模型系列,致力于解决这一文档摄入难题。然而,随着 Hugging Face 生态在模型加载、实验、部署及模型制品管理方面的普及,开发者对于将 OCR 能力无缝融入以 PyTorch/Transformers 为核心的技术栈的需求日益增长。

PaddleOCR 3.5 的发布正是为了回应这一需求。它在保持原有 OCR 和文档解析能力不变的基础上,引入了更灵活的推理引擎接口,正式将 Transformers 列为支持的后端之一,从而降低了集成摩擦,为基于 Hugging Face 中心化的环境提供了更自然的接入路径。

核心内容

PaddleOCR 3.5 的核心变革在于引入了更灵活的推理引擎接口。开发者现在可以通过 engine 参数选择后端,并通过 engine_config 传递特定后端的配置选项。

1. 架构与工作机制

这一版本主要涉及推理后端层的变化。PaddleOCR 继续负责管理 OCR 或文档解析任务背后的 Pipeline(管道),开发者无需手动调用各个内部组件。与此同时,Transformers 成为了支持运行受支持的 PaddleOCR 模型的另一个推理后端选项。

这种设计使得 PaddleOCR 的模型能够自然地融入以 Hugging Face 为中心的环境,而更大的 Document AI 工作流依然由开发者和应用构建者掌控。

2. 技术实现与配置

开发者可以通过配置 engine_config 来调整后端相关的选项,包括数据类型(dtype)、设备放置(device placement)以及注意力机制实现(attention implementation)。

命令行使用示例:

paddleocr ocr \
-i https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_ocr_002.png \
--device gpu:0 \
--engine transformers

Python API 使用示例:

from paddleocr import PaddleOCR

pipeline = PaddleOCR(
    device="gpu:0",
    engine="transformers",
    use_doc_orientation_classify=False,
    use_doc_unwarping=False,
    use_textline_orientation=False,
    engine_config={
        "dtype": "float32",
    },
)
results = pipeline.predict(
    "https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_ocr_002.png"
)
for result in results:
    print(result)

3. 性能调优建议

Hugging Face Space 上的演示使用了 float32 以确保广泛的兼容性。在实际生产环境中,开发者可以根据硬件调整后端特定选项,例如:

engine_config = {
    "dtype": "bfloat16",
    "device_type": "gpu",
    "device_id": 0,
    "attn_implementation": "sdpa",
}

最佳配置取决于具体的模型、硬件和部署环境。

4. 安装指南

要使用此功能,需安装 PaddleOCR 3.5、PaddleX、Transformers 以及与硬件兼容的 PyTorch 版本。

CUDA 12.6 环境示例:

python -m pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu126
python -m pip install "paddleocr==3.5.0" "paddlex==3.5.2" "transformers>=5.4.0"

对于 CPU、ROCm 或其他环境,请安装匹配目标硬件的 PyTorch 版本。

关键要点

  • 后端灵活性:PaddleOCR 3.5 引入了 engine 参数,允许开发者在默认后端(paddle_static)和新的 transformers 后端之间进行选择。
  • 无缝集成 Hugging Face 生态:通过 Transformers 后端,受支持的 PaddleOCR 模型可以利用 Hub 进行模型发现与分发,并与现有的 PyTorch/Transformers 服务更轻松地集成。
  • Pipeline 自动化:PaddleOCR 继续管理任务背后的 Pipeline,开发者无需手动编排内部组件,降低了使用门槛。
  • 配置精细化:通过 engine_config,开发者可以精细控制数据类型(如 bfloat16)、设备 ID 和注意力机制实现(如 sdpa),以优化性能。
  • 适用场景区分
    • 使用 Transformers 后端:当团队已熟悉 Transformers,或构建 RAG、Document AI、搜索、分析或 Agent 应用,且基础设施已基于 PyTorch/Transformers 时,此后端是理想选择。
    • 使用默认 paddle_static 后端:当最大化 OCR 或文档解析吞吐量是首要目标时,PaddleOCR 默认的 paddle_static 后端通常仍是推荐选择。
  • 非替代关系:此发布并非用 Transformers 后端取代默认后端,而是提供更多灵活性,让开发者根据栈的需求选择最合适的推理后端。

意义与影响

PaddleOCR 3.5 对 Document AI 和 RAG 开发者社区具有显著意义:

  1. 降低集成摩擦:对于已经深度依赖 Hugging Face 生态(如使用 transformers 库加载模型、使用 accelerate 进行分布式训练等)的团队,无需再为 PaddleOCR 模型编写复杂的桥接代码或维护独立的推理服务。
  2. 标准化工作流:从文档摄入到下游 LLM 工作流的路径变得更加自然。开发者可以使用统一的接口管理模型加载和推理,简化了从实验到部署的流程。
  3. 生态协同效应:通过支持 Transformers 后端,PaddleOCR 模型可以更轻松地被纳入 Hugging Face Hub 的模型索引中,促进了模型的共享、复现和协作。
  4. 保留性能优势:PaddleOCR 并未放弃其在高性能推理方面的优势。默认后端 paddle_static 依然保留,确保了在追求极致吞吐量的场景下,开发者仍有最佳性能选项。

总之,PaddleOCR 3.5 通过提供后端选择的灵活性,将 OCR 和文档解析能力更紧密地融入了现代 AI 开发工作流,使开发者能够更自由地构建复杂的 Document AI 应用,同时保持对底层性能的控制权。


资源链接:

  • PaddleOCR 文档: https://www.paddleocr.ai/
  • PaddleOCR GitHub: https://github.com/PaddlePaddle/PaddleOCR
  • Hugging Face PaddlePaddle 组织: https://huggingface.co/PaddlePaddle
  • PaddleOCR 3.5 Transformers 演示: https://huggingface.co/spaces/PaddlePaddle/paddleocr-3.5-transformers-demo
查看原文 →huggingface.co