PaddleOCR 3.5:使用 Transformers 后端运行 OCR 和文档解析任务
PaddleOCR 3.5 将 OCR 和文档解析任务更紧密地带入 Hugging Face 生态系统。在此版本中,受支持的 PaddleOCR 模型可以通过设置 engine="transformers",使用 Hugging Face Transformers 作为推理后端来运行。
PaddleOCR 持续提供 PP-OCRv5 等 OCR 模型系列以及 PaddleOCR-VL 1.5 等文档解析模型系列,而 Transformers 成为运行这些模型所支持的推理后端之一。
在 Hugging Face Spaces 上体验在线演示: https://huggingface.co/spaces/PaddlePaddle/paddleocr-3.5-transformers-demo
有什么变化?
PaddleOCR 3.5 引入了一个更灵活的推理引擎接口。开发者可以通过 engine 参数选择后端,并通过 engine_config 传递后端特定的选项。在实践中,这意味着:
- 这些任务背后的 pipeline 由 PaddleOCR 管理,因此开发者无需手动调用每个内部组件。
- Transformers 成为运行受支持 PaddleOCR 模型的可选推理后端之一。
- 开发者可以通过
engine_config配置与后端相关的选项,例如dtype、设备放置以及注意力机制实现。
理解这个技术栈的一个简单方式:
| 层级 | 含义 | 示例 | |------|------|------| | 应用层 | 使用 OCR 和文档解析输出的应用程序 | RAG、智能体、Document AI... | | 模型层 | OCR 和文档解析能力 | PP-OCRv5、PaddleOCR-VL 1.5... | | 推理后端层 | 用于运行受支持模型的运行时 | Paddle 静态图、Paddle 动态图、Transformers |
本次发布主要涉及推理后端层:PaddleOCR 继续提供 OCR 和文档解析能力,而 Transformers 为受支持的 PaddleOCR 模型提供了另一个后端选项,使其能够自然地融入以 Hugging Face 为中心的环境。更广泛的 Document AI 工作流仍由开发者和应用构建者掌控。
为什么这很重要
对于 RAG、Document AI 和文档智能体应用来说,困难的部分往往在 LLM 之前就开始了。开发者首先需要将 PDF、扫描文档、截图、表格、图表、公式以及复杂的页面布局转化为可靠的结构化数据。如果这个数据摄取环节薄弱,下游的 LLM 工作流可能会遗漏关键信息、检索到错误的上下文,或产生不可靠的答案。
PaddleOCR 通过提供 PP-OCRv5 等 OCR 模型系列以及 PaddleOCR-VL-1.5 等文档解析模型系列,帮助应对这一文档摄取挑战。借助 PaddleOCR 3.5,这些能力现在可以更轻松地与以 Transformers 为中心的技术栈对接。受支持的 PaddleOCR 模型可以使用 Transformers 后端运行,而 PaddleOCR 继续在后台管理 OCR 或文档解析 pipeline。
对于开发者来说,这意味着更少的集成摩擦,以及从文档到下游 RAG、智能体、搜索、分析或自动化工作流的更自然路径。
快速开始
安装 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 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)
Hugging Face Space 使用 float32 以确保广泛的兼容性。对于你自己的硬件,你可以通过 engine_config 调整后端特定选项:
engine_config = {
"dtype": "bfloat16",
"device_type": "gpu",
"device_id": 0,
"attn_implementation": "sdpa",
}
最佳配置取决于你的模型、硬件和部署环境。
何时使用 Transformers 后端?
当你希望 PaddleOCR 的 OCR 和文档解析能力更自然地融入以 Hugging Face 为中心的技术栈时,请使用 Transformers 后端。如果你正在构建 RAG、Document AI、搜索、分析或智能体应用,并且已经依赖 PyTorch / Transformers 基础设施进行模型加载、实验、部署或模型工件管理,这一点尤其有用。
Transformers 后端在以下情况下是很好的选择:
- 为已经使用 Transformers 的团队提供更熟悉的开发体验
- 对受支持的 PaddleOCR 模型实现 Hub 兼容的模型发现和分发
- 更轻松地与现有的 PyTorch / Transformers 服务集成
当最大化 OCR 或文档解析吞吐量是首要目标时,通常推荐使用 PaddleOCR 默认的 paddle_static 后端。
本次发布并非要用一个后端取代另一个后端,而是为开发者提供更多灵活性:使用 PaddleOCR 获得 OCR 和文档解析能力,并选择最适合你技术栈的推理后端。
立即尝试
在 Hugging Face Spaces 上体验 PaddleOCR 3.5 Transformers 演示: https://huggingface.co/spaces/PaddlePaddle/paddleocr-3.5-transformers-demo
在 Hub 上探索 PaddleOCR 模型: https://huggingface.co/PaddlePaddle/models