一、介绍
1. 项目背景与概述
mPLUG-Owl3 是阿里巴巴 mPLUG 团队最新发布的通用多模态大模型,该模型在理解和处理复杂多图及长视频内容方面实现了显著突破。这一创新成果不仅提升了模型的推理效率,还保持了高度的准确性,为多模态大模型的应用开辟了新的可能性。
2. 核心能力与特点
(1)高效推理能力 :
- mPLUG-Owl3 在推理效率上实现了显著提升,将 First Token Latency 缩小了 6 倍,使得模型在处理大量图像和视频时更加迅速。
- 在单张 A100 显卡上,mPLUG-Owl3 能够处理的图像数量提升至 400 张,这意味着它能在极短的时间内完成大量图像的分析和理解。
- 特别是对于长视频,mPLUG-Owl3 能在 4 秒内“看”完一部 2 小时的电影,并快速回答用户关于视频内容的问题。
(2)多模态融合能力 :
- mPLUG-Owl3 创新性地引入了 Hyper Attention 模块,该模块允许模型在不增加语言模型序列负担的情况下,直接与视觉特征交互,减少了计算成本和内存占用。
- 通过 Cross-Attention 操作,模型能够精准提取并利用视觉信息,同时保持了对文本的高效处理能力,实现了视觉和语言信息的深度融合。
(3)鲁棒性与准确性 :
- mPLUG-Owl3 在多模态场景的多个基准测试中均达到了最佳水平(SOTA),展现了其卓越的性能和稳定性。
- 在处理长视觉序列时,即使面对大量无关图像的干扰,mPLUG-Owl3 依然能保持较高准确率,体现了其在复杂场景下的鲁棒性。
3. 应用场景与示例
(1)多模态检索增强 :
- 在多模态检索任务中,mPLUG-Owl3 不仅能够准确回应查询,还能明确指出其决策依据,提高了检索的透明度和可信度。
(2)多图推理 :
- mPLUG-Owl3 能够理解不同图像间的关联,进行逻辑推理。例如,在识别不同风格或角色的图像时,它能准确判断并给出依据。
(3)长视频理解 :
- 对于长视频内容,mPLUG-Owl3 能在短时间内解析并回答关于视频细节的问题。无论是电影的开头、中间还是结尾部分的问题,它都能对答如流。
4. 技术创新与优势
(1)轻量化 Hyper Attention 模块 :
- 通过精心设计的 Hyper Attention 模块,mPLUG-Owl3 实现了图文特征的高效交互和文本建模,降低了额外引入的新参数数量,使得模型更容易训练且推理效率更高。
(2)多模态交错的旋转位置编码(MI-Rope) :
- 引入 MI-Rope 帮助模型更好地理解视觉元素在原始文本中的上下文关系,进一步优化了多模态融合效果。
(3)高效的训练与推理效率 :
- mPLUG-Owl3 在保持高准确性的同时,显著提升了模型的训练和推理效率,使得大规模数据的处理变得更加快速和高效。
二、容器构建说明
下面将以 mPLUG-Owl3项目进行部署,由于模型较大建议使用 RTX3090 及以上显卡 。
1. 安装 miniconda
进入 Anaconda 官网:
找到快速命令行安装,选择 Linux 系统,复制代码进入终端中进行安装。
等待安装完成。
2. 安装并更新基础命令,让后续使用更快捷: unzip、lsof、git、git-lfs
apt-get update
apt-get install -y unzip
apt-get install -y lsof
apt-get install -y git
apt-get install -y git-lfs
3. 克隆项目仓库,并打开文件
模型地址:GitHub - X-PLUG/mPLUG-Owl: mPLUG-Owl:强大的多模态大型语言模型系列
git clone https://github.com/X-PLUG/mPLUG-Owl.git
cd mPLUG-Owl/mPLUG-Owl3
4. 创建 python 为 3.9 版本的虚拟环境,名称为owl
conda create -n owl python=3.9 -y
5. 激活虚拟环境owl
conda activate owl
6. 安装项目依赖文件
为了安装速度更快可以将 pip 进行永久换源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip install -r requirements.txt
7. 指定端口
打开 mPLUG-Owl/mPLUG-Owl3/gradio_demo.py
更改最后一行代码,删除相应部分,否则gradio无法正常加载
8. 更改模型库的镜像,运行 py 文件(运行项目,首次运行会自动下载模型参数,需要保证网络通畅)默认下载mPLUG-Owl3-7B-240728
export HF_ENDPOINT=https://hf-mirror.com
export GRADIO_SERVER_NAME=0.0.0.0
export GRADIO_SERVER_PORT=8080
python gradio_demo.py
耐心等待
出现以下页面即为运行成功
指定的端口号为多少,URL就会相应变成多少,以下是没指定端口自动分配的。
三、网页演示
运行成功后获取访问链接,进入 webUI 界面后即可操作