2026年7月9日 周四晚上19:30,报名腾讯会议了解“如何构建自进化的动态知识库(Brain)”(限30人)
免费POC, 零成本试错
FDE知识库

FDE知识库

学习大模型的前沿技术与行业落地应用


收藏

阿里 mPLUG-Owl3 震撼登场:通用多模态大模型的创新风暴来袭

发布日期:2024-09-20 10:34:27 浏览次数: 2867
作者:小兵的AI视界

微信搜一搜,关注“小兵的AI视界”

在当今人工智能领域,多模态大模型的发展正以惊人的速度改变着我们与技术交互的方式。阿里发布的 mPLUG-Owl3 通用多模态大模型,以其在多图、长视频理解等方面的卓越表现,成为了行业内的焦点。本文将深入探讨 mPLUG-Owl3 的技术特点、实现原理以及广泛的应用场景,带您领略这一强大模型的魅力。


mPLUG-Owl3 模型特点


1高推理效率


mPLUG-Owl3 llava-next-interleave 为基准,将模型的 first token latency 缩小了 6 倍。这意味着在实际应用中,用户能够更快地获得模型的响应,极大地提升了交互体验。同时,单张 A100 能建模的图像数目提升了 8 倍,达到了 400 张图片。对于长视频的处理,实测 4 秒就能看完一部 2 小时的电影。这种高效的推理能力,使得 mPLUG-Owl3 在处理大规模多模态数据时具有明显的优势。


2不牺牲准确性


在追求高推理效率的同时,mPLUG-Owl3 并没有牺牲模型的准确性。它在多模态大模型所涉及的各种场景,包括单图、多图、视频领域的诸多 benchmarks 上达到了 SOTAState Of The Art,即当前最佳水平)。这意味着无论是对图像的识别、分类,还是对视频内容的理解和分析,mPLUG-Owl3 都能够提供准确可靠的结果。


二、技术实现


mPLUG-Owl3 与传统模型的不同之处在于,它不需要提前将视觉序列拼接到语言模型的文本序列中,从而规避了长视觉序列带来的巨额计算开销和显存占用。为了实现视觉信息融入语言模型,团队提出了一种轻量化的 hyperattention 模块。


1hyperattention 模块的工作原理


通过在整个语言模型中稀疏地扩展 4 transformer block,就能用较小的代价将 LLMLanguage Model)升级成多模态 LLM。视觉特征在从视觉编码器抽取出来后,会通过一个简单的线性映射把维度对齐到语言模型的维度。随后,视觉特征只会在这 4 transformer block 与文本交互,保留了细粒度的信息。


这种设计的优势在于,它既能够有效地融合视觉信息和语言信息,又能够避免传统方法中因拼接视觉序列而带来的计算负担。同时,通过稀疏扩展 transformer block,模型可以更加高效地处理多模态数据,提高推理速度。


2共享语言模型的 layer norm


hyperattention 模块中,选择共享语言模型的 layer norm 对于稳定学习新引入的 cross-attention 至关重要。Layer norm 可以对输入数据进行归一化处理,使得模型在训练过程中更加稳定,避免了梯度消失或爆炸等问题。通过共享 layer norm,模型可以更好地融合视觉和语言信息,提高模型的性能。


3并行 cross-attention self-attention


hyperattention 采取了一种并行 cross-attention self-attention 的策略。使用共享的 query 去与视觉特征交互,通过一个 adaptive gate 融合两者的特征,使得 query 可以根据自身语义针对性地选择与之相关的视觉特征。这种设计可以提高模型对多模态数据的理解能力,同时也能够提高模型的效率。


4多模态交错的旋转位置编码 mi-rope


为了建模图像在原始上下文中与文本的相对位置关系,mPLUG-Owl3 引入了多模态交错的旋转位置编码 mi-rope。这种编码方式可以为视觉的 key 建模位置信息,并在 cross-attention 引入 attention mask,让原始上下文中在图片之前的文本不能看到后面的图片对应的特征。这些设计点为 mPLUG-Owl3 带来了进一步的效率提升,保障了它仍然能具备一流的多模态能力。


三、功能应用



1多模态检索增强


对于模型没有学过的知识,mPLUG-Owl3 能通过检索系统进行补充。并且,它不仅能基于检索知识正确回复,还能给出它基于哪一条知识做出的判断,以及详细的判断依据。这对于下游研发人员开发和调试非常友好。


例如在给定四张狗的照片和一个关于图片 5 中狗的分类问题时mPLUG-Owl3 能根据已有的图片信息和知识进行准确分类并给出理由。这种多模态检索增强的功能,使得模型能够更好地处理复杂的多模态问题,提高了模型的实用性。


2多图推理


mPLUG-Owl3 能够正确理解不同材料(多图)中的内容关系,并进行推理。比如,它能通过两张图像所见,激活语言模型的常识知识,并围绕两张图片进行推理,判断左边的动物能否在右边的环境中存活,并给出解释。还能察觉两张图片风格上的差异性,并且意识到两张图中的人物虽然风格不同,但其实是同一个角色。


这种多图推理的能力,使得 mPLUG-Owl3 在图像识别、分类、场景理解等方面具有广泛的应用前景。例如,在图像搜索、智能安防、医疗影像分析等领域,mPLUG-Owl3 可以通过对多张图片的分析和推理,提供更加准确和全面的结果。

3长视频理解


mPLUG-Owl3 可以观看超长视频,并且能在 4 秒内开始回答用户关于视频的问题。无论是对开头、中间还是结尾的细致片段提问,都能对答如流。这种长视频理解的能力,使得 mPLUG-Owl3 在视频内容分析、智能推荐、视频监控等领域具有巨大的应用潜力。


例如,在视频内容分析中,mPLUG-Owl3 可以通过对视频的理解和分析,提取关键信息,进行视频分类、标签生成等任务。在智能推荐中,它可以根据用户的观看历史和兴趣爱好,推荐相关的视频内容。在视频监控中,mPLUG-Owl3 可以实时分析视频画面,检测异常行为,提高监控效率和安全性。


基准测试


1视觉问答基准测试


在视觉问答基准测试中,选择了多个广泛使用的数据集,包括 VQAv2OK - VQAGQA VizWizQA 等。这些数据集涵盖了不同类型的问题和图像场景,能够全面地评估模型的视觉问答能力。


mPLUG - Owl3 在这些数据集上表现出色,优于其他 8B 参数级别的语言模型。在 VQAv2OK - VQA GQA 等数据集上,mPLUG - Owl3 的准确率明显高于其他模型。在 VizWizQA 数据集上,mPLUG - Owl3 也取得了较好的成绩。虽然在 TextVQA 上略低于 Idefics2,但仍超过其他 8B 模型。


2通用 MLLM 基准测试


在通用 MLLM 基准测试中,使用了 MMBench - ENMMBench - CNMM - Vet POPE 等数据集。这些数据集涵盖了多种任务和场景,包括图像描述、图像分类、视觉推理等,能够全面地评估模型的通用多模态大语言模型能力。


mPLUG - Owl3 在这些数据集上达到了先进水平。在 MMBench - EN MMBench - CN 数据集上,mPLUG - Owl3 的表现尤为突出,在多个任务上的准确率都高于其他模型。在 MM - Vet POPE 数据集上,mPLUG - Owl3 也取得了较好的成绩。然而,在 AI2D 数据集上,mPLUG - Owl3 未达到先进水平,这可能是由于该数据集的特殊性和复杂性。


3视频处理能力测试


在视频基准测试中,mPLUG - Owl3 展示了出色的处理能力。它能够有效地处理不同时长的视频,准确地回答与视频内容相关的问题。在处理长视频时,mPLUG - Owl3 能够保持较高的准确率,并且能够捕捉视频中的时间序列信息,进行有效的推理和回答。


4多图像理解能力测试


在多图像理解基准测试中,mPLUG - Owl3 NLVR2 Mantis - Eval 数据集上超越了现有模型。它能够准确地理解不同图像之间的关系,进行跨图像推理,并且能够回答与多图像场景相关的问题。然而,在 BLINK 数据集上,mPLUG - Owl3 的表现较弱,这可能是由于该数据集的难度较大或者模型在处理某些特定类型的多图像场景时存在不足。


、本地部署


以下是基于魔搭社区提供的 mPLUG-Owl3-7b-240728 模型进行本地部署测试的步骤:


1下载代码


下载GitHubmPLUG-Owl代码
git clone https://github.com/X-PLUG/mPLUG-Owl.git

2、安装依赖


使用以下命令安装相关依赖:
cd mPLUG-Owl/mPLUG-Owl3pip install -r requirements.txt
安装modelscope用于下载模型文件
pip install modelscope

3下载模型

使用 modelscope 中的 snapshot_download 函数下载模型。第一个参数为模型名称,参数 cache_dir 用于指定模型的下载路径。

#模型下载
from modelscope import snapshot_downloadmodel_dir = snapshot_download('iic/mplug-owl3-7b-240728', cache_dir='/root/autodl-tmp', revision='master')

执行代码下载完成后模型文件会存放到 /root/autodl-tmp 路径下

4加载模型


使用以下代码加载 mPLUG-Owl3-7b-240728 模型,目前仅支持 attn_implementation 中的 .['sdpa', 'flash_attention_2']

import torchmodel_path = '/root/autodl-tmp/mPLUG/mPLUG-Owl3-7B-240728'config = mPLUGOwl3Config.from_pretrained(model_path)print(config)# model = mPLUGOwl3Model(config).cuda().half()model = mPLUGOwl3Model.from_pretrained(model_path, attn_implementation='sdpa', torch_dtype=torch.half)model.eval().cuda()

5、图片对话

输入图片,与模型进行聊天对话
from PIL import Imagefrom transformers import AutoTokenizer, AutoProcessorfrom decord import VideoReader, cpu # pip install decordmodel_path = '/root/autodl-tmp/mPLUG/mPLUG-Owl3-7B-240728'tokenizer = AutoTokenizer.from_pretrained(model_path)processor = model.init_processor(tokenizer)image = Image.new('RGB', (500, 500), color='red')messages = [  {"role": "user", "content": """<|image|>Describe this image."""},{"role": "assistant", "content": ""}]inputs = processor(messages, images=image, videos=None)inputs.to('cuda')inputs.update({'tokenizer': tokenizer,'max_new_tokens':100,'decode_text':True,})g = model.generate(**inputs)print(g)

6、视频对话

输入视频,与模型进行聊天对话
from PIL import Imagefrom transformers import AutoTokenizer, AutoProcessorfrom decord import VideoReader, cpu # pip install decord
model_path = '/root/autodl-tmp/mPLUG/mPLUG-Owl3-7B-240728'tokenizer = AutoTokenizer.from_pretrained(model_path)processor = model.init_processor(tokenizer)messages = [  {"role""user""content""""<|video|>Describe this video."""},{"role": "assistant", "content": ""}]
videos = ['/nas-mmu-data/examples/car_room.mp4']MAX_NUM_FRAMES=16
def encode_video(video_path):def uniform_sample(l, n): gap = len(l) / nidxs = [int(i * gap + gap / 2) for i in range(n)]return [l[i] for i in idxs] vr = VideoReader(video_path, ctx=cpu(0))sample_fps = round(vr.get_avg_fps() / 1)# FPSframe_idx = [i for i in range(0, len(vr), sample_fps)]if len(frame_idx) > MAX_NUM_FRAMES:frame_idx = uniform_sample(frame_idx, MAX_NUM_FRAMES) frames = vr.get_batch(frame_idx).asnumpy()frames = [Image.fromarray(v.astype('uint8')) for v in frames]print('num frames:', len(frames))return framesvideo_frames = [encode_video(_) for _ in videos]inputs = processor(messages, images=None, videos=video_frames)
inputs.to('cuda')inputs.update({'tokenizer': tokenizer,'max_new_tokens':100,'decode_text':True,})g = model.generate(**inputs)print(g)

请注意,在实际部署和测试中,你需要确保图片路径的正确性,并根据具体的应用场景和需求对输入数据和输出结果进行适当的处理。此外,还可以参考官方关于该模型的详细文档和示例,以获取更准确的使用方法和最佳实践。


阿里的 mPLUG-Owl3 通用多模态大模型以其高推理效率、不牺牲准确性的特点,以及创新的技术实现和广泛的应用场景,在人工智能领域树立了新的标杆。通过轻量化的 hyperattention 模块,mPLUG-Owl3 成功地实现了视觉信息与语言信息的高效融合,为多模态数据的处理提供了一种全新的解决方案。


在未来,随着多模态数据的不断增长和应用需求的不断提高,mPLUG-Owl3 有望在更多领域发挥重要作用,为人们的生活和工作带来更多的便利和创新。无论是在图像识别、视频理解、智能推荐还是其他多模态应用场景中,mPLUG-Owl3 都将展现出强大的实力和潜力。

53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询

扫码登录
登录即表示您同意《53AI网站服务协议》
服务协议

欢迎您使用【53AI 官方网站】(以下简称“本网站”或“我们”)。本《会员服务协议》(以下简称“本协议”)是您(以下简称“会员”或“用户”)与【深圳市博思协创网络科技有限公司】之间关于注册、登录及使用本网站会员服务所订立的法律协议。

在您注册或登录前,请务必审慎阅读、充分理解各条款内容,特别是免除或限制责任的条款、知识产权条款、争议解决条款等。此类条款将以加粗形式提示您注意。 当您通过微信公众号授权、手机验证码验证或其他方式成功登录本网站时,即视为您已完全理解并同意接受本协议的全部内容。

一、 定义

本网站:指由【深圳市博思协创网络科技有限公司】运营的,域名为【53ai.com】的网站及相关移动端页面。

会员服务:指本网站向注册会员提供的知识库文章查阅、内容检索及其他相关增值服务。

知识库内容:指本网站发布的包括但不限于文字、图表、数据、研究报告、行业分析等数字化内容资源。

二、 账号注册与登录

登录方式:本网站支持以下登录方式,您可根据实际情况选择:

微信公众号授权登录:您同意将您的微信OpenID信息授权给本网站,用于创建或关联会员账号。

手机验证码登录:您需提供真实有效的手机号码,并通过短信验证码完成身份验证与登录/注册。

账号安全:您的账号仅限您本人使用,禁止赠与、借用、租用、转让或售卖。因您保管不善导致的账号被盗、密码泄露等损失,由您自行承担。

实名认证:根据相关法律法规要求,我们可能要求您在特定功能下完成实名认证。如您拒绝提供,可能无法使用部分或全部服务。

未成年人保护:若您未满18周岁,请在法定监护人的陪同下阅读本协议,并在征得监护人同意后使用本服务。

三、 服务内容与规范

知识库查阅权限:会员登录后,有权按照其会员等级对应的权限范围,在线浏览、检索本网站知识库中的相关文章及内容。

服务变更:我们有权根据业务发展需要,调整、变更或终止部分服务内容,并将以网站公告、公众号消息等方式提前通知。

禁止行为:您在使用服务时不得实施以下行为:

利用技术手段批量爬取、下载、转存知识库内容;

将知识库内容用于商业目的或未经授权地向第三方传播;

干扰本网站正常运行或侵犯其他用户合法权益;

发布违法违规信息或从事违反公序良俗的活动。

四、 知识产权声明

权利归属:本网站知识库中的排版设计、软件代码等内容的知识产权均归【公司全称】或原权利人所有,受《中华人民共和国著作权法》等法律保护。

有限许可:本网站授予会员一项非独占、不可转让、不可转授权的普通许可,仅限于个人学习、研究之目的在线查阅知识库内容。

侵权追责:未经书面许可,任何单位或个人不得以任何形式复制、转载、摘编、镜像、汇编或以其他方式使用上述内容。一经发现,我们保留追究其法律责任的权利。

五、 个人信息保护

我们重视对您个人信息的保护。关于我们如何收集、使用、存储和保护您的个人信息,请单独阅读 《隐私政策》。

您通过微信公众号授权或手机号验证所提供的信息,我们将严格按照《个人信息保护法》的规定处理,仅用于身份识别、服务提供及安全验证等必要用途。

您可以随时通过网站设置或联系客服行使查阅、更正、删除个人信息及撤回授权同意的权利。

六、 免责声明

内容准确性:知识库内容仅供参考,不构成专业建议。我们不对其完整性、准确性、时效性作任何明示或暗示的保证,您应自行判断并承担使用风险。

不可抗力:因自然灾害、政策法规变化、网络故障、第三方平台接口异常(如微信接口维护、运营商短信通道故障)等不可抗力导致的服务中断或延迟,我们不承担违约责任。

第三方链接:本网站可能包含指向第三方网站的链接,该等网站的内容和服务不受我们控制,请您自行甄别风险。

七、 违约责任

如您违反本协议约定,我们有权视情节采取警告、限制功能、暂停服务、注销账号等措施,并保留要求赔偿损失的权利。

如因您的违约行为导致我们遭受行政处罚、第三方索赔或商誉损失,您应承担全部赔偿责任(包括但不限于罚款、赔偿金、律师费、公证费等)。

八、 法律适用与争议解决

本协议的订立、执行和解释均适用中华人民共和国大陆地区法律。

因本协议产生的或与本协议有关的任何争议,双方应友好协商解决;协商不成的,任何一方均可向【公司所在地】有管辖权的人民法院提起诉讼。

九、 其他

本协议构成双方就本服务达成的完整协议,取代此前任何口头或书面约定。

本协议任一条款被认定为无效或不可执行的,不影响其他条款的效力。

我们对本协议享有最终解释权,并在法律允许的范围内保留随时修改的权利。修改后的协议一经公布即生效,继续使用服务即视为同意修订内容。


已查阅