阿里巴巴开源!mPLUG-DocOwl 1.5:无需 OCR 的文档理解多模态大型语言模型

❤️ 如果你也关注大模型与 AI 的发展现状,且对大模型应用开发非常感兴趣,我会快速跟你分享最新的感兴趣的 AI 应用和热点信息,也会不定期分享自己的想法和开源实例,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦


🚀 快速阅读

  1. mPLUG-DocOwl 1.5 是由阿里巴巴集团推出的多模态大型语言模型,专注于 OCR-free 的文档理解。
  2. 模型基于统一结构学习,强化对文本丰富图像如文档、表格和图表的结构信息理解能力。
  3. 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 项目,地址如下:

模型推理示例

以下是如何使用 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

资源


❤️ 如果你也关注大模型与 AI 的发展现状,且对大模型应用开发非常感兴趣,我会快速跟你分享最新的感兴趣的 AI 应用和热点信息,也会不定期分享自己的想法和开源实例,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值