MinerU 是一款开源的智能文档解析工具,由OpenDataLab团队开发维护。它能够将复杂的文档内容(PDF、图片、扫描件等)转换为结构化的Markdown格式,广泛应用于知识库构建、智能问答、文档数字化等场景。
| 能力 | 说明 |
|---|---|
| 文本识别 | 高精度OCR,支持多语言(中文、英文等) |
| 公式解析 | 数学公式识别并转换为LaTeX格式 |
| 表格识别 | 复杂表格结构解析,保持原始布局 |
| 图片处理 | 图片OCR、图表识别、内容提取 |
| 版面分析 | 智能识别文档结构(标题、段落、列表等) |
MinerU采用多种AI模型组合:
| 软件组件 | 版本 | 说明 |
|---|---|---|
| MinerU | 3.1.1 | 文档解析主程序 |
| torch | 2.9.0+cpu | PyTorch深度学习框架 |
| torch_npu | 2.9.0.post1+gitee7ba04 | PyTorch NPU扩展 |
| torchvision | 0.24.0 | PyTorch视觉库 |
| torchaudio | 2.9.0 | PyTorch音频库 |
| vllm | 0.18.0+empty | VLLM推理引擎 |
| vllm_ascend | 0.18.0rc1 | VLLM NPU适配版本 |
| transformers | 4.57.6 | HuggingFace Transformers |
| mineru_vl_utils | 0.2.6 | MinerU视觉语言工具 |
| 项目 | 版本 |
|---|---|
| NPU-SMI | 25.2.0 |
| NPU型号 | Ascend 910B3 |
| AICore架构 | Da Vinci |
| HBM显存 | 64GB per NPU |
| 模型 | 版本/路径 | 大小 |
|---|---|---|
| Pipeline模型 | PDF-Extract-Kit-1.0 | 2.4GB |
| VLM模型 | MinerU2.5-Pro-2604-1.2B | 2.2GB |
| 公式模型 | unimernet_small | 776MB |
| 中文公式模型 | pp_formulanet_plus_m | 591MB |
# 模型源配置
export MINERU_MODEL_SOURCE=local
export MINERU_MODEL_DIR=/root/.cache/mineru_models
# NPU配置
export HCCL_OP_EXPANSION_MODE=AIV
export MINERU_DEVICE_MODE=npu
# 性能参数
export MINERU_API_MAX_CONCURRENT_REQUESTS=12
export MINERU_HYBRID_BATCH_RATIO=16
export MINERU_PDF_RENDER_THREADS=8| 组件组合 | 兼容性 | 说明 |
|---|---|---|
| torch + torch_npu | ✓ 兼容 | 版本号一致(2.9.0) |
| vllm + vllm_ascend | ✓ 兼容 | 版本号一致(0.18.0) |
| torch_npu + NPU驱动 | ✓ 兼容 | 需匹配CANN版本 |
| transformers + mineru | ✓ 兼容 | 4.57.6支持最新模型 |
注意:
| 项目 | 配置 |
|---|---|
| NPU型号 | Huawei Ascend 910B3 |
| NPU数量 | 单卡/多卡 |
| 单卡显存 | 64GB HBM |
# 启动单实例
./start_optimized.sh# 启动2卡Router模式
./start_router.sh
# 或前台运行(调试)
./start_router_foreground.sh| 参数 | 推荐值 | 说明 |
|---|---|---|
| gpu-memory-utilization | 0.85-0.90 | 根据显存容量调整 |
| batch_ratio | 16 (≥32GB) | 根据显存自动计算 |
| max-concurrency | NPU数×1.5 | Router模式可更高 |
参考MinerU安装
获取当前仓库打包的镜像mineru-ascend.tar
# 基本启动
# 优化配置启动
docker run -it -u root -d --net=host \
--privileged \
--ipc=host \
--device=/dev/davinci_manager \
--device=/dev/devmm_svm \
--device=/dev/hisi_hdc \
-v /usr/local/Ascend/driver:/usr/local/Ascend/driver \
-v /usr/local/dcmi:/usr/local/dcmi \
-v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \
-v /usr/local/sbin:/usr/local/sbin \
-v /usr/local/Ascend/driver/tools/hccn_tool:/usr/local/Ascend/driver/tools/hccn_tool \
-v /root/.cache/modelscope/hub/models:/root/.cache/modelscope/hub/models \
--name mineru-v2 \
mineru:npu-latest \
/bin/bash# 下载官方Dockerfile
wget https://gcore.jsdelivr.net/gh/opendatalab/MinerU@master/docker/china/npu.Dockerfile
# 或从GitHub下载
wget https://raw.githubusercontent.com/opendatalab/MinerU/master/docker/china/npu.Dockerfile# 查看当前vllm-ascend版本配置
grep "vllm-ascend" npu.Dockerfile
# 修改为指定版本(0.18.0)
sed -i 's/vllm-ascend.*$/vllm-ascend==0.18.0/' npu.Dockerfile
# 或手动编辑
vim npu.Dockerfile
# 找到pip install vllm-ascend相关行
# 修改为:pip install vllm-ascend==0.18.0# 构建镜像(使用host网络加速下载)
docker build --network=host -t mineru:npu-vllm-0.18.0 -f npu.Dockerfile .
# 构建过程输出
# [+] Building 123.4s (15/15) FINISHED
# => [internal] load build definition from npu.Dockerfile
# => [internal] load .dockerignore
# => [internal] load metadata
# => [1/10] FROM ubuntu:22.04
# => [2/10] RUN apt-get update && apt-get install -y ...
# => [3/10] RUN pip install torch==2.9.0 torch_npu==2.9.0 ...
# => [4/10] RUN pip install vllm==0.18.0 vllm-ascend==0.18.0 ...
# => [5/10] RUN pip install mineru==3.1.1 ...
# ...
# 查看构建结果
# 查看镜像信息
docker inspect mineru:npu-vllm-0.18.0
# 查看镜像内软件版本
docker run --rm mineru:npu-vllm-0.18.0 pip list | grep -E "torch|vllm|mineru"
# 测试启动(不挂载NPU)
docker run --rm mineru:npu-vllm-0.18.0 mineru-api --help修改/usr/local/lib/python3.10/site-packages/mineru/cli/router.py文件,支持mineru route 多卡部署,如果不适用mineru route 可以不做修改。
diff --git a/mineru/cli/router.py b/mineru/cli/router.py
index 8d924f3..6cad6d9 100644
--- a/mineru/cli/router.py
+++ b/mineru/cli/router.py
@@ -349,7 +349,10 @@ class ManagedLocalServer:
env["MINERU_API_OUTPUT_ROOT"] = str(output_root)
env["MINERU_API_DISABLE_ACCESS_LOG"] = "1"
if self.gpu is not None:
- env["CUDA_VISIBLE_DEVICES"] = str(self.gpu)
+ if os.getenv("MINERU_DEVICE_MODE") == "npu":
+ env["ASCEND_RT_VISIBLE_DEVICES"] = str(self.gpu)
+ else:
+ env["CUDA_VISIBLE_DEVICES"] = str(self.gpu)
command = [
sys.executable,
-- 修改内容如上所示。
| 参数 | 默认值 | 优化值 | 调优依据 |
|---|---|---|---|
max-concurrency | 3 | 12 | 8卡NPU可支持更高并发;实测并发测试验证 |
gpu-memory-utilization | 0.85 | 0.90 | 61GB显存充足,提高利用率不影响稳定性 |
max-num-batched-tokens | 4096 | 8192 | VLM批处理token翻倍,提升吞吐 |
MINERU_API_MAX_CONCURRENT_REQUESTS | 3 | 12 | API层面并发限制,与max-concurrency匹配 |
MINERU_HYBRID_BATCH_RATIO | auto | 16 | 61GB显存→推荐16(32GB+:16, 16GB+:8) |
MINERU_PDF_RENDER_THREADS | 4 | 8 | 多核CPU可并行渲染更多页面 |
根据源码逻辑 (hybrid_analyze.py),Batch Ratio根据显存自动计算:
# Batch Ratio计算逻辑
if gpu_memory >= 32GB: batch_ratio = 16
elif gpu_memory >= 16GB: batch_ratio = 8
elif gpu_memory >= 12GB: batch_ratio = 4
elif gpu_memory >= 8GB: batch_ratio = 2
else: batch_ratio = 1当前61GB显存 → 最优batch_ratio = 16
由于在调优过程还涉及到使用不同的模型,需要明确精度评估方式,全面评估解析质量:
| 项目 | 说明 |
|---|---|
| 公式 | 字符级精度 = 提取字符数 / 最大字符数 × 100% |
| 包含内容 | 所有字符(含空格、换行、Markdown标记) |
| 敏感因素 | 格式差异(标题级别、空格数量) |
| 适用场景 | 快速对比提取量 |
| 项目 | 说明 |
|---|---|
| 公式 | 标准化后内容匹配度 |
| 标准化处理 | 移除空格、标题标记、公式标记 |
| 忽略因素 | 格式差异(# vs ##,空格数量等) |
| 适用场景 | 评估核心内容提取质量 |
| 差异类型 | 示例 | 内容级精度 | 说明 |
|---|---|---|---|
| 格式差异 | 标题# vs ## | 一致 | 仅格式不同 |
| 空格差异 | 空格数量/位置不同 | 一致 | 仅排版不同 |
| 公式格式 | 行内$ vs 块$$ | 一致 | 仅格式不同 |
| 内容缺失 | 公式/表格未提取 | 降低 | 实质内容丢失 |
| 识别错误 | 文字识别错误 | 降低 | 内容错误 |
| 文档 | Backend | 字符数 | 字符级精度 | 内容级精度 | 结论 |
|---|---|---|---|---|---|
| 纯文本 | pipeline | 1664 | 100% | 一致 | 无差异 |
| 纯文本 | hybrid | 1662 | 99.9% | 一致 | 仅格式差异 |
| 公式 | hybrid(full) | 1963 | 100% | 一致 | 公式完整 |
| 公式 | pipeline(lite) | 961 | 49% | 缺失 | 公式不提取 |
| 表格 | pipeline(full) | 2808 | 100% | 一致 | 表格完整 |
| 表格 | hybrid(full) | 1518 | 54% | 缺失 | 表格不完整 |
用户可以根据自己的需求选择合适的模型参数,如果是速度优先,优选pipeline模型,并关掉不相关的内容提取方法。
| 场景 | 推荐Backend | 推荐配置 | 耗时范围 | 精度 | 适用情况 |
|---|---|---|---|---|---|
| 纯文本文档 | pipeline | ocr | 1.64-1.76s | 100% | 最快且精度最高 |
| 含公式文档 | hybrid | full | 17s | 100% | 公式解析刚需 |
| 含表格文档 | pipeline | full | 2-7s | 100% | 表格解析需求 |
| 含图片文档 | pipeline | lite | 1.68s | 100% | 图片OCR |
| 综合文档 | pipeline | full | 7s | 100% | 全内容解析 |
| 用户可以根据自己的文档选择合适的backend |
用户需求分析
│
├─ 需要公式解析?
│ ├─ YES → hybrid-auto-engine(full) 或 pipeline(full)
│ │ 精度优先: hybrid (17s, 100%)
│ │ 速度优先: pipeline (16s, 89%)
│ │
│ └─ NO → 继续判断
│
├─ 需要表格解析?
│ ├─ YES → pipeline(full) 或 hybrid(full)
│ │ 推荐: pipeline (2-7s, 100%)
│ │
│ └─ NO → 继续判断
│
├─ 需要图片OCR?
│ ├─ YES → pipeline(lite) 或 hybrid(lite)
│ │ 推荐: pipeline (1.68s, 100%)
│ │
│ └─ NO → pipeline(lite/ocr)
│ 推荐: pipeline(ocr) (1.59-1.64s, 最快)
│
└─ 复杂排版/VLM需求?
└─ YES → vlm-auto-engine (6-9s)
└─ NO → pipeline(lite)| Backend | 配置 | 优化耗时 | 默认耗时 | 提升 | 精度 |
|---|---|---|---|---|---|
| pipeline | ocr | 1.64s | 1.76s | +7% | 100% |
| pipeline | lite | 2.21s | 1.68s | -32% | 100% |
| pipeline | full | 2.14s | 1.62s | -32% | 100% |
| hybrid | lite | 3.92s | 4.36s | +10% | 99.9% |
| hybrid | full | 7.63s | 5.02s | -52% | 99.9% |
| vlm | lite | 4.30s | 4.30s | 0% | 99.9% |
| vlm | full | 4.90s | 4.87s | -1% | 99.9% |
结论: Pipeline(ocr)最快且精度最高
| Backend | 配置 | 优化耗时 | 默认耗时 | 提升 | 精度 |
|---|---|---|---|---|---|
| pipeline | lite | 1.59s | 2.17s | +27% | 49% |
| pipeline | ocr | 1.63s | 1.86s | +12% | 49% |
| pipeline | full | 16.47s | 9.04s | -83% | 88.7% |
| hybrid | lite | 8.31s | 8.44s | +1% | 59% |
| hybrid | full | 17.02s | 16.07s | -6% | 100% |
| vlm | lite | 9.03s | 8.56s | -5% | 58.9% |
| vlm | full | 9.18s | 8.63s | -6% | 65.1% |
结论:
| Backend | 配置 | 优化耗时 | 默认耗时 | 提升 | 精度 |
|---|---|---|---|---|---|
| pipeline | lite | 1.71s | 1.61s | -6% | 24% |
| pipeline | ocr | 1.71s | 1.63s | -5% | 24% |
| pipeline | full | 2.05s | 5.22s | +61% | 100% |
| hybrid | lite | 5.83s | 5.92s | +2% | 24% |
| hybrid | full | 7.01s | 6.73s | -4% | 54% |
| vlm | lite | 5.27s | 5.19s | -2% | 24% |
| vlm | full | 5.54s | 5.36s | -3% | 54% |
结论: Pipeline(full)优化后提升61%
| Backend | 配置 | 优化耗时 | 默认耗时 | 提升 | 精度 |
|---|---|---|---|---|---|
| pipeline | lite | 2.08s | 2.53s | +18% | 52.7% |
| pipeline | ocr | 2.04s | 2.58s | +21% | 52.7% |
| pipeline | full | 6.90s | 7.12s | +3% | 100% |
| hybrid | lite | 6.65s | 7.13s | +7% | 52.6% |
| hybrid | full | 10.46s | 10.56s | +1% | 77.5% |
| vlm | lite | 6.19s | 6.11s | -1% | 54.3% |
| vlm | full | 6.73s | 6.15s | -9% | 70.0% |
结论: Pipeline(lite)优化后提升18%
| 并发数 | 默认吞吐 | 优化吞吐 | 吞吐提升 | 默认最慢 | 优化最慢 | 最慢改善 |
|---|---|---|---|---|---|---|
| 1 | 0.11 req/s | 0.10 req/s | -9% | 9.45s | 9.83s | -4% |
| 2 | 0.13 req/s | 0.14 req/s | +8% | 15.42s | 14.69s | +5% |
| 4 | 0.14 req/s | 0.15 req/s | +7% | 29.29s | 26.38s | +10% |
| 8 | 0.14 req/s | 0.18 req/s | +29% ⭐ | 55.36s | 45.41s | +18% ⭐ |
关键发现:
mineru route部署提供了异步接口用来进行快速提交pdf解析任务,模型排队进行处理,但是对于同步请求而言,请求时延mineru-api耗时更短。
| 类型 | pdf_doc_only耗时 |
|---|---|
mineru-api | 1.6 |
mineru-route | 2.9 |
| 异步获取内容方式。 |
URL="http://localhost:8000"
FILE="$1"
ID=$(curl -s -X POST "$URL/tasks" -F "files=@$FILE" | python3 -c "import sys,json;print(json.load(sys.stdin)['task_id'])")
echo "Task: $ID"
while true; do
R=$(curl -s "$URL/tasks/$ID")
S=$(echo "$R" | python3 -c "import sys,json;print(json.load(sys.stdin)['status'])")
[ "$S" = "completed" ] && echo "$R" && break
[ "$S" = "failed" ] && echo "$R" && exit 1
sleep 2
done| 参数 | 类型 | 说明 | 可选值 |
|---|---|---|---|
backend | string | 解析引擎 | pipeline, hybrid-auto-engine, vlm-auto-engine |
formula_enable | boolean | 公式解析 | true, false |
table_enable | boolean | 表格解析 | true, false |
return_md | boolean | 返回Markdown | true, false |
response_format_zip | boolean | ZIP格式返回 | true, false |
# 最快模式 - 仅OCR
curl -X POST http://127.0.0.1:8000/file_parse \
-F "files=@your_pdf.pdf" \
-F "backend=pipeline" \
-F "formula_enable=false" \
-F "table_enable=false" \
-F "return_md=true" \
-F "response_format_zip=true"
# 完整模式 - 含公式表格
curl -X POST http://127.0.0.1:8000/file_parse \
-F "files=@your_pdf.pdf" \
-F "backend=pipeline" \
-F "formula_enable=true" \
-F "table_enable=true" \
-F "return_md=true" \
-F "response_format_zip=true"# 精度优先
curl -X POST http://127.0.0.1:8000/file_parse \
-F "files=@your_pdf.pdf" \
-F "backend=hybrid-auto-engine" \
-F "formula_enable=true" \
-F "table_enable=true" \
-F "return_md=true" \
-F "response_format_zip=true"
# 速度优先(lite模式)
curl -X POST http://127.0.0.1:8000/file_parse \
-F "files=@your_pdf.pdf" \
-F "backend=hybrid-auto-engine" \
-F "formula_enable=false" \
-F "table_enable=false" \
-F "return_md=true" \
-F "response_format_zip=true"# VLM模式 - 端到端解析
curl -X POST http://127.0.0.1:8000/file_parse \
-F "files=@your_pdf.pdf" \
-F "backend=vlm-auto-engine" \
-F "return_md=true" \
-F "response_format_zip=true"import requests
API_URL = "http://127.0.0.1:8000/file_parse"
def parse_pdf(pdf_path, backend="pipeline", formula=True, table=True):
"""解析PDF文档"""
with open(pdf_path, 'rb') as f:
files = {'files': f}
data = {
'backend': backend,
'formula_enable': str(formula).lower(),
'table_enable': str(table).lower(),
'return_md': 'true',
'response_format_zip': 'true'
}
response = requests.post(API_URL, files=files, data=data)
return response.content
# 使用示例
# 最快解析
result = parse_pdf("doc.pdf", backend="pipeline", formula=False, table=False)
# 精度解析
result = parse_pdf("doc.pdf", backend="hybrid-auto-engine", formula=True, table=True)
# VLM解析
result = parse_pdf("doc.pdf", backend="vlm-auto-engine")#!/bin/bash
# batch_process.sh - 批量处理PDF文档
PDF_DIR="$1"
BACKEND="${2:-pipeline}"
OUTPUT_DIR="${3:-batch_output}"
mkdir -p "$OUTPUT_DIR"
for pdf in "$PDF_DIR"/*.pdf; do
filename=$(basename "$pdf" .pdf)
echo "Processing: $filename"
curl -s -X POST http://127.0.0.1:8000/file_parse \
-F "files=@$pdf" \
-F "backend=$BACKEND" \
-F "formula_enable=false" \
-F "table_enable=false" \
-F "return_md=true" \
-F "response_format_zip=true" \
-o "$OUTPUT_DIR/${filename}.zip"
unzip -o "$OUTPUT_DIR/${filename}.zip" -d "$OUTPUT_DIR/$filename"
done
echo "Batch processing completed!"| 文件 | 说明 |
|---|---|
start.sh | 默认配置启动(后台运行) |
start_optimized.sh | 优化配置启动(后台运行,推荐) |
start_foreground.sh | 优化配置启动(前台运行,调试用) |
| 文件 | NPU数量 | 运行模式 | 并发 | 优化参数 | 说明 |
|---|---|---|---|---|---|
start_router.sh | 2卡 | 后台 | 24 | ✓ 全套优化 | 2卡Router模式(推荐入门) |
start_router_foreground.sh | 2卡 | 前台 | 24 | ✓ 全套优化 | 2卡Router模式(调试用) |
start_router_8npu.sh | 8卡 | 后台 | 96 | ✓ 全套优化 | 8卡Router模式(全卡部署) |
start_router_8npu_foreground.sh | 8卡 | 前台 | 96 | ✓ 全套优化 | 8卡Router模式(调试用) |
优化参数说明:
| 场景 | 推荐脚本 | 理由 |
|---|---|---|
| 入门测试 | start_router.sh (2卡) | 资源占用少,易于调试 |
| 生产部署 | start_router_8npu.sh (8卡) | 最大吞吐量,充分利用硬件 |
| 问题排查 | *_foreground.sh | 实时日志输出,便于定位问题 |
MinerU支持两种启动方式:
1. 后台运行(nohup方式)
# 使用启动脚本(推荐)
cd /root/mineru_start/bin
./start_optimized.sh
# 或手动启动
nohup mineru-api --enable-vlm-preload true --max-concurrency 12 --host 0.0.0.0 --port 8000 > mineru.log 2>&1 &特点:
2. 前台运行(调试方式)
# 直接启动(前台运行)
cd /root/mineru_start/bin
mineru-api --enable-vlm-preload true --max-concurrency 12 --host 0.0.0.0 --port 8000
# 或使用优化参数前台运行
env MINERU_MODEL_SOURCE=local MINERU_MODEL_DIR=/root/.cache/mineru_models \
HCCL_OP_EXPANSION_MODE=AIV \
MINERU_DEVICE_MODE=npu \
MINERU_API_MAX_CONCURRENT_REQUESTS=12 \
MINERU_HYBRID_BATCH_RATIO=16 \
mineru-api \
--enable-vlm-preload true \
--max-concurrency 12 \
--enable_prefix_caching true \
--gpu-memory-utilization 0.90 \
--max-num-batched-tokens 8192 \
--host 0.0.0.0 --port 8000特点:
#!/bin/bash
# start_foreground.sh - 前台运行启动脚本
export MINERU_MODEL_SOURCE=local
export MINERU_MODEL_DIR=/root/.cache/mineru_models
export HCCL_OP_EXPANSION_MODE=AIV
export MINERU_DEVICE_MODE=npu
export MINERU_API_MAX_CONCURRENT_REQUESTS=12
export MINERU_HYBRID_BATCH_RATIO=16
export MINERU_PDF_RENDER_THREADS=8
export MINERU_LOG_LEVEL=INFO
echo "=========================================="
echo "MinerU API Server (Foreground Mode)"
echo "=========================================="
echo "Press Ctrl+C to stop the server"
echo "=========================================="
mineru-api \
--enable-vlm-preload true \
--max-concurrency 12 \
--enable_prefix_caching true \
--gpu-memory-utilization 0.90 \
--max-num-batched-tokens 8192 \
--host 0.0.0.0 --port 80002卡Router模式(后台运行)
#!/bin/bash
# start_router.sh - 2卡Router模式启动脚本(优化配置)
export MINERU_ROUTER_LOCAL_GPUS=0,1
export MINERU_ROUTER_ENABLE_VLM_PRELOAD=true
export MINERU_ROUTER_GPU_MEMORY_UTILIZATION=0.90
export MINERU_API_MAX_CONCURRENT_REQUESTS=12
# 传递额外CLI参数给每个worker(JSON格式)
export MINERU_ROUTER_WORKER_ARGS_JSON='["--enable_prefix_caching", "true", "--max-num-batched-tokens", "8192"]'
nohup mineru-router \
--host 0.0.0.0 \
--port 8000 \
--local-gpus "0,1" \
--enable-vlm-preload true \
> mineru_router.log 2>&1 &2卡Router模式(前台运行)
#!/bin/bash
# start_router_foreground.sh - 2卡Router前台运行(优化配置)
export MINERU_ROUTER_LOCAL_GPUS=0,1
export MINERU_ROUTER_ENABLE_VLM_PRELOAD=true
export MINERU_ROUTER_GPU_MEMORY_UTILIZATION=0.90
export MINERU_API_MAX_CONCURRENT_REQUESTS=12
export MINERU_ROUTER_WORKER_ARGS_JSON='["--enable_prefix_caching", "true", "--max-num-batched-tokens", "8192"]'
echo "MinerU Router (2-NPU, Foreground)"
echo "Press Ctrl+C to stop"
mineru-router \
--host 0.0.0.0 \
--port 8000 \
--local-gpus "0,1" \
--enable-vlm-preload true| 参数 | 环境变量 | 说明 |
|---|---|---|
| GPU显存利用率 | MINERU_ROUTER_GPU_MEMORY_UTILIZATION=0.90 | 与单实例优化配置一致 |
| 最大并发请求 | MINERU_API_MAX_CONCURRENT_REQUESTS=12 | 每个worker的并发限制 |
| 前缀缓存 | MINERU_ROUTER_WORKER_ARGS_JSON | 传递--enable_prefix_caching true |
| 批量Token数 | MINERU_ROUTER_WORKER_ARGS_JSON | 传递--max-num-batched-tokens 8192 |
| 批处理比率 | MINERU_HYBRID_BATCH_RATIO=16 | 继承单实例优化配置 |
| 处理窗口 | MINERU_PROCESSING_WINDOW_SIZE=64 | 继承单实例优化配置 |
MINERU_ROUTER_WORKER_ARGS_JSON格式说明:
# JSON数组格式,传递CLI参数给每个worker
export MINERU_ROUTER_WORKER_ARGS_JSON='["--enable_prefix_caching", "true", "--max-num-batched-tokens", "8192"]'
# 多个参数示例
export MINERU_ROUTER_WORKER_ARGS_JSON='["--enable_prefix_caching", "true", "--max-num-batched-tokens", "8192", "--max-concurrency", "12"]'