Dolphin-1.5低显存量化部署实操:4GB显存服务器跑通1.4秒/页的文档解析
2026/9/19 23:38:57 网站建设 项目流程

Dolphin-1.5低显存量化部署实操:4GB显存服务器跑通1.4秒/页的文档解析

【免费下载链接】DolphinThe official repo for “Dolphin: Document Image Parsing via Heterogeneous Anchor Prompting”, ACL, 2025.项目地址: https://gitcode.com/GitHub_Trending/dolphin33/Dolphin

TensorRT-LLM 路线下单页文档解析 1.4 秒(原生 PyTorch 为 28.6 秒/页),显存占用 1.9GB(原生 8.7GB),精度保持率 95.8%。这是一份 Dolphin-1.5 文档解析模型低显存量化部署的实操记录,面向想在自有服务器上复现文档解析提速的开发者,从环境安装、引擎转换到批量推理逐段可复现。

✅ 选型先行:低显存部署的三条路线怎么选

先给结论:4GB 级显存直接上 TensorRT-LLM,环境里有 vLLM 且不想构建引擎时用它兜底,原生 PyTorch 只适合精度基准测试。三条路线实测数据如下:

部署方案平均解析时间显存占用精度保持率
原生 PyTorch28.6秒/页8.7GB100%
vLLM FP164.2秒/页5.3GB99.2%
vLLM INT41.8秒/页2.1GB96.5%
TensorRT-LLM1.4秒/页1.9GB95.8%

TensorRT-LLM 用约 4.2% 的精度损耗换取 28.6→1.4 秒/页的解析提速和 8.7→1.9GB 的显存下降,是本文主推路线;vLLM INT4 精度保留更高(96.5%),适合对精度更敏感的场景。

项目背景一句话:Dolphin 是字节跳动的 0.3B 轻量文档解析模型,采用"页面级布局分析 → 元素级并行解析"两阶段架构;Dolphin-1.5 在保持 0.3B 体量的同时,文本解析错误率降低 26%、公式识别准确率提升 19%、表格结构恢复分数提高 13%。

📦 环境准备与模型下载

流程很短:克隆仓库、装依赖、拉模型,全程三条命令。

基础环境:Linux(Ubuntu 20.04+)、Python 3.8–3.10、NVIDIA 显卡且显存 ≥4GB。

# 克隆仓库并安装依赖(requirements.txt 锁定了 torch 2.6.0 等版本) git clone https://gitcode.com/GitHub_Trending/dolphin33/Dolphin cd Dolphin && pip install -r requirements.txt

模型权重约 1.2GB,来自 Hugging Face,需要 git-lfs 支持:

# 把 Dolphin-1.5 权重拉到 ./hf_model(约1.2GB) git lfs install git clone https://huggingface.co/ByteDance/Dolphin-1.5 ./hf_model

🚀 TensorRT-LLM 引擎转换与启动(推荐路线)

这条路线显存最低、速度最快,代价是要装 TensorRT-LLM 环境并构建引擎,一次性成本。加速来自三个点:权重 INT8 量化、层融合优化、动态批处理。

第一步转换构建,一条命令完成权重转换、TensorRT 引擎构建和量化参数优化:

# 安装指定版本后执行官方转换脚本 pip install tensorrt_llm==0.18.1 bash deployment/tensorrt_llm/convert_dolphin.sh

脚本入口是 deployment/tensorrt_llm/convert_dolphin.sh,跑完会在tmp/trt_engines/下生成视觉编码器与 LLM 两份引擎产物。第二步启动 API 服务:

# 指向已构建的视觉编码器与 bfloat16 LLM 引擎,批大小8 python deployment/tensorrt_llm/api_server.py \ --hf_model_dir ./hf_model \ --visual_engine_dir tmp/trt_engines/Dolphin/vision_encoder \ --llm_engine_dir tmp/trt_engines/Dolphin/1-gpu/bfloat16 \ --max_batch_size 8

服务入口为 deployment/tensorrt_llm/api_server.py:--visual_engine_dir--llm_engine_dir分别挂视觉编码器引擎和 LLM 引擎,--max_batch_size 8控制并发元素解析的批大小,显存吃紧时调小即可。

⚡ vLLM AWQ 量化启动速览(备选)

不用构建引擎、装完即跑,但 INT4 下速度(1.8秒/页)与显存(2.1GB)均略逊于 TensorRT-LLM。

# 安装 vLLM 主包与 Dolphin 插件 pip install vllm>=0.9.0 pip install vllm-dolphin==0.1
# awq 开启 INT4 量化,限制单批 token 数控显存 python deployment/vllm/api_server.py \ --model ./hf_model \ --hf-overrides '{"architectures": ["DolphinForConditionalGeneration"]}' \ --tensor-parallel-size 1 \ --quantization awq \ --max-num-batched-tokens 4096

--hf-overrides显式声明模型架构类,避免加载失败;--quantization awq即 INT4 路径,不想降精度可去掉该参数退回 FP16。入口为 deployment/vllm/api_server.py。

🔍 验证与批量处理

部署先单图验证再上批量,确认输出正常后把--input_path换成目录即可整目录并行。

页面级单图验证(输出结构化 JSON 与 Markdown 到./results):

python demo_page.py --model_path ./hf_model --save_dir ./results \ --input_path ./demo/page_imgs/page_1.png

页面级批量解析,--max_batch_size 8让单页内多个元素并行解码:

python demo_page.py --model_path ./hf_model --save_dir ./results \ --input_path ./demo/page_imgs --max_batch_size 8

元素级批量解析,--element_type table指定只解析表格,批大小可放到 16:

python demo_element.py --model_path ./hf_model --save_dir ./results \ --input_path ./demo/element_imgs --element_type table --max_batch_size 16

🛠 排障速查

现象原因处理
推理阶段显存不足(OOM)批大小或量化档位超出显存上限--max_batch_size 4降批;vLLM 加--quantization awq走 INT4;双卡场景--tensor-parallel-size 2
vLLM 启动即报架构不匹配Dolphin 自定义架构未被自动识别启动时补--hf-overrides '{"architectures": ["DolphinForConditionalGeneration"]}'
解析精度明显低于原生 PyTorch量化引入误差优先用 BF16 引擎;推理参数设--temperature 0.0;更新到最新模型版本

以上流程适用于以文本、公式、表格为主的文档在企业级低显存 Linux 服务器上的批量处理场景。更多参数细节可查仓库内的 README.md 与 requirements.txt。

【免费下载链接】DolphinThe official repo for “Dolphin: Document Image Parsing via Heterogeneous Anchor Prompting”, ACL, 2025.项目地址: https://gitcode.com/GitHub_Trending/dolphin33/Dolphin

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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询