img

我们提出了将视觉能力融入低秩自适应(Vision as LoRA,VoRA),这是一种将大语言模型(LLM)转化为多模态大语言模型(MLLM)的全新范式。与依赖外部视觉模块进行视觉编码的主流多模态大语言模型架构不同,VoRA通过将特定于视觉的低秩自适应(LoRA)层直接集成到大型语言模型中,内化了视觉能力。这种设计使得在推理过程中,新增的参数能够无缝合并到大型语言模型中,消除了结构复杂性并将计算开销降至最低。此外,继承了大型语言模型处理灵活上下文的能力,VoRA可以处理任意分辨率的输入。为了进一步增强VoRA的视觉能力,我们引入了一种逐块蒸馏方法,将预训练视觉变换器(ViT)的视觉先验知识转移到低秩自适应层中,通过注入视觉知识有效加速训练。此外,我们应用双向注意力掩码来更好地捕捉图像的上下文信息。我们成功证明,在有额外预训练数据的情况下,VoRA的性能可以与传统的基于编码的多模态大语言模型相媲美。

简介

多模态大语言模型(MLLMs)通过模块化设计将预训练视觉模型与大语言模型(LLMs)集成,取得了显著进展:如图1(a)所示,视觉编码器提取的视觉特征通过连接器与大语言模型对齐。虽然这种方法在训练中效率较高,但由于依赖外部视觉专家模型,存在关键局限性,即额外的计算成本和图像分辨率限制。例如,许多视觉编码器,特别是视觉变换器(ViTs),遵循固定分辨率的训练范式,限制了灵活性。此外,模块化设计采用顺序工作流程:在视觉编码器和连接器完全处理完图像之前,大语言模型无法开始处理。为了克服这些问题,近期研究探索了统一的无编码器架构,该架构在单个变换器(即大语言模型)中直接处理原始像素,消除了对外部视觉模型的需求。然而,此类方法面临视觉和语言之间的模态冲突挑战,这会导致新的问题,如训练不稳定和灾难性遗忘问题。

图片

图1. VoRA的高层概述。视觉参数用眼睛图标表示。主流多模态大语言模型采用模块化的顺序架构:原始像素首先由预训练的视觉编码器处理以提取高级视觉特征,然后通过模态连接器与大语言模型对齐以执行视觉 - 语言任务。相比之下,VoRA仅由一个大语言模型和一个轻量级嵌入层组成。低秩自适应层作为视觉参数,可以集成到大语言模型中,而不会产生额外的计算成本或内存负担。

img

图2. VoRA的架构。图(a)展示了预训练阶段VoRA的架构:在此阶段,VoRA仅解冻视觉的LoRA层和视觉嵌入层,即一个带有位置嵌入的浅层多层感知机(MLP)层。图(b)展示了推理阶段的VoRA:LoRA层被合并到大型语言模型(LLM)中,因此唯一新增的参数是一个浅层嵌入层(约 个参数)。

将视觉作为LoRA

在本节中,我们介绍VoRA的三个关键组件:将视觉作为LoRA、逐块蒸馏以及用于视觉的双向注意力掩码。

1. 稳定训练:将视觉作为LoRA

如图2(a)所示,我们将LoRA层集成到大型语言模型(LLM)中以实现视觉理解。在预训练期间,首先使用一个轻量级嵌入层(即一个带有位置编码、约 个参数的浅层MLP)将图像转换为视觉嵌入。设 和 分别表示视觉Transformer(ViT)和大型语言模型(LLM)中的块数。我们将LoRA应用于大型语言模型(LLM)前 个块内的所有线性层,包括查询 - 键 - 值(QKV)投影和前馈网络(FFN)层。至关重要的是,在训练期间仅更新LoRA参数和视觉嵌入层,而原始大型语言模型(LLM)参数保持冻结。与全大型语言模型(LLM)训练相比,这种设计将视觉和语言参数解耦,稳定了训练过程,并避免了先前工作中观察到的训练崩溃问题。

图2(b)表明,预训练完成后,LoRA参数可以无缝合并到基础大型语言模型(LLM)中,从而消除额外的推理开销。

2. 加速训练:逐块蒸馏

我们引入了一种逐块蒸馏范式,以使VoRA的中间视觉表示与预训练视觉Transformer(ViT)的逐块特征对齐。这种方法通过知识蒸馏从视觉Transformer(ViT)转移视觉知识,在减少对大规模视觉数据依赖的同时加速训练。与更新整个模型的传统蒸馏方法不同,我们仅更新大型语言模型(LLM)中特定于视觉的LoRA层。具体而言,对于大型语言模型(LLM)前 层中的每个块 ,我们将其隐藏状态与视觉Transformer(ViT)中块 的隐藏状态对齐。训练目标结合了以下两个组件。

蒸馏损失。对于每个Transformer块 和视觉标记位置 ,我们通过以下方式最大化投影后的大型语言模型(LLM)特征与视觉Transformer(ViT)嵌入之间的余弦相似度:

其中 是视觉Transformer(ViT)的输出序列长度(表示一张图像的视觉嵌入数量), 表示块 中第 个标记的隐藏状态, 是一个投影层(均方根归一化(RMSNorm)+ 线性层),用于使大型语言模型(LLM)特征适应视觉Transformer(ViT)的嵌入空间。该损失在 个块上求平均值:

图片

语言建模损失。对于图像 - 文本对,我们使用交叉熵优化文本生成,这与大型语言模型(LLM)中使用的标准方法一致:

其中 是总序列长度, 表示视觉输入, 是第一个文本标记的索引。

最终目标。最终损失将两个目标结合起来:

3. 用于视觉的双向注意力掩码

虽然双向注意力掩码在各个领域的Transformer架构中很常见,但很少有研究探索用双向掩码取代自回归大型语言模型(LLM)的因果掩码,尤其是在多模态大型语言模型(MLLM)领域。

如图3所示,我们探索了将双向注意力掩码应用于视觉领域。我们的研究结果表明,这种注意力掩码对视觉-语言自回归架构(VoRA)的最终性能产生了积极影响,这将在第5节中进行讨论。与之前的研究不同,这些研究依赖于为自回归文本生成设计的因果掩码,我们证明了在对视觉标记采用双向注意力的同时,对文本保留因果掩码,不仅能保留语言能力,还能提升视觉性能。这与图像生成研究的见解相契合,凸显了VoRA作为多模态生成和理解任务统一架构的潜力。

表1. VoRA预训练阶段使用的数据。我们使用图像和文本数据的混合来缓解训练中的遗忘问题。

img

数据

1. 数据收集与预处理

我们声明,这项工作的主要重点不在于数据工程或过滤;因此,我们采用了一种直接的数据收集和处理策略。遵循先前的研究,我们的预训练框架使用了重新标注的数据。鉴于开源的大规模重新标注数据集有限,我们使用Qwen2 - VL - 72B为从DataComp - 1B中采样的图像生成标注。从这个原始数据集中,我们选择了约2900万张较长边超过448像素的图像。

我们认识到这个数据集缺乏特定的世界知识,特别是关于地标、名人和艺术品的知识。为了解决地标数据的不足,我们用来自谷歌地标数据集v2(GLDv2)的约140万张图像补充了我们的数据集。对于其他类别,没有合适的百万级数据集可用。此外,由于潜在的伦理问题,我们选择不收集此类数据。因此,我们承认我们的方法在这些领域可能表现不佳。然而,未来的工作可以通过整合相关数据集来缓解这一限制。

2. 多模态数据混合

虽然VoRA将视觉和语言参数解耦,但我们观察到仅进行扩展的标注训练会略微降低大语言模型(LLM)的指令遵循能力。为了保留这种能力,我们将文本指令数据混合到训练数据中。如表1所示,我们最终的混合数据包含约 个图像 - 标注对和 个文本指令样本。文本数据直接来自:Infinity - Instruction、SmolTalk、Cambrian - 1和LLaVA - OneVison。

图片

图4. 不同设置下的语言建模损失。用新的数据模态训练完整的大语言模型会导致损失曲线出现不可恢复的峰值,即损失崩溃。

实验

1. 实现细节

训练设置。除非另有说明,在所有实验中,我们默认使用AIMv2 - Huge - 448p作为视觉编码器,使用Qwen2.5 - 7B - Instruct作为大语言模型。预训练学习率固定为0.0002(除非明确改变,否则保持不变),有100个热身步骤,全局批量大小保持在256。所有其他超参数和优化器配置遵循中的默认设置。

对于微调,所有LoRA层都合并到大语言模型中,而其他组件(如蒸馏模块)则被移除。完整的大语言模型和600万参数的视觉嵌入层是可训练的。对于原生分辨率变体(表2中的VoRA - AnyRes),我们保留固定分辨率版本的预训练权重,仅在微调期间采用原生分辨率策略。

基准测试。如表2和表3所示,我们在几个基准测试上评估了模型:VQAv2:VQAv2;SQA - I:ScienceQA - 图像;TQA:TextVQA;POPE:POPE;MMP :MME感知;MME :MME认知;MMB:MMBench;SEED - I:SEED - 图像;MMVet:MMVet;AI2D:AI2D;RQA:真实世界问答;MMMU:MMMU。

2. 消融研究

我们的消融研究集中在VoRA的三个关键组件上:将视觉作为LoRA、逐块蒸馏和视觉的双向注意力掩码。我们采用两种主要方法来评估不同设置下的性能:如图5所示,在我们的DataComp29M - recap数据集的一个 子集上的预训练损失,以及表2中呈现的八个基准测试的指标。此外,我们还可视化了所有块的平均蒸馏损失,如图6所示。

对将视觉作为LoRA的消融研究。由于模态冲突,训练全参数大语言模型被证明是不稳定的(图4),这与中的发现一致。虽然将学习率降低到较低值使我们能够在多次尝试中观察到一次成功的训练案例,但损失的下降速度比LoRA - 1024慢。因此,我们将其排除在主要实验之外。

接下来,我们分析了VoRA中不同的LoRA秩(rank)配置。图5显示,与秩为1024相比,秩为512导致的损失 略高。在蒸馏损失方面(图6),这种趋势依然存在,秩为512时的逐块蒸馏平均损失比秩为1024时略高(高0.005)。尽管两种配置最终的平均得分均为55.6(表2),但持续的损失优势表明,较高的秩可能具有更好的优化潜力。此外,我们在秩为1536时遇到了训练不稳定的情况,这促使我们选择秩为1024作为默认配置。

双向注意力掩码的消融实验。如图5所示,在固定超参数(例如,LoRA秩和蒸馏类型)的情况下,与因果掩码相比,双向注意力掩码始终能实现更低的训练损失。如图6所示,所有Transformer块的平均蒸馏损失降低进一步证明了这一经验优势。从数量上看,如表2所示,用双向掩码替代因果掩码可显著提升性能。例如,从LoRA - r1024|因果|逐块配置切换到LoRA - r1024|双向|逐块配置,平均得分提高了2.4分;用LoRA - r1024|双向|无替代LoRA - r1024|因果|无,得分提高了0.1分。

逐块蒸馏。如图5和表2所示,仅对最后一个Transformer块进行蒸馏可显著提高训练效率。例如,从LoRA - r1024|双向|无配置过渡到LoRA - r1024|双向|最后一块配置,得分提高了2.7分,损失降低了0.016。通过逐块监督将蒸馏扩展到所有块进一步提升了性能:与LoRA - r1024|双向|最后一块配置相比,LoRA - r1024|双向|逐块配置额外提高了2.7分,损失又降低了0.016。这些结果表明,普通的蒸馏方法,即最后一块蒸馏,可以加速训练,而逐块蒸馏甚至可以增强这种效果。

图片

图5. 不同配置下的预训练损失曲线。为了便于可视化,损失值进行了平滑处理(窗口大小为100)。固定数据采样顺序以确保公平比较,各种设置下损失曲线的相似轨迹证明了这一点。LoRA - r1024 双向|逐块指的是以下设置:秩为1024的LoRA、视觉的双向注意力掩码以及逐块蒸馏。损失最低的配置被用作我们实验中的默认设置。

表2. 各种设置在标准基准测试中的性能表明,预训练期间的损失越低,性能越好。“LoRA - r1024 (2B)”表示LoRA层的秩设置为1024,总共约有20亿个参数被解冻用于训练。

img

数据效率分析。我们以普通LoRA为基线,通过报告达到特定损失阈值所需的相对训练步数来衡量数据效率。

如图7所示,无蒸馏的双向注意力变体(LoRA - r1024|双向|无)达到损失 时需要基线训练步数的102.2%,而添加逐块蒸馏(LoRA - r1024|双向|逐块)后,这一比例降至95.7%。在较低损失时,效率差距更加明显:在损失 时,相同配置分别需要普通LoRA基线步数的 和 。这表明我们的最优配置比普通LoRA在训练步数减少35.5%的情况下实现了同等的收敛效果。

图片

图6. 各种设置下所有块的平均蒸馏损失。我们的LoRA - r1024|双向|逐块配置在所有块中实现了最低的平均蒸馏损失。这表明与ViT的特征空间更接近,证实了双向注意力掩码和更大秩的LoRA层也能增强视觉知识转移。

图片

图7. 数据效率分析。我们的实验表明,将视觉令牌的双向注意力掩码与逐块知识蒸馏相结合,与普通LoRA配置相比,显著提高了数据效率。此外,随着目标损失的降低(例如,从1.5降至1.1),相对于基线所需的数据比例逐渐减少,表明数据效率更高。

此外,我们的最佳配置相对于普通LoRA所需的数据比例随时间下降,这意味着使用 更少的训练数据可以实现相当的性能。

3. 标准评估

为了确保VoRA与现有方法之间的公平比较,我们特意限制了实验设计。虽然先前的工作(例如,EVE、EVEv2和Mono - InternVL)利用了大量的领域内数据集(表3),但由于专有训练数据的存在,这些方法使得直接比较变得复杂。我们的目标不是在基准测试中追求最先进的性能,而是验证一种新颖的多模态大语言模型(MLLM)架构。因此,我们将微调限制在公开可用的LLaVA - 665K数据集上,没有进行额外的扩展。

为了消除大语言模型(LLMs)和视觉变换器(ViTs)可能带来的优势,我们还使用Qwen - 2.5 - 7B和AIMv2 - 0.6B训练了一个LLaVA - 1.5模型。如表3所示,先前的无编码器方法通常采用复杂的多阶段管道,涉及模块冻结策略和专有数据集(例如,1亿 - 12亿个样本)。相比之下,我们的框架采用了简化的单阶段训练过程(预训练后进行微调),使用了约3000万个图像 - 文本对。

如表3所示,在严格的LLaVA - 1.5协议(即相同的提示/生成参数)下进行评估时,VoRA在大多数基准测试中取得了与官方和复现的LLaVA - 1.5基线相当的性能。然而,VoRA在MME感知测试中表现不佳,我们将这一差距归因于我们预训练数据中世界知识的有限性。表4进一步量化了这一点,VoRA在需要大量世界知识的任务上表现困难:1)从海报推断电影细节,2)识别名人,3)识别地标,4)对艺术品进行分类,因为这些任务需要我们训练数据中缺乏的外部领域知识。

表3. 在多个基准测试上与先前方法的比较。由于本文旨在证明VoRA是一个强大的基础模型,我们没有对微调数据进行扩展。因此,我们没有与近期的最先进模型进行比较,这些模型通常需要额外的数据工程或涉及专有数据集;利用额外微调数据的方法以灰色显示。对于EVE v2和Mono-InternVL,我们将特定领域的视觉问答(VQA)数据归类为微调数据,而非预训练数据,这与它们在各自论文中的原始分类不同。符号“49M(2)”表示该方法采用两阶段训练过程,总共使用了 个图像 - 文本对。删除线符号ViT表示在推理过程中排除了视觉Transformer(ViT)。

img

表4. VoRA在世界知识任务中的表现。正如预期的那样,我们承认它存在不足,这是由于我们的预训练数据集中缺乏相关的领域内数据。这也是我们在MME感知基准测试中表现较低的主要原因。

img

总结

VoRA最显著的局限性在于它依赖额外的预训练数据来弥补外部视觉模型的缺失,因为大语言模型必须从头开始学习视觉特征提取。虽然我们假设扩展VoRA可以通过避免预训练ViT中的信息损失来超越基于编码器的多模态大语言模型,但我们目前缺乏实证证据来证实这一优势。有限的训练数据和计算资源使我们无法观察到明显的性能交叉点。我们将这个有前景的假设留待未来探索。

第二个局限性是VoRA缺乏视觉标记(token)压缩功能。与传统的基于编码器的多模态大语言模型(MLLMs)在连接器中减少标记不同,为了进行公平比较,我们有意保留了原始的LLaVA - 1.5配置。在实践中,可以通过更大的图像块(patch)尺寸或标记修剪/合并技术来缓解这一缺陷。最后,尽管VoRA在世界知识任务上表现不佳,但这反映的是数据局限性而非架构限制,可通过数据工程来解决。

VoRA通过三个组件建立了一种将大语言模型(LLM)转换为多模态大语言模型(MLLM)的新范式:(1)将视觉作为低秩自适应(LoRA);(2)逐块蒸馏;(3)用于视觉的双向注意力掩码。通过可合并的LoRA层将视觉编码能力直接集成到LLM中,VoRA消除了对单独视觉模型的需求。这种统一的方法减少了内存开销,降低了计算成本,并利用LLM在上下文长度方面的固有灵活性,以最小的适配处理原生分辨率图像。这种设计避免了使用视觉变换器(ViT)作为外部视觉模型带来的问题,同时仍然将视觉和语言参数解耦,以确保训练的稳定性。

VoRA的架构本质上可扩展到视觉 - 语言任务之外。通过用预训练的特定模态专家模型(例如,用于音频、点云或生物医学信号的模型)替换视觉专家模型,并应用新的LoRA层,可以创建高效的音频 - 语言、3D - 语言或全模态变体,而不会增加计算成本。我们设想VoRA是迈向更统一的多模态智能的一步,在这种智能中,单一架构可以无缝处理各种模态和相关任务,同时保持推理效率。

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

https://img-blog.csdnimg.cn/img_convert/05840567e2912bcdcdda7b15cba33d93.jpeg

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

https://img-blog.csdnimg.cn/img_convert/05840567e2912bcdcdda7b15cba33d93.jpeg

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐