news 2026/9/17 20:31:29

Xinference 中 MinerU2.5-2509-1.2B 文档理解 OCR 模型:启动命令、/v1/images/ocr 调用链与引擎适配机制详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Xinference 中 MinerU2.5-2509-1.2B 文档理解 OCR 模型:启动命令、/v1/images/ocr 调用链与引擎适配机制详解

Xinference 中 MinerU2.5-2509-1.2B 文档理解 OCR 模型:启动命令、/v1/images/ocr 调用链与引擎适配机制详解

【免费下载链接】inferenceSwap GPT for any LLM by changing a single line of code. Xinference lets you run open-source, speech, and multimodal models on cloud, on-prem, or your laptop — all through one unified, production-ready inference API.项目地址: https://gitcode.com/GitHub_Trending/in/inference

本文围绕 Xinference 内置模型 MinerU2.5-2509-1.2B 展开。MinerU2.5-2509-1.2B 是 OpenDataLab 推出的文档理解视觉语言模型(VLM),在 Xinference 中既可作为 image 类型的 OCR 模型通过一行xinference launch命令拉起,也可走 vLLM/Transformers 引擎以对话 + 视觉(chat、vision)能力运行。读完本文,你将掌握该模型的规格与启动方式、Xinference 的 OCR 请求处理链路(含 PDF 光栅化与整档解析任务),以及 OCR 引擎注册与虚拟环境依赖解析的源码级机制,从而能独立部署并调用这套文档理解服务。

模型基本规格

按照官方模型页 doc/source/models/builtin/image/mineru2.5-2509-1.2b.rst 的记录,该模型的核心元数据如下:

属性取值
模型名称MinerU2.5-2509-1.2B
模型家族ocr
能力(Abilities)ocr
可用 ControlNet
Model IDopendatalab/MinerU2.5-2509-1.2B

同一模型在 Xinference 的 LLM 内置模型表中也有登记,见 doc/source/models/builtin/llm/mineru2.5-2509-1.2b.rst 与 xinference/model/llm/llm_family.json。从 LLM 登记信息可以确认:

  • 模型描述:"MinerU2.5-2509-1.2B is a vision language model for document understanding."(面向文档理解的视觉语言模型);
  • 上下文长度:32768;
  • 支持语言:英文(en)、中文(zh);
  • 能力chatvision
  • 模型架构Qwen2VLForConditionalGeneration,即基于 Qwen2-VL 架构微调的视觉语言模型;
  • 模型格式/规格:pytorch 格式,约 1.2B 参数(1_2Billion),无量化版本(quantizations: none);
  • 支持的引擎:vLLM、Transformers;
  • 模型来源:Hugging Face 与 ModelScope 双源,Model ID 均为opendatalab/MinerU2.5-2509-1.2B

虚拟环境依赖(virtualenv)

llm_family.json中该模型的virtualenv.packages字段可以看到,Xinference 会为这个模型自动准备独立虚拟环境,依赖包括:

transformers>=4.45.0 # 仅当 engine == "Transformers" mineru-vl-utils[transformers] # 仅当 engine == "Transformers",MinerU 官方工具库 vllm_dependencies # 仅当 engine == "vllm" qwen-vl-utils qwen_omni_utils audioread #system_torch#、#system_numpy#(复用系统级 torch/numpy,避免重复安装)

这说明该模型与 MinerU 官方推理工具链深度绑定:Transformers 引擎下会额外安装mineru-vl-utils来提供 MinerU 的提示词/后处理能力;vLLM 引擎下则复用 Xinference 的vllm_dependencies。这种按引擎条件注入依赖的机制由 Xinference 的虚拟环境管理器统一处理(见 xinference/core/virtual_env_manager.py)。

启动模型

image 类型启动(OCR 服务)

官方文档给出的启动命令为:

xinference launch --model-name MinerU2.5-2509-1.2B --model-type image

执行后 Xinference 会拉取opendatalab/MinerU2.5-2509-1.2B并注册为一个 image 类型、具备ocr能力的模型。服务启动后,RESTful API 默认监听端口为9997(定义于 xinference/constants.py 中的XINFERENCE_DEFAULT_ENDPOINT_PORT = 9997),可通过http://localhost:9997/v1/models查看已启动的模型列表。

LLM 类型启动(对话 + 视觉)

由于该模型在 LLM 表中同样登记了 pytorch/1_2 规格、vLLM 与 Transformers 双引擎,也可以按 LLM 方式启动:

xinference launch --model-engine ${engine} --model-name MinerU2.5-2509-1.2B \ --size-in-billions 1_2 --model-format pytorch --quantization none

其中${engine}vllmTransformersnone是 llm_family.json 中当前唯一登记的量化项)。以 LLM 方式启动后,模型以带视觉输入能力的对话模型对外提供/v1/chat/completions服务,适合"看图问文档内容"的交互式场景;以 image 方式启动则面向批量文档识别的/v1/images/ocr场景。

OCR 请求链路:/v1/images/ocr

路由注册

OCR 接口由 image 路由模块注册,xinference/api/routers/images.py 将POST /v1/images/ocr挂载到api.create_ocr。请求为 multipart 表单,包含三个字段:

字段类型说明
modelForm(必填)已启动模型的 UID
imageFile(必填)图片或 PDF 的原始字节
kwargsForm(可选)JSON 字符串,承载taskpagesdpirequest_id等控制参数

PDF 输入处理

create_ocr的实现位于 xinference/api/restful_api.py 附近,其输入处理逻辑依赖 xinference/api/pdf_ocr.py,要点如下:

  1. PDF 探测is_pdf_upload(content_type, head)通过 Content-Type 与文件魔数(PDF_MAGIC)双重判断上传物是否为 PDF;
  2. 逐页光栅化:普通 OCR 任务会调用rasterize_pdf将 PDF 渲染为逐页位图(内部用worst_case_parse_peak_pixels等函数基于像素预算计算安全缩放因子,避免超大页面撑爆显存),随后逐页调用模型实例的ocr(),最后用merge_ocr_page_results合并各页文本;
  3. 整档解析任务WHOLE_DOCUMENT_OCR_TASKS = frozenset({"parse"})(xinference/api/pdf_ocr.py)定义了整文档解析路径——当kwargstask="parse"时,模型自行解析整份 PDF(而非逐页位图),此时要求必须是 PDF 上传,且不支持pagesdpi参数,缩放上限由 xinference/model/image/ocr/deepdoc.py 中的MAX_PARSE_ZOOMIN/parse_zoomin控制;
  4. 权限与任务追踪:入口处执行_check_model_access做模型访问鉴权,并通过_add_running_task(request_id)将请求纳入运行任务追踪,便于取消与审计。

调用示例(以 curl 表示,实际以图片方式上传):

curl -X POST "http://localhost:9997/v1/images/ocr" \ -F "model=<model_uid>" \ -F "image=@./scan.png"

若上传 PDF 并希望整档解析,则在kwargs中传{"task": "parse"}

OCR 引擎调度

模型侧的引擎选择逻辑集中在 xinference/model/image/ocr/ocr_family.py:

  • 每个 OCR 引擎实现OCRModel子类,声明required_libs并通过类方法match(model_family)声明自己能跑哪些模型规格;
  • generate_engine_config_by_model_name在模型加载期遍历所有引擎类,把匹配成功的ocr_class写入OCR_ENGINES(结构为{模型名 -> {引擎名 -> [引擎参数]}});
  • 启动时create_ocr_model_instance(xinference/model/image/core.py)通过check_engine_by_model_name_and_engine(或带虚拟环境感知版本的..._with_virtual_env)按"模型名 + 引擎 + 格式 + 量化"四元组定位具体引擎类;虚拟环境路径还支持engine_markers旁路校验——当模型以虚拟环境方式部署、且请求引擎在模型家族标记中时,可跳过静态兼容性检查直接返回该引擎的首选实现(见 xinference/model/image/ocr/ocr_family.py)。

vLLM 侧的 OCR 实现统一收敛在 xinference/model/image/ocr/vllm.py,其ocr()方法对 Qwen2-VL 系模型(MinerU2.5-2509-1.2B 即属此架构)采用如下关键参数:

  • 图像缩放预算:min_pixels = 448*448max_pixels = 2880*2880,即单张输入图会被限制在该像素区间内,兼顾小字识别精度与显存占用;
  • 生成长度:max_new_tokens默认 16384,适应长文档一次性输出;
  • 提示词通过apply_chat_template(..., enable_thinking=False)构建,关闭思考模式,直出识别文本;
  • 输出经_postprocess_output清洗(filter_imgtags可去除残留图像标签)。

与项目其余 OCR 模型的关系

Xinference 的 image 内置模型目录(见 doc/source/models/builtin/image/index.rst)收录了 GOT-OCR2_0、DeepSeek-OCR、HunyuanOCR、PaddleOCR-VL、Unlimited-OCR 等一批 OCR 模型,它们与 MinerU2.5-2509-1.2B 共享同一套ocr_family引擎注册与/v1/images/ocr调用协议。MinerU 系列的差异化定位在于:它不是纯"像素到文本"的检测式 OCR,而是文档理解 VLM——既能走 image 类型的 OCR 接口批量抽取文本,也能作为带chat/vision能力的 LLM 直接对版式、表格、公式进行问答式理解,这一双重身份正是其同时出现在 image 与 llm 两处模型文档中的原因。

小结

  • MinerU2.5-2509-1.2B 的 Model ID 为opendatalab/MinerU2.5-2509-1.2B,pytorch 格式、无量化,pytorch 约 1.2B 参数,上下文 32768,支持中英文文档理解;
  • 以 OCR 服务启动:xinference launch --model-name MinerU2.5-2509-1.2B --model-type image;以对话模型启动则附加--model-engine--size-in-billions 1_2--model-format pytorch等参数,引擎可选 vLLM 或 Transformers;
  • 服务默认端口 9997,OCR 统一入口为POST /v1/images/ocr,支持图片逐页识别与task="parse"整档 PDF 解析两种路径;
  • 引擎适配与依赖隔离由ocr_family的引擎注册表和虚拟环境管理器共同完成,Transformers 引擎会自动安装mineru-vl-utils以复用 MinerU 官方后处理。

【免费下载链接】inferenceSwap GPT for any LLM by changing a single line of code. Xinference lets you run open-source, speech, and multimodal models on cloud, on-prem, or your laptop — all through one unified, production-ready inference API.项目地址: https://gitcode.com/GitHub_Trending/in/inference

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/17 20:29:49

IDEA连接GitLab开发实战:从代码拉取到CI/CD全流程

第一次用 IDEA 拉 GitLab 代码的人&#xff0c;大概率都经历过这种场景&#xff1a;入职第一天&#xff0c;Leader 甩给你一个仓库地址&#xff0c;让你把项目拉下来跑起来。你打开 IDEA&#xff0c;新建项目、新建空项目&#xff0c;来来回回试了好几轮&#xff0c;最后才在角…

作者头像 李华
网站建设 2026/9/17 20:29:14

基于VSCode与Anaconda从零搭建TensorFlow环境的实操指南

很多刚接触深度学习的人&#xff0c;第一关就卡在“环境搭建”上。我去年在一台新笔记本上从零开始用VSCode搭建TensorFlow环境&#xff0c;本以为二十分钟能搞定&#xff0c;结果整整折腾了一个下午。这个下午踩出来的经验和教训&#xff0c;我整理成这篇实操笔记&#xff0c;…

作者头像 李华
网站建设 2026/9/17 20:28:31

Vibe时代项目结构可视化:用Graph看清依赖与调用链

上个月接手一个跑了快两年的项目&#xff0c;目录结构还停留在“新建文件夹 (3)”的水平。这不是段子&#xff0c;是我在Vibe时代见过的最普遍的项目状态&#xff1a;跑得动&#xff0c;但说不清。代码能跑&#xff0c;不代表结构明朗——尤其是当越来越多项目靠“感觉”堆出来…

作者头像 李华
网站建设 2026/9/17 20:26:02

数字化光学相位共轭:透过散射介质聚焦的波前整形技术与优化算法

简介&#xff1a;基于光学相位共轭的数字化波前整形技术是克服生物组织散射、拓展光学聚焦深度的关键技术&#xff0c;构成该份Word文档的主题。文档先比较反馈式整形、传输矩阵测量与光学相位共轭整形三类方案&#xff0c;继而重点讲解DOPC的系统结构、工作原理和性能优势。内…

作者头像 李华
网站建设 2026/9/17 20:26:00

Java开发中Entity、DTO与VO的分层模型解析

1. 为什么需要区分 Entity、DTO 和 VO&#xff1f;十年前我刚入行 Java 开发时&#xff0c;经常把数据库查询结果直接返回给前端。直到有次性能测试&#xff0c;因为一个用户表包含 20 多个字段但接口只需要 3 个字段&#xff0c;导致网络传输量暴增 7 倍。这才让我意识到分层模…

作者头像 李华