ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

1.4秒解析一页PDF:Dolphin-1.5低配显卡部署与调优手记

2026/9/19 11:07:35 拓冰建站 浏览量
1.4秒解析一页PDF:Dolphin-1.5低配显卡部署与调优手记 1.4秒解析一页PDFDolphin-1.5低配显卡部署与调优手记【免费下载链接】DolphinThe official repo for “Dolphin: Document Image Parsing via Heterogeneous Anchor Prompting”, ACL, 2025.项目地址: https://gitcode.com/GitHub_Trending/dolphin33/DolphinDolphin是0.3B参数的文档图像解析模型PDF或扫描件喂进去Markdown和结构化JSON出来。本文从一张8GB显存的显卡加一批待处理扫描件讲起4条命令跑通全流程换到vLLM路线后单页解析从28.6秒降到4.2秒。项目速览Dolphin把页面级布局分析和元素级内容解析塞进同一个0.3B视觉语言模型里走先定位、再并行解码的两阶段路线阶段一整页输入按自然阅读顺序输出每个元素的边界框和类型段落、表格、公式、代码、插图阶段二把各元素裁出来用不同的异构锚点提示并行解码——表格、公式、代码、文本各走各的prompt兜底机制拍照歪斜页面的框重叠超过25%阈值时整页降级为扭曲页模式一次性解析官方基准数据上1.5版在OmniDocBench的Overall得分为85.061.0版为74.67文本edit距离0.085公式CDM 79.44表格TEDS 84.25。整体架构如下方案怎么选仓库内默认走Transformers原生推理官方另提供了vLLM和TensorRT-LLM两条加速路线差别在于你要搭多少东西、换回多少速度方案适用场景硬件门槛上手难度Transformers原生本仓库默认验证效果、小批量离线跑≥8GB显存实测峰值8.7GB低vLLM官方插件动态批处理在线API、高并发批量FP16需≥8GB实测5.3GBINT4可降到≥4GB实测2.1GB中TensorRT-LLM单机吞吐极限≥4GB实测1.9GB另需20~40分钟构建引擎高日均解析量在千页以内、先确认精度够不够用的用原生路线就行要单页2秒以内直接上vLLMINT4和TensorRT-LLM两条路才能把4GB显存的卡用起来。最短可运行路径先把服务跑起来不谈任何加速。环境要求Python 3.10、NVIDIA显卡加CUDA 12git clone https://gitcode.com/GitHub_Trending/dolphin33/Dolphin cd Dolphin git checkout v1.5 # 0.3B轻量版master分支默认是v23B低配卡不建议 pip install -r requirements.txt下载预训练权重约1.2GB到 ./hf_modelpip install huggingface_hub huggingface-cli download ByteDance/Dolphin-1.5 --local-dir ./hf_model用仓库自带的示例页解析一遍python demo_page.py --model_path ./hf_model \ --input_path ./demo/page_imgs/page_4.png \ --save_dir ./resultspage_4.png是仓库里的论文页示例857x1109跑完去 ./results/markdown/ 看结果demo_page.py 的关键参数说明参数默认值说明--max_batch_size4每轮并行解码的元素数显存紧张就降到2--input_path无单文件jpg/png/pdf或整个目录PDF按896px自动拆页--save_dir输入所在目录产出 output_json、markdown、layout_visualization 三类--post_process关闭对生成的Markdown做后处理表格合并等手里只有切好的表格、公式这类单元素时用 demo_element.py靠 --element_type table|formula|text|code 指定元素类型即可。效果验证先看产物是否合理./results/markdown/*.md是解析正文layout_visualization/*.png把每个元素的边界框和阅读顺序编号叠在原图上肉眼就能判断布局切分有没有错JSON里每个元素带bbox坐标方便下游程序精确定位。性能参考单张NVIDIA卡实测BF16、约20个元素的页具体数值随卡浮动量级关系不变推理方案单页解析耗时显存峰值精度保持基准Overall 85.06Transformers原生28.6s8.7GB100%vLLM FP164.2s5.3GB99.2%vLLM INT4AWQ1.8s2.1GB96.5%TensorRT-LLM1.4s1.9GB95.8%vLLM路线换来6.8倍加速、少占3.9GB显存Overall只掉0.8个点TensorRT-LLM把加速拉到20.4倍精度代价4.2%。表格和公式的解析质量可以直接对照仓库里的样例调优与取舍显存OOM。现象--max_batch_size 加到8时直接CUDA out of memory。 原因元素并行解码会同时把N个裁剪图压进一张卡1600px裁剪图的视觉token加上4096的输出token显存占用随批大小线性涨。 改法max_batch_size降到28GB卡跑原生路线默认4够用或者走INT4/AWQ量化模型本体压到2.1GB。大表格输出被截断。现象大表格的Markdown缺行、结尾收不住。 原因demo_page.py 里解码上限是max_new_tokens4096大表格的标记文本很容易顶到天花板。 改法别依赖页面级一把梭先裁出表格走元素级接口 --element_type table单元素上下文短、留足输出空间。CPU上慢一个量级。现象没有CUDA时单页超过1分钟。 原因代码检测到无GPU会自动退回float32视觉编码器吞吐骤降而输入图仍按最大1600px喂进去。 改法这条路别上CPU生产实在要用先把输入图缩到1600px以内——模型内部本来就有这个上限喂更大的图纯属白算。vLLM启动报架构未注册。现象加载模型时报architecture不支持。 原因Dolphin是自定义注册的架构原版vLLM不认识。 改法安装官方Dolphin的vLLM插件启动时通过 --hf-overrides 显式声明架构vLLM版本要求≥0.9.0。卡点速查症状pip install -r requirements.txt 在triton或torch上报版本冲突。 原因requirements.txt 锁死torch2.6.0、triton3.2.0、transformers4.51.0三者必须成套。 解法开一个干净的venv安装别和已有torch环境混装。症状解析日志出现Falling back to distorted_page mode。 原因拍照歪斜页面的元素框重叠超过25%阈值check_bbox_overlaputils/utils.py触发整页兜底解析。 解法先做透视矫正再喂给模型畸变太狠就接受兜底结果别硬调。症状PDF页的小字识别错误偏多。 原因utils/utils.py 中convert_pdf_to_images按896px栅格化高DPI页面缩完小字糊掉。 解法把target_size参数调到1280耗时增加有限小字识别肉眼可见地变稳。症状权重下载中断./hf_model里只有残缺分片。 原因权重约1.2GB网络中断后只留下不完整文件。 解法huggingface-cli download支持断点续传重跑同一条命令即可目录里config.json和safetensors分片齐了就能加载。0.3B版适合6~8GB显存卡做离线批处理单页要进2秒就上vLLM只有要压榨最后30%吞吐时才值得为TensorRT-LLM多花构建时间部署细节以仓库内 README.md 为准踩到报错的话把完整日志贴出来好定位。【免费下载链接】DolphinThe official repo for “Dolphin: Document Image Parsing via Heterogeneous Anchor Prompting”, ACL, 2025.项目地址: https://gitcode.com/GitHub_Trending/dolphin33/Dolphin创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考