❤️ 如果你也关注大模型与 AI 的发展现状,且对大模型应用开发非常感兴趣,我会快速跟你分享最新的感兴趣的 AI 应用和热点信息,也会不定期分享自己的想法和开源实例,欢迎关注我哦!
🥦 微信公众号|搜一搜:蚝油菜花 🥦
🚀 快速阅读
- mPLUG-DocOwl 1.5 是由阿里巴巴集团推出的多模态大型语言模型,专注于 OCR-free 的文档理解。
- 模型基于统一结构学习,强化对文本丰富图像如文档、表格和图表的结构信息理解能力。
- mPLUG-DocOwl 1.5 在多个视觉文档理解基准测试中展现业界领先的无 OCR 性能,提升 SOTA 性能超过 10 分。
正文(附运行示例)
mPLUG-DocOwl 1.5 是什么
mPLUG-DocOwl 1.5 是由阿里巴巴集团推出的多模态大型语言模型,专注于 OCR-free(无需光学字符识别)的文档理解。模型基于统一结构学习,强化对文本丰富图像如文档、表格和图表的结构信息理解能力。mPLUG-DocOwl 1.5 包含结构感知解析任务和多粒度文本定位任务,覆盖五个领域:文档、网页、表格、图表和自然图像。mPLUG-DocOwl 1.5 的 H-Reducer 模块基于卷积层合并水平相邻图像块,减少视觉特征长度,保持布局信息,让模型能高效处理高分辨率图像。
mPLUG-DocOwl 1.5 的主要功能
- 结构感知的文档解析:识别和解析文档中的文本结构,如换行和空格,理解文档的组织方式。
- 表格转 Markdown:将表格图像转换为 Markdown 格式,便于进一步的处理和阅读。
- 图表转 Markdown:将图表图像转换为 Markdown 格式,保留图表中的关键数据和结构信息。
- 自然图像解析:对自然场景中的图像进行解析,识别和理解图像中的文字信息。
- 多粒度文本定位:在不同粒度级别(单词、短语、行、块)上定位文本,增强模型对文本位置的识别能力。
mPLUG-DocOwl 1.5 的技术原理
- 统一结构学习(Unified Structure Learning):基于结构感知解析任务和多粒度文本定位任务,模型学习如何理解和处理文本丰富的图像。
- H-Reducer 视觉-文本模块:基于卷积层合并水平相邻的视觉特征,减少特征长度,保持布局信息,让大型语言模型能更有效地处理高分辨率图像。
- 多模态大型语言模型(MLLM):结合视觉编码器和大型语言模型,用视觉到文本的模块(如 H-Reducer),让模型理解和生成与视觉内容相关的语言描述。
- 大规模数据集训练:用大规模的标注数据集,如 DocStruct4M 和 DocReason25K,模型能学习各种文档和图像中的文本结构和语义信息。
- 两阶段训练框架:首先进行统一结构学习,然后进行多任务调整,让模型在各种下游任务中能表现出色。
如何运行 mPLUG-DocOwl 1.5
准备工作
在运行 mPLUG-DocOwl 1.5 之前,需要安装以下依赖库:
pip install transformers==4.31.0
pip install textdistance
pip install editdistance
pip install pycocoevalcap
pip install gradio==3.27.0
拉取 mPLUG-DocOwl 1.5 项目,地址如下:
- GitHub 仓库:X-PLUG/mPLUG-DocOwl/tree/main/DocOwl1.5
模型推理示例
以下是如何使用 mPLUG-DocOwl 1.5 进行模型推理的示例代码:
from docowl_infer import DocOwlInfer
# 加载模型
model_path = './mPLUG/DocOwl1.5-stage1'
docowl = DocOwlInfer(ckpt_path=model_path, anchors='grid_9', add_global_img=False)
print('load model from ', model_path)
# 文档/网页解析
image = './DocStruct4M/val_imgs/CCpdf/pages/1e531ef22cff3f01dab8720e99427c4f_page19.png'
query = 'Recognize text in the image.'
answer = docowl.inference(image, query)
print(answer)
# 表格/图表转Markdown
image = './DocStruct4M/val_imgs/TURL/col_type_197091.jpg'
query = 'Convert the picture to Markdown syntax.'
answer = docowl.inference(image, query)
print(answer)
# 自然图像解析
image = './DocStruct4M/val_imgs/OCRCC/02749938.jpg'
query = 'Provide a description of the image content and text.'
answer = docowl.inference(image, query)
print(answer)
模型评估示例
以下是如何使用 mPLUG-DocOwl 1.5 进行模型评估的示例代码:
# 评估DocOwl1.5/DocOwl1.5-Chat在10个下游任务上的表现
python docowl_benchmark_evaluate.py --model_path $MODEL_PATH --dataset $DATASET --downstream_dir $DOWNSTREAM_DIR_PATH --save_dir $SAVE_DIR
本地演示
以下是如何启动一个本地演示的示例代码:
# 启动一个由DocOwl1.5-Omni支持的本地演示
python app.py --model-source modelscope
资源
- GitHub 仓库:X-PLUG/mPLUG-DocOwl/tree/main/DocOwl1.5
- arXiv 技术论文:https://arxiv.org/pdf/2403.12895
- HuggingFace Space:HuggingFace Space
- ModelScope Space:ModelScope Space
❤️ 如果你也关注大模型与 AI 的发展现状,且对大模型应用开发非常感兴趣,我会快速跟你分享最新的感兴趣的 AI 应用和热点信息,也会不定期分享自己的想法和开源实例,欢迎关注我哦!
🥦 微信公众号|搜一搜:蚝油菜花 🥦