跳到主要内容
返回

MiniCPM-OCR

MiniCPM-V 多模态系列

版本参数量HuggingFaceModelScope
MiniCPM-OCR 1.01.3BMiniCPM-OCR-1.0MiniCPM-OCR-1.0
MiniCPM-OCR 1.0-DSpark0.3BMiniCPM-OCR-1.0-DSparkMiniCPM-OCR-1.0-DSpark
MiniCPM-OCR Jev2.2BMiniCPM-OCR-JevMiniCPM-OCR-Jev

MiniCPM-OCR 1.0​

文档解析需要两个进程:SDK 负责版面检测与结果组装,识别服务运行模型。本页先启动识别后端,再到推理解析文档。

环境要求​

官方 vLLM 教程使用 Linux x86_64、Python 3.12、NVIDIA GPU 与 ≥580 驱动(CUDA 13),已在 RTX 5090 32 GB 上验证。环境、源码编译、权重与缓存合计建议预留至少 40 GB 磁盘。这是已验证配置,不能直接视为最低显存需求。

vLLM​

克隆仓库,使用官方脚本安装匹配的 vLLM 与 Transformers 源码版本:

Bash
git clone https://github.com/OpenBMB/MiniCPM-OCR.git
cd MiniCPM-OCR
apt-get update
apt-get install -y software-properties-common
add-apt-repository -y ppa:ubuntu-toolchain-r/test
apt-get update
apt-get install -y gcc-13 g++-13 libdw-dev libelf-dev
bash scripts/install.sh vllm

在仓库根目录打开新的终端,启动服务:

Bash
source .venv-vllm/bin/activate
export CC=gcc-13 CXX=g++-13
export CUDA_HOME="$(python -c 'import sysconfig; print(sysconfig.get_path("purelib") + "/nvidia/cu13")')"
export PATH="$CUDA_HOME/bin:$PATH"

vllm serve openbmb/MiniCPM-OCR-1.0 \
--served-model-name minicpm-ocr \
--host 127.0.0.1 \
--port 18499 \
--max-model-len 40960 \
--max-num-batched-tokens 40960 \
--max-num-seqs 32 \
--limit-mm-per-prompt '{"image":36,"video":0}' \
--attention-backend FLASH_ATTN \
--mm-encoder-attn-backend FLASH_ATTN \
--mm-processor-kwargs '{"downsample_mode":"4x"}' \
--gpu-memory-utilization 0.85 \
--trust-request-mm-kwargs \
--speculative-config '{
"method": "dspark",
"model": "openbmb/MiniCPM-OCR-1.0-DSpark",
"num_speculative_tokens": 15,
"enable_adaptive_verification": false
}' \
--default-chat-template-kwargs '{"enable_thinking":false}'

DSpark 加速使用配套的 MiniCPM-OCR-1.0-DSpark 草稿模型。使用普通解码时,删除整个 --speculative-config 参数及 JSON 值;SDK 调用所需的 --trust-request-mm-kwargs 应保留。

Bash
curl -fsS http://127.0.0.1:18499/v1/models

确认模型列表中包含 minicpm-ocr 后,再运行推理页的 SDK 或 API 示例。

SGLang​

SGLang 通过 OpenAI 兼容接口提供 MiniCPM-OCR 服务,并支持使用配套的目标模型与草稿模型开启 DSpark 解码。SDK 在独立环境中运行,通过 HTTP 连接服务。

本节沿用 vLLM 的环境结构与 SDK 设置,命令面向 Linux x86_64、NVIDIA GPU 与 Python 3.12。该配置下的 SGLang 端到端部署仍待验证。

准备源码​

MiniCPM-OCR 1.0 的 SGLang 支持由 PR #45799 提供,截至 2026 年 10 月 26 日仍在评审中。本节使用该 PR 的提交 aaab6bfc3de5354b052f2e96d5e566d70b9f69a2,来自 model/MiniCPM-OCR-1.0 分支。

以下命令均在 MiniCPM-OCR 仓库根目录执行:

Bash
git clone https://github.com/sgl-project/sglang.git sources/sglang
git -C sources/sglang fetch origin pull/45799/head
git -C sources/sglang checkout aaab6bfc3de5354b052f2e96d5e566d70b9f69a2

若 sources/sglang 已存在,跳过 clone,只执行 fetch 与 checkout。

准备 SDK 环境​

按推理页的说明,在 .minicpm-ocr 中安装 SDK 与 GPU 版 PaddlePaddle。若该环境已为 vLLM 安装过,直接复用即可。

仅用 CPU 做版面检测时,步骤相同,只需把 paddlepaddle-gpu 的安装命令替换为:

Bash
python -m pip install "paddlepaddle==3.2.1"

安装服务环境​

仓库 pyproject.toml 中的 sglang profile 会安装 sources/sglang/python 与 CUDA 13 组件。PyTorch 2.14.1、Transformers 5.19.0 等 SGLang 依赖来自源码自身的 python/pyproject.toml。由于 vLLM profile 需要不同版本的 PyTorch,安装脚本使用独立的 .venv-sglang 环境。

在 Ubuntu 22.04 上准备系统构建依赖,以 root 身份运行,或给 APT 命令加 sudo:

Bash
apt-get update
apt-get install -y software-properties-common build-essential pkg-config libssl-dev curl ca-certificates protobuf-compiler
add-apt-repository -y ppa:ubuntu-toolchain-r/test
apt-get update
apt-get install -y gcc-13 g++-13 libdw-dev libelf-dev
驱动兼容性

CUDA 13 通常要求驱动 ≥580。受支持但驱动较旧的 GPU 可按 FAQ 配置兼容库,并在安装、服务与 GPU SDK 三个终端中设置对应环境变量。

安装服务环境:

Bash
bash scripts/install.sh sglang
source .venv-sglang/bin/activate

安装脚本会创建或复用 .venv-sglang,按需安装 rustup,并选择 SGLang 源码锁定的 Rust 版本(该提交为 1.92),同时准备 CUDA 编译器与库链接。若驱动的 libcuda.so.1 不在 /usr/lib/x86_64-linux-gnu,安装前将 OCR_LIBCUDA 设为其路径;使用驱动兼容库时,保持 FAQ 中配置的值。

检查环境:

Bash
uv pip check
"$(python -c 'import sysconfig; print(sysconfig.get_path("purelib") + "/nvidia/cu13/bin/nvcc")')" --version
python -c 'import sglang; print(sglang.__file__)'
python -c 'import torch, transformers; print("torch", torch.__version__, "CUDA", torch.version.cuda, "transformers", transformers.__version__); x = torch.ones(1, device="cuda"); print(torch.cuda.get_device_name(0), (x + 1).item())'

SGLang 路径应指向 sources/sglang/python/sglang,NVCC 应报告 CUDA 13.0。SGLang 的安装使用其自身依赖列表;教程中供 vLLM 使用的 Transformers 适配 checkout 不会在此安装。

准备模型​

下载 SDK 使用的 PP-DocLayoutV3 版面模型,或复用为 vLLM 准备好的目录:

Bash
mkdir -p models
curl -fL -o ./models/PP-DocLayoutV3_infer.tar \
https://paddle-model-ecology.bj.bcebos.com/paddlex/official_inference_model/paddle3.0.0/PP-DocLayoutV3_infer.tar
tar xf ./models/PP-DocLayoutV3_infer.tar -C ./models

下载 MiniCPM-OCR-1.0 目标模型及其配套的 MiniCPM-OCR-1.0-DSpark 草稿模型:

Bash
source .venv-sglang/bin/activate
hf download openbmb/MiniCPM-OCR-1.0 --local-dir ./models/MiniCPM-OCR-1.0
hf download openbmb/MiniCPM-OCR-1.0-DSpark --local-dir ./models/MiniCPM-OCR-1.0-DSpark

模型已存在时直接复用。下文 --model-path 指向目标模型目录,--speculative-draft-model-path 指向配套草稿模型目录,SDK 的 layout.model_dir 指向版面模型目录。

启动服务​

在仓库根目录打开服务终端。单卡机器上,先结束 SDK 运行并停掉之前的推理服务,再启动 SGLang,以释放显存。

旧驱动

使用较旧的驱动时,需在本终端按 FAQ 设置兼容库环境变量后再启动服务。激活 .venv-sglang 不会恢复其他终端的环境变量。

Bash
source .venv-sglang/bin/activate
export PATH="${CARGO_HOME:-$HOME/.cargo}/bin:$PATH"
export RUSTUP_TOOLCHAIN=1.92
export CC=gcc-13 CXX=g++-13
export CUDA_HOME="$(python -c 'import sysconfig; print(sysconfig.get_path("purelib") + "/nvidia/cu13")')"
export PATH="$CUDA_HOME/bin:$PATH"
CUDA_VISIBLE_DEVICES=0 python -m sglang.launch_server \
--model-path ./models/MiniCPM-OCR-1.0 \
--served-model-name minicpm-ocr \
--host 127.0.0.1 --port 18499 \
--context-length 40960 \
--max-running-requests 32 \
--mem-fraction-static 0.85 \
--speculative-algorithm DSPARK \
--speculative-draft-model-path ./models/MiniCPM-OCR-1.0-DSpark \
--default-chat-template-kwargs '{"enable_thinking":false}'

--speculative-algorithm DSPARK 开启 DSpark。SGLang 从草稿模型配置读取块大小并推导验证窗口,不要把 vLLM 的 --speculative-config JSON 复制到该命令。

首次启动时源码可能编译 Rust 缓存扩展,需保持 Cargo 目录在 PATH 中并使用 Rust 1.92;即使安装脚本已完成,系统 Cargo 也可能更旧。重新激活虚拟环境会重置 PATH,激活后需重跑上述 export。

服务就绪后,在另一终端确认:

Bash
curl --noproxy 127.0.0.1 -f http://127.0.0.1:18499/v1/models

返回的模型列表应包含 minicpm-ocr。

用 SDK 解析文档​

在仓库根目录另开终端:

Bash
source .minicpm-ocr/bin/activate
minicpmvocr parse --config sdk/minicpmvocr/configs/minicpmvocr.yaml \
--backend openai \
--server-url http://127.0.0.1:18499 \
--model minicpm-ocr \
--set layout.model_dir="$PWD/models/PP-DocLayoutV3_infer" \
--set layout.device=cuda:0 \
--set pipeline.queue_mode=concurrent \
--set engine.max_model_len=40960 \
--set pipeline.max_workers=32 \
--set pipeline.merge_cross_page_tables=false \
--set pipeline.overlap_layout=true \
--input doc.pdf --output doc.md

输入可以是 PDF、PNG 或 JPG;PDF 会完整解析,加 --set input.limit=1 可只检查第一页。SDK 的模型名称需与服务端的 --served-model-name 一致。

pipeline.overlap_layout=true 让版面检测与识别并行执行;pipeline.max_workers=32 限制的是识别请求并发数而非页数,应按服务能力调整;关闭版面重叠时 pipeline.queue_mode 才会生效。--backend openai 指定 SGLang 使用的 OpenAI 兼容客户端。

CPU 版面检测时,使用前面配置的 CPU PaddlePaddle 环境,激活 .minicpm-ocr,并把 --set layout.device=cuda:0 换成 --set layout.device=cpu。

GPU 选择:cuda:0 指 SDK 进程可见的第一块 GPU。

常见问题​

现象排查
提示未知的 minicpm_ocr 模型类型或架构确认源码处于锁定的 PR 提交,且安装在 .venv-sglang 中
CUDA 驱动报错检查驱动兼容性,以及 FAQ 中的兼容库环境变量
找不到 nvcc 或缺少 NVCC 链接文件恢复启动服务时的 CUDA_HOME 与 PATH;编译器文件不完整时重跑 bash scripts/install.sh sglang
NVCC 报告未知选项 --compress-mode=size恢复服务命令中的 CUDA_HOME 与 PATH,再重启服务
Rust 缓存编译失败,出现 edition2024 或 Cargo 退出码 101查看第一个编译器报错;使用 edition2024 时恢复启动服务时的 Cargo PATH 与 RUSTUP_TOOLCHAIN,cargo --version 应显示 1.92.0
显存不足降低 --max-running-requests、SDK worker 数或 --context-length,并保持 engine.max_model_len 与服务一致
输出中出现思考标签启动服务时保留 --default-chat-template-kwargs '{"enable_thinking":false}'

其他硬件平台与服务选项见 SGLang 文档。

llama.cpp​

llama.cpp 使用 GGUF 权重在 CPU 与本地 GPU 上推理,适合资源受限或离线部署的场景。

环境要求​

  • 硬件:支持 AVX2 的 CPU,或 NVIDIA / AMD GPU
  • 内存:≥16 GB 系统内存
  • 存储:F16 模型与视觉投影器约 2.5 GB

GGUF 权重​

从 openbmb/MiniCPM-OCR-1.0-gguf 下载:

文件大小说明
MiniCPM-OCR-1_0-F16.gguf1.4 GB语言模型(F16)
mmproj-model-f16-4x.gguf859 MB视觉投影器(4x 下采样)

两个文件都需要:语言模型用于 --model,投影器用于 --mmproj。

量化版本(Q4_K_M、Q8_0)即将提供。自行量化:

Bash
./build/bin/llama-quantize MiniCPM-OCR-1_0-F16.gguf MiniCPM-OCR-1.0-Q8_0.gguf Q8_0

安装​

从源码构建​
Bash
git clone https://github.com/ggml-org/llama.cpp
cd llama.cpp
# NVIDIA GPU
cmake -B build -DGGML_CUDA=ON -DCMAKE_BUILD_TYPE=Release
cmake --build build -j --target llama-server llama-quantize
# AMD GPU: cmake -B build -DGGML_HIP=ON ...
# CPU only: cmake -B build ...

在较新的 NVIDIA GPU 上,可通过指定单一架构加快构建,例如 -DCMAKE_CUDA_ARCHITECTURES=120(RTX 5090)、90(H100)或 80(A100)。完整选项见官方 构建文档。

使用预编译二进制​

从 llama.cpp releases 下载。

启动服务​

Bash
./build/bin/llama-server \
--model ./MiniCPM-OCR-1_0-F16.gguf \
--mmproj ./mmproj-model-f16-4x.gguf \
--host 0.0.0.0 \
--port 18499 \
--ctx-size 40960 \
--n-gpu-layers 999

参数说明:

  • --mmproj FILE:多模态投影器路径,图像输入必需
  • --n-gpu-layers 999:把所有层放到 GPU;纯 CPU 推理设为 0
  • --ctx-size:上下文窗口大小

官方 GGUF 开箱可用,其内嵌对话模板已关闭思考模式,无需额外模板参数。若自行转换 GGUF 权重,启动服务时需加 --chat-template-kwargs '{"enable_thinking":false}'。

验证服务​

Bash
curl http://127.0.0.1:18499/health
# {"status":"ok"}

SDK 配置​

按 推理 的步骤安装 SDK 与版面模型,SDK 环境使用 .minicpm-ocr。使用 CPU 版面检测时,把其中的 paddlepaddle-gpu 安装命令替换为:

Bash
python -m pip install "paddlepaddle==3.2.1"

然后在仓库根目录执行:

Bash
source .minicpm-ocr/bin/activate
export OCR_LAYOUT_MODEL_DIR="$PWD/PP-DocLayoutV3_infer"
export PADDLE_PDX_DISABLE_MODEL_SOURCE_CHECK=True
minicpmvocr parse --config sdk/minicpmvocr/configs/minicpmvocr.yaml \
--backend llamacpp --server-url http://127.0.0.1:18499 \
--model minicpm-ocr \
--set layout.device=cpu \
--set pipeline.queue_mode=serial \
--set pipeline.max_workers=1 \
--input doc.pdf --output doc.md

GPU 版面检测时,按推理页安装 GPU 版 PaddlePaddle,激活 .minicpm-ocr,并把 --set layout.device=cpu 换成 --set layout.device=cuda:0。

并发

llama-server 默认一次只处理一个请求,SDK 选项应保持 pipeline.queue_mode=serial 与 pipeline.max_workers=1。

性能​

在单张 RTX 5090(32 GB)、F16 权重下测得:

  • 模型与投影器加载:约 2.3 秒
  • 一个表格裁切区域(1,312 输入 token + 265 输出 token):约 1.0 秒
  • 显存:--ctx-size 40960 时约 26 GB,小显存显卡应降低该值
  • 纯 CPU(48 线程):一个表格图像端到端(版面 + 识别 + 组装)约 21 秒

量化取舍:

量化大小表格密集文本 / XML说明
F161.4 GB基准基准保真度最高
Q8_0775 MB无损近乎无损推荐的平衡方案
Q4_K_M505 MB无损轻微下降密集代码可能出现闭合标签斜杠丢失,代码类文档建议用 Q8_0

限制​

  • 量化会带来约 1%–2% 的精度损失,在 Q4_K_M 的密集代码 / XML 上最明显
  • 不支持投机解码(无 DSpark)
  • 在高端 GPU 上比 vLLM 慢

更多细节见 llama.cpp 文档。

Ollama​

上游仓库未提供独立的 Ollama 部署文档。Ollama 作为 SDK 的识别后端接入,通过 --backend ollama 指定,其余参数与其他后端一致:

Bash
minicpmvocr parse doc.pdf -o doc.md --device cuda:0 \
--backend ollama \
--server-url http://127.0.0.1:11434 \
--model minicpm-ocr

服务地址与模型名称按本地 Ollama 的实际配置填写,参数说明见 SDK 命令行参数。

FlagOS​

MiniCPM-OCR 系列支持通过 FlagOS 进行多芯片部署,将文档解析与识别结果的可信度判别接入不同算力平台。开发者可单独部署 MiniCPM-OCR 1.0 完成 OCR 任务,也可结合 MiniCPM-OCR Jev 构建「文档解析 → 可信度判别 → 人工复核」的处理流程。

FlagOS 介绍​

为推动不同 AI 芯片的大规模应用,北京智源人工智能研究院联合科研机构、芯片企业、系统厂商及算法和软件相关单位,共同发起并创立了众智 FlagOS 开源社区。

FlagOS 致力于打造面向多种 AI 芯片的统一、开源系统软件栈,包括大型算子库、统一 AI 编译器、并行训推框架和统一通信库等核心开源项目,构建「模型—系统—芯片」三层贯通的开放技术生态。在适配支持范围内,开发者可以复用模型接入与算子优化成果,实现一次开发、跨芯迁移,降低不同芯片软件栈之间的迁移成本。

社区官网:flagos.io · 开发者文档:docs.flagos.io

FlagOS 多 AI 芯片支持与下载​

FlagRelease 是 FlagOS 团队构建的面向多架构 AI 芯片的模型自动迁移、适配与发布平台。本次提供两个模型的 BF16 多芯版本,分别覆盖平头哥、英伟达、华为昇腾、海光、昆仑芯、沐曦、摩尔线程、清微智能、天数智芯、曦望、M5 及此芯,共 12 款芯片:

  • MiniCPM-OCR 1.0(1.3B):基于 MiniCPM-V 4.6 进行 OCR 特化,面向文字识别与文档解析,支持真实拍摄文档和复杂表格等场景。
  • MiniCPM-OCR Jev(2B):独立的 OCR 识别结果判别模型,为识别结果提供经校准的可信度,帮助人工优先复核可能存在识别错误的内容。

下表提供两款模型经 FlagOS 适配后的多芯片模型镜像在 ModelScope 与 Hugging Face 上的下载地址。模型文件、部署代码、镜像拉取与容器启动说明见对应模型卡。

ARM 端侧统一使用表中的 arm 版本入口,两款模型均为 BF16;具体支持设备、运行环境与部署方式以对应模型卡为准。

FlagOS 安装与使用​

方式一:使用 FlagRelease 镜像(推荐)​
  1. 从上表选择目标芯片平台和模型。仅需文档解析时选择 MiniCPM-OCR 1.0;需要对识别结果进行可信度判别时,再选择对应平台的 MiniCPM-OCR Jev。
  2. 按模型卡准备宿主机驱动和运行时,拉取相应镜像,并配置设备映射、模型目录和文档图像目录挂载后启动容器。
  3. 在对应环境中运行模型卡提供的 OCR 或 MiniCPM-OCR Jev 示例。模型路径、设备配置、批量大小、图像预处理和启动参数均以所选平台的模型卡为准。

如需先下载模型文件,以下以平头哥平台的 Hugging Face 仓库为例,与后文的源码安装示例保持一致:

Bash
python -m pip install --upgrade huggingface_hub

# 下载 OCR 文档解析模型
hf download FlagRelease/MiniCPM-OCR-1.0-BF16-zhenwu-FlagOS \
--local-dir ./models/MiniCPM-OCR-1.0

# 可选:下载 Jev 可信度判别模型
hf download FlagRelease/MiniCPM-OCR-Jev-BF16-zhenwu-FlagOS \
--local-dir ./models/MiniCPM-OCR-Jev

使用其他平台时,将仓库名替换为上表中的对应版本;也可从 ModelScope 获取模型文件。容器内的模型路径应指向挂载后的模型目录。

方式二:从源码安装​

1. MiniCPM-OCR 1.0:vLLM-plugin-FL

以下以平头哥平台的 MiniCPM-OCR 1.0 为例,安装 vLLM-plugin-FL 推理环境。示例使用 vLLM v0.24.0、vllm-plugin-FL v0.3.0、FlagGems v5.4.0。安装前请按模型卡准备芯片驱动、运行时、PyTorch 和构建依赖。

vLLM-plugin-FL 官方开发者指南:GitHub / GitCode。

Bash
# 1. 安装 vLLM v0.24.0(平头哥平台示例)
git clone --branch v0.24.0 https://github.com/vllm-project/vllm.git
cd vllm
VLLM_TARGET_DEVICE=empty python -m pip install -v --no-build-isolation --no-deps .
cd ..

# 2. 安装 vllm-plugin-FL v0.3.0
git clone --branch v0.3.0 https://github.com/flagos-ai/vllm-plugin-FL.git
cd vllm-plugin-FL
python -m pip install --no-build-isolation -e .
cd ..

# 3. 安装 FlagGems v5.4.0
git clone --branch v5.4.0 https://github.com/flagos-ai/FlagGems.git
cd FlagGems
python -m pip install --no-build-isolation -e .
cd ..

按平台需求安装 FlagTree 统一编译器 和 FlagCX 统一通信库,具体步骤见各项目文档及对应模型卡。OCR 模型适配代码、图像预处理依赖,以及其他平台的版本和分支配置,以对应模型卡为准。

2. MiniCPM-OCR Jev:Torch-FL

MiniCPM-OCR Jev 通过 Torch-FL 实现多芯片部署。Torch-FL 为 MiniCPM-OCR Jev 的 PyTorch 和 Transformers 推理流程对接芯片后端,并结合 FlagGems 算子库与对应编译器运行可信度判别。

Torch-FL 官方开发者指南:GitHub / GitCode。不同芯片的 SDK、PyTorch 和编译器依赖不同,请先按安装指南选择目标平台。

以下同样以平头哥平台为例,在为 MiniCPM-OCR Jev 准备的独立 Python 环境中执行。安装前请按平头哥安装指南准备 PPU 驱动、SDK、配套 PyTorch、构建工具及编译器依赖;示例中的 SDK 路径为 /usr/local/PPU_SDK,请按实际安装位置调整。

Bash
mkdir -p minicpm-ocr-jev-src
cd minicpm-ocr-jev-src

# 1. 安装 Torch-FL(平头哥平台示例)
git clone -b main https://github.com/flagos-ai/Torch-FL.git
cd Torch-FL
FLAGOS_ACCELERATOR=ppu \
CUDA_HOME=/usr/local/PPU_SDK/CUDA_SDK \
FLAGOS_SKIP_CUDA_ASSETS=1 \
python -m pip install --no-build-isolation -v -e .
cd ..

# 2. 安装 FlagGems 算子库
git clone https://github.com/flagos-ai/FlagGems.git
cd FlagGems
python -m pip install --no-build-isolation -e .
cd ..

# 3. 按平台需要安装 FlagTree 统一编译器
# 详见 https://github.com/flagos-ai/FlagTree

# 4. 配置平头哥平台的 Torch-FL 运行环境
export FLAGOS_DISABLE_CUDA_ASSETS=1

其他平台请使用对应安装指南中的构建参数与运行配置。Torch-FL、FlagGems、FlagTree 及所需 FlagCX 的版本组合,以及 Transformers、MiniCPM-OCR Jev 模型代码和图像渲染依赖,以对应模型卡和平台指南为准。

安装完成后,可在同一环境中检查 Torch-FL 设备是否可用:

Python
import torch
import torch_fl

print("FlagOS available:", torch.flagos.is_available())
print("FlagOS device count:", torch.flagos.device_count())

当可用状态为 True 且设备数量大于 0 时,可继续按下方 MiniCPM-OCR Jev 判别流程运行模型;模型加载、设备选择与输入预处理按 MiniCPM-OCR Jev 模型卡中的配套示例配置。

运行文档解析与可信度判别​

1. 使用 MiniCPM-OCR 1.0 解析文档

加载目标平台的 OCR 模型,按配套示例输入文档图像,获得文字识别与文档解析结果。图像分辨率、页面切分、提示词及输出格式应使用模型卡提供的配置。若后续接入 MiniCPM-OCR Jev,保留页面块原图及其对应的识别文本,确保两者一一对应。

2. 使用 MiniCPM-OCR Jev 评估识别结果(可选)

在已配置好 Torch-FL 的环境中加载目标平台的 MiniCPM-OCR Jev 模型,按配套示例准备页面块原图、由 OCR 文本渲染的图像,以及对应识别文本,通过 Torch-FL 运行 MiniCPM-OCR Jev 的 Transformers 判别流程,并通过配套后处理输出经校准的可信度。

3. 按可信度安排复核

结合实际业务样本验证并设置复核阈值,将低可信度内容优先送交人工检查。MiniCPM-OCR Jev 也可接在其他 OCR 模型之后使用,接入前应验证输入格式及其在目标文档上的判别效果。

常见问题​

遇到 minicpm_ocr 架构不支持时,重新运行匹配的安装脚本;编译进程被终止时降低 MAX_JOBS;显存不足时降低上下文长度并调整并发。旧驱动的兼容库配置见官方 FAQ。

MiniCPM-OCR Jev​

Docker 镜像固定 Chromium、中文字体与渲染依赖,保持与云端一致的渲染环境。自行安装 SDK 渲染器时,分数绝对值可能略有变化,应在实际部署环境中校准阈值。

环境要求​

本地教程要求 NVIDIA GPU、至少 12 GB 显存、≥535 驱动;SDK 部署要求 Python ≥3.10。前向环境约占 5~9 GB 磁盘、渲染环境约 1.5 GB、权重约 2.5 GB。

Docker​

先将量化页的 BF16 权重下载到本地目录,再从仓库构建:

Bash
git clone https://github.com/OpenBMB/MiniCPM-OCR.git
cd MiniCPM-OCR/scripts/minicpm-ocr-jev
docker build -f serve/Dockerfile -t minicpm-ocr-jev-1-0:latest .

docker run -d --name minicpm-ocr-jev --gpus '"device=0"' \
-p 127.0.0.1:8030:8030 \
-v /path/to/checkpoint:/weights:ro \
minicpm-ocr-jev-1-0:latest 8030 /weights

curl -f http://127.0.0.1:8030/healthz

将 /path/to/checkpoint 替换为下载的模型目录。健康检查成功后,可运行评分示例。

SDK 与推理后端​

SDK 将推理引擎与评分服务分为独立环境。已有渲染图时可仅部署评分;只有候选文本时需部署渲染与评分。模型服务提供 vLLM、SGLang、llama.cpp 与 Ollama 路径,按本地部署教程选择安装方式。

相关资源​

主题入口
模型概览MiniCPM-OCR
推理MiniCPM-OCR
量化MiniCPM-OCR