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

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能力Abilitiesocr可用 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能力chat、vision模型架构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 会为这个模型自动准备独立虚拟环境依赖包括transformers4.45.0 # 仅当 engine Transformers mineru-vl-utils[transformers] # 仅当 engine TransformersMinerU 官方工具库 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}取vllm或Transformersnone是 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必填已启动模型的 UIDimageFile必填图片或 PDF 的原始字节kwargsForm可选JSON 字符串承载task、pages、dpi、request_id等控制参数PDF 输入处理create_ocr的实现位于 xinference/api/restful_api.py 附近其输入处理逻辑依赖 xinference/api/pdf_ocr.py要点如下PDF 探测is_pdf_upload(content_type, head)通过 Content-Type 与文件魔数PDF_MAGIC双重判断上传物是否为 PDF逐页光栅化普通 OCR 任务会调用rasterize_pdf将 PDF 渲染为逐页位图内部用worst_case_parse_peak_pixels等函数基于像素预算计算安全缩放因子避免超大页面撑爆显存随后逐页调用模型实例的ocr()最后用merge_ocr_page_results合并各页文本整档解析任务WHOLE_DOCUMENT_OCR_TASKS frozenset({parse})xinference/api/pdf_ocr.py定义了整文档解析路径——当kwargs中taskparse时模型自行解析整份 PDF而非逐页位图此时要求必须是 PDF 上传且不支持pages、dpi参数缩放上限由 xinference/model/image/ocr/deepdoc.py 中的MAX_PARSE_ZOOMIN/parse_zoomin控制权限与任务追踪入口处执行_check_model_access做模型访问鉴权并通过_add_running_task(request_id)将请求纳入运行任务追踪便于取消与审计。调用示例以 curl 表示实际以图片方式上传curl -X POST http://localhost:9997/v1/images/ocr \ -F modelmodel_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_instancexinference/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*448、max_pixels 2880*2880即单张输入图会被限制在该像素区间内兼顾小字识别精度与显存占用生成长度max_new_tokens默认 16384适应长文档一次性输出提示词通过apply_chat_template(..., enable_thinkingFalse)构建关闭思考模式直出识别文本输出经_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.2Bpytorch 格式、无量化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服务默认端口 9997OCR 统一入口为POST /v1/images/ocr支持图片逐页识别与taskparse整档 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),仅供参考