ARTICLE · 1292483
MiniCPM-OCR:1.3B本地读文档模型
手里有一份扫描 PDF,想把里面的表格搬进知识库,复制出来却是一串乱序文字:表头跑到最后,数字挤成一列,公式只剩几个符号。这种时候,换一个更会聊天的大模型,未必是最省事的办法。
OpenBMB 这次拿出了一个专门干文档识别的小模型:MiniCPM-OCR 1.0,总参数 1.3B,重点处理中文、英文、表格、公式和结构化信息。 它已经提供 GGUF 和本地部署路线,可以把识别这一步留在自己电脑上。
我看中它的地方很直接:日常处理一页合同、一张报表,不必先搬出一个几十 B 的通用视觉模型。
它和“能看图的聊天模型”有什么不同
之前写过 MiniCPM-V,那类模型可以描述图片、理解场景。MiniCPM-OCR 则把本事集中在文档:识别文字、读表格、还原公式、提取关键字段。
比如拍了一页带表格的材料,想得到的是可编辑内容,而不是“这是一份包含数据的文档”这样的图片说明。它瞄准的就是这段差距。
官方完整流程不只有一个模型:版面检测先找正文、表格等区域,识别模型逐块处理,SDK 最后按阅读顺序组装成 Markdown。 表格可用 HTML 表达,公式用 LaTeX 保留。这比单纯抠出一串文字,更适合接后续搜索和知识库。
下面先让识别模型读一张图;整份 PDF 自动切页、检测版面、组装结果,要再接官方 SDK。只装好权重,不会凭空多出整套文档管理软件。
普通电脑的门槛,先看量化这条路
官方 Ollama 配方需要三份匹配文件:
三份加起来约 2GB,是文件体积,不是完整运行显存。 图片切片、上下文和后端缓冲还要占资源,但这至少是一条值得普通电脑考虑的轻量路线。
8G 显存建议从单图、单请求开始;12–24G 可以在结果稳定后再试批量。没有独显的读者,先核对自己系统的 Ollama 后端支持,接受 CPU 等待,不照搬服务器的吞吐数字。
官方高吞吐 SDK 教程使用 Linux 和 RTX 5090 测试环境。那套配置不等于单图体验的最低门槛,也不能拿它的页速当自己电脑的速度。
先备齐文件,再接 Ollama
部署文档要求 Ollama v0.40.12 或更新版本,先看 ollama --version。旧版不认识 DRAFT 时,应升级服务,而不是把那行随手删掉。
在单独目录安装下载工具,备齐三份文件:
python -m pip install -U huggingface_hubhf download openbmb/MiniCPM-OCR-1.0-gguf MiniCPM-OCR-1_0-Q8_0.gguf mmproj-model-f16-4x.gguf --local-dir ./ocr-modelhf download openbmb/MiniCPM-OCR-1.0-DSpark-gguf dspark-MiniCPM-OCR-1_0-Q8_0.gguf --local-dir ./ocr-model在 ocr-model 文件夹新建 Modelfile:
FROM ./MiniCPM-OCR-1_0-Q8_0.ggufFROM ./mmproj-model-f16-4x.ggufDRAFT ./dspark-MiniCPM-OCR-1_0-Q8_0.ggufREQUIRES 0.40.12PARAMETER num_ctx 8192PARAMETER temperature 0PARAMETER draft_num_predict 15保持本机 Ollama 服务运行,在上一级目录注册:
ollama create minicpm-ocr -f ./ocr-model/Modelfileollama show minicpm-ocrminicpm-ocr 是我们自己注册的名字,不是从 Ollama 模型库猜出来的短标签。ollama show 应显示视觉能力;文件路径按 Modelfile 所在目录解析。
第一张图,就拿手头的扫描页
准备 sample.png,在当前目录打开 PowerShell,把图片交给本机服务:
$ocrImage = [Convert]::ToBase64String([IO.File]::ReadAllBytes((Resolve-Path './sample.png').Path))$ocrBody = @{ model = 'minicpm-ocr' stream = $false messages = @(@{ role = 'user' content = '识别图片中的文字,保留阅读顺序。表格保留行列关系,无法辨认的内容不要猜。' images = @($ocrImage) })} | ConvertTo-Json -Depth 6$ocrResult = Invoke-RestMethod -Uri 'http://127.0.0.1:11434/api/chat' -Method Post -ContentType 'application/json' -Body ([Text.Encoding]::UTF8.GetBytes($ocrBody))$ocrResult.message.content请求读取本地图片,模型由本机 Ollama 运行,不需要调用云 OCR。首次安装和下载资源仍要联网。
先看正文和表格是否读对。如果只有普通图片说明,检查视觉组件与识别提示;如果长页被截断,再调整图像和输出预算,不急着换模型。
想整份 PDF 转 Markdown,再上 SDK
官方 minicpm-ocr SDK 负责版面检测和结果组装。完成其依赖安装、布局模型准备后,可把识别后端指向现有 Ollama:
minicpmvocr parse doc.pdf -o doc.md --backend ollama --server-url http://127.0.0.1:11434 --model minicpm-ocr --workers 1 --device cuda:0这条示例面向已经配好 CUDA 版面检测环境的人。--device 控制布局检测,不改变 Ollama 的计算设备;SDK 默认并发较高,小显存先降到 1。完整环境按官方教程安装,不把“模型只有 1.3B”理解成“整套软件没有依赖”。
值不值得装,看你有没有这类活
经常把扫描件转成可编辑资料、需要把表格送进知识库、想在本机提取票据字段的人,值得把它留进工具箱。模型和 SDK 能本地运行,材料不必交给第三方 OCR 服务。
但识别结果仍是初稿。金额的小数点、公式下标、表头单位和印章遮住的字,要回原图检查。项目模型卡标注 Apache 2.0,使用时保留对应版本的许可文件。
我的建议是先导入量化文件,读通一张测试图,再考虑整份 PDF。先把“看得见的内容变成可用文字”解决,后面的知识库才有好资料可读。















































































