3步搞定Dolphin模型迁移:从原始框架到Hugging Face生态无缝对接
【免费下载链接】Dolphin 项目地址: https://gitcode.com/GitHub_Trending/dolphin33/Dolphin
你是否还在为文档解析模型的迁移和部署而烦恼?本文将带你3步完成Dolphin模型从原始框架到Hugging Face生态的无缝对接,让你轻松实现文档图像的高效解析。读完本文,你将能够:获取Dolphin模型并完成环境配置、实现模型的加载与基本推理、掌握批量处理和性能优化技巧。
一、准备工作:获取模型与环境配置
首先,我们需要获取Dolphin模型并配置运行环境。Dolphin是一个轻量级的多模态文档图像解析模型,采用"分析-解析"的两阶段范式,能够高效处理文本段落、图表、公式和表格等复杂元素。
1.1 克隆项目仓库
使用以下命令克隆Dolphin项目仓库:
git clone https://gitcode.com/GitHub_Trending/dolphin33/Dolphin.git
cd Dolphin
1.2 安装依赖
安装项目所需的依赖包:
pip install -r requirements.txt
1.3 获取预训练模型
Dolphin-1.5的预训练模型可以从Hugging Face Hub下载。使用以下命令将模型下载到本地:
# 从Hugging Face Hub下载模型
git lfs install
git clone https://huggingface.co/ByteDance/Dolphin-1.5 ./hf_model
# 或使用Hugging Face CLI
pip install huggingface_hub
huggingface-cli download ByteDance/Dolphin-1.5 --local-dir ./hf_model
模型配置文件config/Dolphin.yaml中定义了模型的主要参数,包括最大长度、解码器层数、隐藏维度等。你可以根据需要进行调整,但建议在初次使用时保持默认配置。
二、模型加载与基本推理
Dolphin提供了多种推理方式,包括页面级解析、元素级解析和布局解析。下面我们将分别介绍这些功能的使用方法。
2.1 页面级解析
页面级解析可以将整个文档页面解析为结构化的JSON和Markdown格式。使用demo_page.py脚本进行页面级解析:
# 处理单个文档图像
python demo_page.py --model_path ./hf_model --save_dir ./results \
--input_path ./demo/page_imgs/page_1.png
# 处理单个文档PDF
python demo_page.py --model_path ./hf_model --save_dir ./results \
--input_path ./demo/page_imgs/page_6.pdf
# 处理目录中的所有文档
python demo_page.py --model_path ./hf_model --save_dir ./results \
--input_path ./demo/page_imgs
# 使用自定义批次大小进行并行元素解码
python demo_page.py --model_path ./hf_model --save_dir ./results \
--input_path ./demo/page_imgs \
--max_batch_size 8
2.2 元素级解析
元素级解析可以针对单个文档元素(如文本、表格、公式、代码)进行解析。使用demo_element.py脚本:
# 解析表格元素
python demo_element.py --model_path ./hf_model --save_dir ./results \
--input_path ./demo/element_imgs/table.jpg --element_type table
# 解析公式元素
python demo_element.py --model_path ./hf_model --save_dir ./results \
--input_path ./demo/element_imgs/line_formula.jpeg --element_type formula
# 解析代码元素
python demo_element.py --model_path ./hf_model --save_dir ./results \
--input_path ./demo/element_imgs/code.jpeg --element_type code
2.3 布局解析
布局解析可以检测文档中的元素布局和阅读顺序。使用demo_layout.py脚本:
# 处理单个文档图像
python demo_layout.py --model_path ./hf_model --save_dir ./results \
--input_path ./demo/page_imgs/page_1.png
# 处理单个文档PDF
python demo_layout.py --model_path ./hf_model --save_dir ./results \
--input_path ./demo/page_imgs/page_6.pdf
三、批量处理与性能优化
为了提高处理效率,Dolphin支持批量处理和多种性能优化方式。下面介绍几种常用的优化方法。
3.1 批量处理文档
使用页面级解析脚本可以批量处理目录中的所有文档:
python demo_page.py --model_path ./hf_model --save_dir ./results \
--input_path ./demo/page_imgs --max_batch_size 16
其中,--max_batch_size参数可以控制并行处理的批次大小,根据你的硬件配置进行调整。
3.2 使用TensorRT-LLM加速
Dolphin提供了TensorRT-LLM的支持,可以显著提升推理速度。使用以下脚本将模型转换为TensorRT格式:
cd deployment/tensorrt_llm
bash convert_dolphin.sh
转换脚本convert_dolphin.sh会自动下载Hugging Face模型并将其转换为TensorRT引擎。
3.3 使用vLLM进行高效推理
vLLM是一个高性能的LLM服务库,可以大幅提高Dolphin的推理吞吐量。使用vLLM API服务器:
cd deployment/vllm
python api_server.py --model_path ../../hf_model --port 8000
然后可以通过HTTP请求进行推理:
import requests
import base64
# 读取并编码图像
with open("./demo/page_imgs/page_1.png", "rb") as f:
image_data = f.read()
image_base64 = base64.b64encode(image_data).decode("utf-8")
# 发送请求
response = requests.post(
"http://localhost:8000/generate",
json={
"encoder_prompt": "",
"decoder_prompt": "Parse the reading order of this document.",
"image_base64": image_base64,
"stream": False
}
)
# 处理响应
print(response.json())
总结与展望
本文介绍了如何将Dolphin模型从原始框架迁移到Hugging Face生态,并实现高效的文档解析。通过准备工作、模型加载与基本推理、批量处理和性能优化三个步骤,你可以轻松掌握Dolphin模型的使用方法。
Dolphin模型在文档解析任务中表现出色,特别是在文本、公式和表格的解析精度上有显著提升。未来,随着模型的不断优化和迭代,我们有理由相信Dolphin将在更多场景中发挥重要作用。
如果你觉得本文对你有帮助,请点赞、收藏并关注我们,以便获取更多关于Dolphin模型的使用技巧和最佳实践。下期我们将介绍如何使用Dolphin进行自定义数据集的训练和微调,敬请期待!
【免费下载链接】Dolphin 项目地址: https://gitcode.com/GitHub_Trending/dolphin33/Dolphin
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考





