论文解读 | AAAI'25 Cobra:多模态扩展的大型语言模型,以实现高效推理

embedded/2025/2/22 12:52:48/

点击蓝字

faf98c85fc104d08f0de5e93310e9f14.jpeg

关注我们

AI TIME欢迎每一位AI爱好者的加入!

图片

点击 阅读原文 观看作者讲解回放!

个人信息

作者:赵晗,浙江大学-西湖大学联合培养博士生

内容简介

近年来,在各个领域应用多模态大语言模型(MLLMs)取得了显著的成功。然而,作为许多下游任务的基础模型,MLLMs通常包含著名的Transformer网络,其计算复杂度呈二次方增长,效率较低。在本文中,我们介绍了一种基于状态空间模型构建的多模态大规模语言模型Cobra,该模型在高效处理长序列方面表现出显著潜力,并且在序列长度方面具有快速推理和线性可扩展性。具体而言,Cobra涉及用预训练的Mamba语言模型替换基于Transformer的主干模型(例如LLaMA或Phi)。然后,我们通过实验探索了有效对齐视觉和文本模态的策略,并将不同预训练的Mamba模型变体与视觉编码器进行整合。在多个多模态基准测试中的实验表明:(i)Cobra的性能比目前最高效的现有方法(例如LLaVA Phi和MobileVLM v2)快3至4倍。此外,由于实现了线性序列建模,其性能得到了显著提升。(ii)Cobra仅微调了少量参数(约占模型参数的48%),与LLaVA相比,整体性能显著提升。

论文地址

https://arxiv.org/pdf/2403.14520

代码链接

https://sites.google.com/view/cobravlm

Background

多模态大语言模型(MLLM)在众多视觉场景理解任务,包括视觉问答任务上取得了显著的成功。然而,基于Transformer的大型模型,如著名的LLaVa系列等,在处理视觉语言token时,其时间复杂度随序列长度呈二次方增长。而且在推理过程中,实际空间占用也会随着生成长度的增加而增加。因此,它在端侧计算资源有限的场景,或者对实时性有较高要求的机器人操作任务中部署受到了限制。

先前Efficient MLLM领域的研究主要有两种解决方案。一种是采用轻量级语言模型,另一种是对视觉token进行token reduction以缩短序列长度。如图所示,右侧的两张图,是比较典型的token reduction方案。一种是通过视觉特征做卷积操作进行下采样来减少token数量,也就是LDP方案。第二种是Q-Former,通过cross-attention的方式减少token数量。这种做法虽然效果明显,但LDP会导致有一定程度的信息损失,从而降低模型性能。Q-Former需要一个较为复杂的训练流程,这无疑增加了整个模型训练的难度。

65caec80f6e7251a56f89d582b69e9a1.png

在2023年末,随着Mamba模型的提出,大语言模型的架构选择中,除了Transformer也有更多的工作来关注这种线性复杂度O(n)类的架构模型。Mamba是基于SSM的一个框架,输入1a75891ab03aad1749b374bc73d80ffb.png经过映射后得到一个data dependent的矩阵d387722411fd89c7909d4dfd9c8f292f.png90b9fcb6cf343b988ade57cecda93560.png以及将连续时间的参数进行离散化的补偿参数4d66acda896cdbc8d4ebd6c659be1820.png。通过图式(2)中的线性变换,最终将输入序列a85b61d90bdb2c1beaa7864ba9456f43.png变换成一个输出序列e6b997fae1d3dabf318f25d54685bba1.png

f89fad6a3b4be1df9be0eff0da629df4.png

Motivation

SSM结合了注意力机制类模型在训练时并行处理序列的优点,以及在推理时保持生成速度和空间占用恒定的优点。因此,作者希望进一步扩展Mamba在语言建模方面的能力。通过直接将更高计算效率的语言模型backbone和视觉处理模块结合,可以保持高性能的视觉理解能力,避免因模型参数减少或视觉token数量下降造成的性能损失。同时,由于模型对序列长度的时间复杂度是线性,可以保证更高的生成速度。

a6165c7fafa5f71eb7af7b76832e44cf.png

First RNN-Based MLLM

如下图为Efficient MLLM领域的路线图,本文在三月份出版,作为第一篇将线性复杂度的RNN序列模型引入该领域的文章,至今已被引用超过50次。

0b445f7a53479598ecc68601edebd3ab.png

Architecture

Corba的整体模型结构采用了类似层级的设计,通过视觉编码器提取视觉特征,进行嵌入处理。此外,还通过自回归执行指令来生成文本。在视觉编码器中,本文采用了目前广泛应用的一种方法,即Fused Vision Encoders。具体来说,它将DINOv2和SigLIP两个模型输出的特征在特征维度上进行融合,然后通过MLP Projector映射到语言embedding的维度,最后将整个序列输入到Mamba架构的语言模型中。

11b83a54cdb6c4e790ea2f7110876916.png

Training Recipe

训练方案:作者扩展了数据集,除了原始LLaVA v1.5的VQA数据集之外,还增加了两个新的数据集,旨在提升模型的执行能力并减少视觉语言模型的幻觉。这两个能力对模型性能至关重要。其次,在训练过程中,作者直接对模型进行了两个阶段的指令调整,发现这种方式比先进行预训练再进行调整的方式效果更好。

c819d88892847aa36eecb9b599597d73.png

Benchmarking-VQA

下图展示的是Cobra模型和其他模型在Benchmark上的性能比较。可以看到,Cobra-3.5B模型在各种指标上基本与同量级的small scales模型相当,即激活参数在3B或以下的baseline中,Cobra模型性能均能达到第一或者第二位。在各个Benchmark中,Cobra-8B则是在所有baseline中超越了其他模型。

db9084a4276dee00cffe601c359439d0.png

Benchmarking-Grounding

本文也在COCO的三个数据集上对vision grounding任务进行了评估。结果显示,Cobra-8B相较于LLaVa v1.5有显著的性能提升。然而,Cobra-3.5B模型可能受限于模型容量,在此类任务上的表现稍弱。

59d10363e49bf38294f389cc1ed1944d.png

Benchmarking-Latency

Cobra系列模型在推理延迟方面有显著提升。与其他高效基准模型相比,Cobra在大约3B参数的LLaVA-Phi、MobileVLM v2上,token生成速度大约快3到4倍。即使是8B的模型,其生成速度也高于之前提到的模型。

dbff77c4ac27a29dc26f5c8252948fa6.png

Ablation Studies

如下图所示,本文对Cobra架构的各个阶段进行了消融实验。第一行以3.5B作为基准。第二行仅使用SigLIP作为单独的视觉编码器。在缺少另一个编码器的情况下,对于需要精确空间感知的任务,如VSR——一个用于空物体空间关系判断的Benchmark以及包括一些visual grounding任务,在这些任务上表现出了显著的性能下降。因此,本文中最终选择将两个编码器融合。

357437b1bc6cfc4367206590f9fc0b19.png

第三行是将MLP替换成VLM中使用的轻量化下采样的projector。但却发现,这种替换在大多数任务上导致了一定程度的性能下降。然而,减少视觉token并未加快模型的生成速度。因此,在考虑高效的架构时,过度追求视觉token数量的压缩似乎并非必要。

第四行是将经过chat语料微调过的模型替换未经过微调的Base模型。其中的两项任务,VizWiz和VSR有较大的性能下降。所以最终本文选择的是通过直接使用经过chat语料微调后的模型。

最后两行是关于训练流程的分析。第五行代表模型仅仅进行了一个epoch的微调。第六行则是完全按照LLaVa的训练方案,先进行一个epoch的pre-alignment,然后再进行微调。可以明显看到,如果模型没有经过充分的微调,会始终处于欠拟合的状态。在所有任务上,特别是在visual grounding任务上,表现非常差。在这种情况下,作者发现,即使进行了pre-alignment,也可能损害模型的最终性能。

Additional Evaluation

此外,作者在Text-VQA的Benchmark中有一个有趣的发现。在先前的LLaVa测试中,其测试方法是将图片先通过一个OCR系统对图像进行文字识别,然后将所有识别出的文字结果作为一个额外的prompt输入给大模型。从图中可以看出这种提示方法对于LLaVa模型非常有效,引入OCR提示后,准确率相比没有引入提示的情况下提升了约12%。

5d3049f284daeb52b07c3f65d7a29453.png

在遵循LLaVa的测试方法时,作者发现使用OCR提示后,Cobra模型的效果非但没有提升,反而有所下降。深入分析后,作者发现LLaVa在测试中将OCR的结果置于整个问题描述之后。起初,本文采取相同的做法,但结果表明,这会导致性能普遍下降。然而,若让Cobra这类RNN模型先看到这些提示再进行测试,其结果与LLaVa的测试相似,有明显的提升。这一发现使作者意识到RNN模型对信息流输入的顺序极为敏感。因此,在整体输入结构设计上,可能存在进一步优化的空间。在定量实验结果之后,本文还展示了几个典型的例子。

Examples

如下图所示,Corba展示出比LLaVa v1.5更强大的空间理解和场景描述能力。左侧是根据这个问题,LLaVa v1.5回答了一个错误的答案。而Cobra能够正确分析两个物体之间的位置关系。在右边的场景中,Cobra-3.5B提供了更准确、更详细的描述。

615d7096e136466f6d1d6b734fa3bc90.png

在这一示例中,模型能够准确描述图像左下角的部分,比如湖边的碎石,而LLaVa v1.5则错误地将这些理解为湖边的长椅,还有其他场景描述的错误。这证明了Cobra模型在场景细节描述上更加精准和详尽。

1a0641bca7f7c581c89d61e7aedb9aa3.png

Conclusion

总结来说,本文提出了Cobra系列的两个模型,3.5B和8B,它们成功地将多模态信息融合到Mamba类的语言模型中。不仅大幅度提升了MLLM的计算效率,而且与LLaVa等其他基于Transformer类的模型性能相仿,甚至达到了更高水平。

ed09a49f8e5e5cf9e734106309992c7b.png

Potential Implementation

对于基于线性复杂度的RNN类的多模态大语言模型,作者认为还可以从其他方向进行深入研究。例如,利用其高效处理长序列的能力,可以将Cobra扩展为具备视觉模态理解的模型。

55470ba27874374dfadcb15caebb5436.png

在zero-shot情况下,模型已经展现出从单张图片到视频输入的泛化能力。如果在多样本共同协作的情况下中进行微调训练,将能进一步提升其视频理解能力。

f115e8befa96169467c3389bc4c276b9.png

此外,Cobra还有望应用于机器人或自动驾驶等需要快速闭环反馈和精准决策的场景。图中展示的RT-2是Google提出的操控机械臂完成抓取任务的视觉语言行为模型。该模型利用了大量云端GPU算力,但其动作指令的输出频率仅为1到3Hz,这对于高精度的机械臂抓取任务来说远远不足。然而,如果采用Cobra作为backbone或者其他高效的RNN模型,那么可以有效提升控制频率。

fd3491e56eb394003903f3340b0167b7.png

本期文章由陈研整理

近期精彩文章推荐

561a268a3cbc419958adaebf06086dc3.jpeg

跨越边界,大模型如何助推科技与社会的完美结合?

 关于AI TIME 

AI TIME源起于2019年,旨在发扬科学思辨精神,邀请各界人士对人工智能理论、算法和场景应用的本质问题进行探索,加强思想碰撞,链接全球AI学者、行业专家和爱好者,希望以辩论的形式,探讨人工智能和人类未来之间的矛盾,探索人工智能领域的未来。

迄今为止,AI TIME已经邀请了2000多位海内外讲者,举办了逾700场活动,超800万人次观看。

 01c1e9901e90826a214636b502d8854b.png

我知道你 

在看

提出观点,表达想法,欢迎 

留言

cb199e12ad5eadb150a20d9ee0e1b978.gif

点击 阅读原文 观看作者讲解回放!


http://www.ppmy.cn/embedded/164330.html

相关文章

Flutter开发的应用页面非常多时如何高效管理路由

文章目录 1. 集中式路由管理示例: 2. 动态路由生成 (onGenerateRoute)示例: 3. 模块化路由管理示例: 4. 使用路由管理库使用go_router的示例: 5. 路由分层管理总结 当Flutter应用中有大量页面时,路由管理变得复杂。为了…

CT dicom 去除床板 去除床位,检查床去除

1. 前言 医院拍摄患者CT与MRI 图像, 但是CT图像中就会出现检查床的区域,来看CT扫描设备是什么样子的,红色标出区域 可以在图中看到,在头部位置安装有固定头部的类似支架的东西,这个东西拍摄出来时什么样子呢&#xff…

ubuntu 守护进程

#!/bin/bash # 定义所守护的进程名称或关键字 TARGET_PROCESS"AppRun" while true; do # 检测目标进程是否运行 if pgrep -x "$TARGET_PROCESS" >/dev/null; then echo "The process is running." else # 启…

Docker安装Quickwit搜索引擎

介绍 Quickwit 是首个以亚秒级延迟直接在云存储上执行复杂搜索和分析查询的引擎。它由 Rust 及其分离的计算和存储架构提供支持,旨在节省资源、易于操作并可扩展到 PB 级数据。 Quickwit 非常适合日志管理、分布式跟踪以及通常不可变的数据(例如对话数…

PTT 票据传递攻击

黄金票据 原理:获取 krbtgt 的哈希后,使用此哈希能离线生成任意域用户的 tgt,域管理员的 tgt 就是黄金票据。 mimikatz.exe "privilege::debug" "lsadump::dcsync /domain:HACK.com /user:HACK\krbtgt /csv" "exit…

tidb实时同步到mysql

客户要求实时同步表的数据到mysql,但这个表在tidb。 测试直接通过tidb cdc写入到mysql,有些字段是null,所以中间加了一个kafka实现 客户库中创建表 CREATE TABLE tb_1 (id bigint primary key,cid bigint,gid bigint,fee DECIMAL(10,2),cre…

双非一本电子信息专业自学嵌入式,学完 Linux 后咋走?单片机 FreeRTOS 要补吗?

今天给大家分享的是一位粉丝的提问,双非一本电子信息专业自学嵌入式,学完 Linux 后咋走?单片机 & FreeRTOS 要补吗? 接下来把粉丝的具体提问和我的回复分享给大家,希望也能给一些类似情况的小伙伴一些启发和帮助。…

蓝桥杯 Day6 贪心

贪心 1.要点 2.例题 2022 砍竹子 学习: 1.模拟砍竹子砍到高度1&#xff0c;不过要记录过程高度&#xff0c;以便后续判断是否存在(想到集合哈希),然后外面嵌套数组(活用数据结构)resize给大小 vector<unordered_set<ll>> hs;//记录第i根竹子下降到1过程中的每…