--- license: apache-2.0 library_name: transformers pipeline_tag: image-text-to-text --- # PP-DocBee2 This repository contains the model presented in the paper [PP-DocBee: Improving Multimodal Document Understanding Through a Bag of Tricks](https://huggingface.co/papers/2503.04065). For the codebase, see: this https URL ## 1. 简介 PP-DocBee2 是PaddleMIX团队自研的一款专注于文档理解的多模态大模型,在PP-DocBee的基础上,我们进一步优化了基础模型,并引入了新的数据优化方案,提高了数据质量,使用自研[数据合成策略](https://arxiv.org/abs/2503.04065)生成的少量的47万数据便使得PP-DocBee2在中文文档理解任务上表现更佳。在内部业务中文场景类的指标上,PP-DocBee2相较于PP-DocBee提升了约11.4%,同时也高于目前的同规模热门开源和闭源模型。 **本仓库支持的模型权重:** | Model | |--------------------| | PaddleMIX/PPDocBee2-3B | 注意:使用`xxx.from_pretrained("PaddleMIX/PPDocBee2-3B")`即可自动下载该权重文件夹到缓存目录。 ## 2 环境准备 1)[安装PaddlePaddle](https://github.com/PaddlePaddle/PaddleMIX?tab=readme-ov-file#3-%EF%B8%8F%E5%AE%89%E8%A3%85paddlepaddle) - **python >= 3.10** - **paddlepaddle-gpu 要求是>=3.0.0b2或develop版本** ```bash # 提供三种 PaddlePaddle 安装命令示例,也可参考PaddleMIX主页的安装教程进行安装 # 3.0.0b2版本安装示例 (CUDA 11.8) python -m pip install paddlepaddle-gpu==3.0.0b2 -i https://www.paddlepaddle.org.cn/packages/stable/cu118/ # Develop 版本安装示例 python -m pip install paddlepaddle-gpu==0.0.0.post118 -f https://www.paddlepaddle.org.cn/whl/linux/gpu/develop.html # sh 脚本快速安装 sh build_paddle_env.sh ``` 2)[安装PaddleMIX环境依赖包](https://github.com/PaddlePaddle/PaddleMIX?tab=readme-ov-file#3-%EF%B8%8F%E5%AE%89%E8%A3%85paddlepaddle) - **paddlenlp >= 3.0.0b3** ```bash # 提供两种 PaddleMIX 依赖安装命令示例 # pip 安装示例,安装paddlemix、ppdiffusers、项目依赖、paddlenlp python -m pip install -e . python -m pip install -e ppdiffusers python -m pip install -r requirements.txt python -m pip install paddlenlp==3.0.0b3 # sh 脚本快速安装 sh build_env.sh ``` > 注: * 请确保安装了以上依赖,否则无法运行。 * (默认开启flash_attn)使用flash_attn 要求A100/A800显卡或者H20显卡。V100请用float16推理。 ## 3. 在线体验和部署 ### 3.1 在线体验 我们提供了在线体验环境,您可以通过[AI Studio](https://aistudio.baidu.com/application/detail/60135)快速体验 PP-DocBee2 的功能。 ### 3.2 本地gradio部署 ```bash # 安装gradio pip install gradio==5.6.0 # 运行gradio python paddlemix/examples/ppdocbee2/app.py ``` ## 4. 模型推理 ### 4.1 单卡推理 下面展示了一个表格识别的示例:

示例图片

```bash python paddlemix/examples/ppdocbee2/ppdocbee2_infer.py \ --model_path "PaddleMIX/PPDocBee2-3B" \ --image_file "paddlemix/demo_images/medal_table.png" \ --question "识别这份表格的内容, 以markdown格式输出" ``` 输出示例: ``` | 名次 | 国家/地区 | 金牌 | 银牌 | 铜牌 | 奖牌总数 | |---|---|---|---|---|---| | 1 | 中国(CHN) | 48 | 22 | 30 | 100 | | 2 | 美国(USA) | 36 | 39 | 37 | 112 | | 3 | 俄罗斯(RUS) | 24 | 13 | 23 | 60 | | 4 | 英国(GBR) | 19 | 13 | 19 | 51 | | 5 | 德国(GER) | 16 | 11 | 14 | 41 | | 6 | 澳大利亚(AUS) | 14 | 15 | 17 | 46 | | 7 | 韩国(KOR) | 13 | 11 | 8 | 32 | | 8 | 日本(JPN) | 9 | 8 | 8 | 25 | | 9 | 意大利(ITA) | 8 | 9 | 10 | 27 | | 10 | 法国(FRA) | 7 | 16 | 20 | 43 | | 11 | 荷兰(NED) | 7 | 5 | 4 | 16 | | 12 | 乌克兰(UKR) | 7 | 4 | 11 | 22 | | 13 | 肯尼亚(KEN) | 6 | 4 | 6 | 16 | | 14 | 西班牙(ESP) | 5 | 11 | 3 | 19 | | 15 | 牙买加(JAM) | 5 | 4 | 2 | 11 | ``` ### 4.2 分布式推理 ```bash sh paddlemix/examples/ppdocbee2/shell/distributed_ppdocbee2_infer.sh ``` > ⚠️注意:"mp_degree"需要根据显卡数量"gpus"进行调整,例如2卡推理,则设置为2。 ### 4.3 高性能推理 PP-DocBee2 支持高性能推理,具体可参考 [PP-DocBee2高性能推理教程](https://github.com/PaddlePaddle/PaddleMIX/tree/develop/deploy/ppdocbee2) ## 5. 性能评测 ### 内部业务中文场景评估集指标 | API/模型 | 总分/1196 | 印刷文字类/656 | 表格类/358 | 印章类/15 | 图表类/167 | |---------|-----:|---------:|------:|------:|------:| | GPT-4o API | 685 | 436 | 198 | 5 | 46 | | GLM-4V Flash API | 547 | 339 | 169 | 5 | 34 | | InternVL2.5-2B | 596 | 363 | 182 | 4 | **47** | | Qwen2-VL-2B | 680 | 476 | 167 | **8** | 29 | | PPDocBee-2B | 765 | 517 | 202 | 5 | 41 | | Qwen2.5-VL-3B | 789 | 526 | 223 | 6 | 34 | | **PPDocBee2-3B** | **852** | **545** | **253** | 7 | **47** | 印刷文字类 (656张)、表格类 (358张)、印章类 (15张)、图表类 (167张) > ⚠️注意: > 1. 内部业务中文场景评测于 2024.12.09日修订,所有图像分辨率 (1680, 1204),共1196条数据。 > 2. 内部业务中文场景评估集包括了财报、法律法规、理工科论文、说明书、文科论文、合同、研报等场景,暂时未有计划公开。