Files
MinerU/docs/next/tiers.md
T

14 KiB
Raw Blame History

解析 Tier

状态: Draft 读者: CLI/API/SDK 使用者、Agent skill 作者、核心开发者 范围: flashbasicstandardadvanced 解析 tier 的产品语义、默认选择策略、适用场景、质量边界和执行路径 非目标: 固定具体模型名称或 backend 实现;定义 middle_json 字段级 schema 底稿: 用户讨论;旧路线图、旧 CLI 与旧设计底稿迁移内容

1. 定位

Tier 是用户可理解的解析档位,不是 backend 名称。它表达的是质量、速度、资源消耗和隐私路径之间的产品承诺。

MinerU 当前定义四个公开 tier。文档中使用面向用户的显示名;代码、CLI 参数、API 字段和 locator 中使用对应字面量。

显示名 字面量 定位 一句话说明
Flash flash 快速发现与索引 随 MinerU 默认安装,最快、质量最低,用于大量文件的低成本预处理
Basic basic 基础解析 需要额外依赖,CPU 可运行,GPU 可加速,质量和资源消耗折中
Standard standard 标准解析 需要 VLM 相关依赖和支持的本地加速器,也是 MinerU 线上 API 提供的档位
Advanced advanced 高级解析 与 Standard 硬件要求相同,但消耗更多算力和时间,困难文档质量更高

auto 不再作为公开 tier 值。CLI 中不传 --tier、HTTP API 中省略 tier 或传 JSON null、Python SDK 中传 None,都表示使用当前入口的默认选择策略。

核心原则:

  • flash 用于发现、预览和建立搜索索引,不是 PDF/image 默认阅读质量。
  • 当 Agent 或用户决定读取 PDF/image 文档时,如果没有指定 tier,默认选择不能解析为 flash;有能力发现上下文时优先使用 standard
  • 默认选择策略在 PDF/image 质量解析语境下不会等价于 flashEPUB/Office/HTML/CSV 这类仅支持 flash tier 的输入按 ADR-0024ADR-0028 归一为 flash 语义;其它 text 直接读取。
  • standard 是高质量 tier,也是 mineru.net/api 对外提供的解析层级。
  • advanced 是当前公开 tier 中质量和成本最高的档位。
  • 本地运行 standardadvanced 是正式支持能力,不是实验能力;它们依赖 VLM 相关依赖、支持的本地加速器和足够的显存或统一内存。
  • mineru.net/api 在相当长时间内只提供 standard,不暴露低成本远端 basic
  • 不使用 --remote 时,MinerU 不会把文档发送到 mineru.net/api

2. 实体 tier 区别

维度 Flash (flash) Basic (basic) Standard (standard) Advanced (advanced)
主要目标 快速扫大量文件,建立基础索引 在普通本地硬件上提供可接受的高质量解析 提供高质量解析 提供最高成本/最高质量档位
安装依赖 随 MinerU 默认安装 需要额外 runtime 依赖 需要更多 runtime 依赖和 VLM 依赖 standard
底层原理 纯 CPU 实现 基于模型 基于 VLM 的高质量模型路径 基于 VLM 的更高成本模型路径
质量 更高
速度 最快 中等 较慢,取决于硬件和远端服务 最慢,通常比 standard 消耗更多算力和时间
本地硬件要求 无特殊硬件要求 需要至少 16GB 总内存;CPU 可运行,GPU 可加速 需要至少 16GB 总内存,并具备支持的本地加速器和足够的显存或统一内存 standard
是否适合 watch 自动处理 一般不默认使用
是否适合用户主动阅读 仅在用户明确选择时 是,默认最低阅读质量 是,质量优先场景 是,专家质量优先场景
典型场景 文件发现、快速预览、搜索索引 本地隐私解析、普通文档阅读 复杂版面、学术论文、高价值文档 极高质量要求、专家批处理或自部署

3. 默认选择策略

当用户没有指定 tier,或在 HTTP API 中显式传入 JSON null 时,MinerU 使用默认选择策略。Python SDK 中的等价表达是 tier=None

默认选择策略分两类场景。本节描述 PDF/image 质量解析的默认选择;EPUB/Office/HTML/CSV 这类仅支持 flash tier 的输入见 ADR-0024ADR-0028。其它 text 没有 tier,不进入解析。

3.1 无能力列表的场景

启动服务或直接解析时,如果当前入口没有可用 tier 列表可参考,默认 tier 是 standard

典型场景:

  • mineru-kit api-server 未传 --tier
  • mineru-kit parse local 模式未传 --tier / --backend
  • Tool SDK 直接本地解析且无法做能力发现。

这类场景的默认值不是 advancedadvanced 消耗更多算力和时间,需要用户显式指定,或由具备能力发现上下文的调用方在没有 standard 时选择。

3.2 有能力发现上下文的场景

当调用某个 parse-server,或有等价的可用 tier 上下文时,默认选择策略基于当前可发现能力选择实体 tier。MinerU 有 local parse-server,也有 remote parse-server。无论 local 还是 remoteparse-server 都应支持通过 API 发现当前 server 提供了哪些解析 tier。当前代码支持发现 basicstandardadvanced 等质量 tier。

这类场景的默认选择顺序是:

standard -> basic -> 报错

也就是说,standard 是默认优先档位;没有 standard 时回退到 basicadvanced 必须由用户显式指定,不参与默认选择。按照当前服务能力契约,提供 advanced 的服务一定同时提供 standard

可发现能力 默认解析结果
只支持 basic basic
只支持 standard standard
只支持 advanced 非法能力组合,不选择默认 tier
同时支持 basicstandard standard
同时支持 standardadvanced standard
同时支持 basicadvanced,不支持 standard basic
同时支持 basicstandardadvanced standard
只支持 flash 或没有可用能力 报错

PDF/image 默认选择策略不会解析为 flash。如果系统找不到 basicstandard,应返回 quality_tier_unavailable 或等价结构化错误,而不是自动选择 advanced 或用 flash 内容替代。错误码见 错误码体系

默认选择策略是请求时的选择逻辑,不是长期缓存语义。任务入队、缓存命中、产物目录和结果 metadata 应使用实际选择的实体 tier(例如 basicstandardadvanced),避免默认选择与实体 tier 产生重复缓存。

读取已有缓存时不使用这套解析默认顺序。mineru read doc:{short_id} 不带 /tier:{tier} 时不会创建新解析,应在已缓存的非 flash 结果中选择最高质量 tier,顺序为 advanced -> standard -> basic;没有非 flash 缓存时返回错误。

4. Flash

flash 随 MinerU 默认安装,面向没有额外 runtime 依赖、GPU 或加速器硬件的用户。它的质量通常最低,但必须足够快。

flash 的核心用途是支撑大量文件的自动发现和低成本预处理。MinerU 的 watch 机制会发现很多文件;在系统刚看到这些文件时,并不知道每个文件的价值,也不适合立即使用高算力方案处理。因此 watch 默认使用 flash 快速提取最基础内容,用于建立搜索索引和后续发现。

P0 不做基于启发式的自动提示或自动排队升级。watch 使用 flash 后,如果需要在后台自动解析到 basicstandardadvanced,必须来自用户显式配置的 parsing-rules;系统不根据文件名、内容特征、搜索命中或“高价值文档”判断自行升级。

flash 不应被当成 PDF/image 默认阅读质量。当 Agent 或用户决定真正读取 PDF/image 文档时,需求已经从“发现它”变成“尽可能准确地理解它”,此时未指定 tier 应使用默认选择策略,并解析到可用的非 flash 质量 tier。EPUB/Office/HTML/CSV 这类仅支持 flash tier 的输入没有质量 tier 分层,按 flash 语义处理。其它 text 直接读取。

只有在用户明确指定 flash 时,才返回 flash 的解析内容作为最终阅读结果。

5. Basic

basic 是基础解析 tier,当前使用 hybrid-enginemedium effort。它需要额外 runtime 依赖,是一系列本地模型串联的解析方案。

basic 可以在 CPU 上运行,也可以由 GPU 加速。GPU 和显存不是启用 basic 的硬门槛,但会影响速度、吞吐和稳定性。因此 basic 是一个算力消耗较低、质量中等、仍然基于模型的解析方案。

basic 的核心价值是本地隐私解析:当用户不接受把文档发送到远端解析,同时硬件又不是特别高端时,basic 应成为本地可用的最佳默认方案。

本地 managed parse server 只有 basicstandard 两个启动能力上限,两者都要求至少 16GB 总内存。Standard 服务同时提供 Standard 和 Advanced 请求能力。低于该基线时,不建议启用本地 managed 质量 tier;应考虑远端解析,或在用户明确接受低质量时显式使用 flash

6. Standard

standard 是 MinerU 的高质量 tier,也是 mineru.net/api 当前提供的解析层级。

standard 代表高质量解析能力。它既可以由 mineru.net/api 提供,也可以由本地高端硬件运行。

本地 managed standard 需要安装 VLM 相关 runtime 依赖,要求至少 16GB 总内存,并满足以下本地加速器条件之一:

  • Volta 或更新架构的 NVIDIA GPU,且可供 MinerU 使用的 VRAM 至少 8GB。
  • Apple Silicon,且统一内存至少 16GB。
  • MinerU 支持的特殊 AI 加速器,例如 npugcumusamlusdaa

standard 适合复杂版面、学术论文、高价值文档和多数高质量解析场景。它的代价是更高的算力、显存、等待时间或远端调用成本。

7. Advanced

advanced 是当前公开 tier 中最高的本地/自部署档位。

它适合极高质量要求、专家批处理或自部署服务。advancedstandard 的本地硬件要求相同,复用 mineru[standard] extra 和 Standard 模型集;区别是 advanced 会消耗更多推理算力,通常需要更长解析时间,并可能带来更高运行成本。准备本地 Advanced 环境时安装 Standard extra、使用 mineru-kit models download --tier standard,并以 Standard 启动 parse-server;解析请求再显式选择 --tier advanced。Advanced 不需要也不支持独立的服务启动配置。

8. 隐私优先与质量优先

MinerU 的 tier 策略同时遵守隐私优先和质量优先。

8.1 隐私优先

默认不上传文档。用户没有显式使用 --remote 或等价远端配置时,MinerU 不会把文档发送到 mineru.net/api

本地可用能力不足时,应返回可解释错误,而不是静默上传。

8.2 质量优先

用户或 Agent 主动读取 PDF/image 文档时,默认应解析到可用的非 flash 质量 tier。

如果 basicstandardadvanced 都不可用,且远端也不可用,系统应报错,而不是擅自把 flash 结果作为最终阅读结果返回。

flash 结果可以用于索引、发现、预览和提示用户选择更高 tier;只有用户明确选择 flash 时,才可作为最终解析返回。

9. 执行路径

请求 默认执行路径
watch 自动发现文件 本地 flash
mineru-kit api-server 未传 --tier standard 作为服务默认 tier
mineru-kit parse local 模式未传 --tier / --backend PDF/image 直接按 standard 解析;EPUB/Office/HTML/CSV 按 flash 语义处理;其它 text 不作为解析输入
watch 命中 parsing-rule 且 rule 指定 tier PDF 按 rule 中的 tier、页码范围和 remote 配置执行;image 按 tier 和 remote 整文件执行并忽略 page_rangeEPUB/Office/HTML/CSV 忽略 rule tier、page_range 和 remote,按 flash 整本解析;其它 text 只入库和索引
watch 命中 parsing-rule 但 rule 未指定 tier PDF/image 按 standard -> advanced -> basic -> flash 选择;EPUB/Office/HTML/CSV 按 flash;其它 text 只入库和索引
用户主动 parse,未指定 tierHTTP API 传 JSON nullPython SDK 传 None PDF/image 有能力发现上下文时按 standard -> advanced -> basic 选择;EPUB/Office/HTML/CSV 按 ADR-0024ADR-0028 归一为 flash;其它 text 不进入解析
用户主动指定 --tier flash 本地 flash
用户主动指定 --tier basic 本地 basic;不可用时报错
用户主动指定 --tier standard 本地 standard;显式 remote 时使用 mineru.net/api standard
用户主动指定 --tier advanced 本地或自部署 Advanced;不可用时报错
用户显式 --remote 允许上传到 mineru.net/api,使用远端 standard

执行路径需要与 系统架构 中的 ParseWorker 路由保持一致。

10. 对 CLI/API/SDK 的要求

CLI、API 和 SDK 暴露 tier 时,应遵守同一语义:

  • 对用户显示 tier,不显示具体 backend 名称作为主要选择项。
  • 公开 tier 取值包括 flashbasicstandardadvanced
  • CLI 不传 --tier、HTTP API 省略 tier 或传 JSON null、Python SDK 传 None,表示使用当前入口按文件类型定义的默认选择策略。
  • 没有能力列表的启动服务或直接解析场景默认使用 standard
  • PDF/image 有能力发现上下文时,默认选择策略按 standard -> advanced -> basic 解析为非 flash 质量 tier。
  • PDF/image 默认阅读质量不能静默降级到 flash
  • 当更高 tier 不可用时,应返回结构化错误和修复建议。
  • 当用户显式选择 flash 时,可以返回 flash 内容。
  • --remote 或等价字段必须是显式选择。

11. 未决问题

与 tier 相关的未决问题集中维护在 开放问题清单