当前位置: 首页 > ds >正文

Encoder-free无编码器多模态大模型EVEv2模型架构、训练方法浅尝

基于视觉编码器的MLLM的基本构成:MLLM通常由预训练的模态编码器、预训练的LLM和一个连接它们的模态接口三个模块组成。模态编码器(如:CLIP-ViT视觉编码器、Whisper音频编码器等)将原始信息(如图像或音频)压缩成更紧凑的表示。预训练的LLM则负责理解和推理处理过的信号。模态接口用于对齐不同的模态,实现异构模态表征空间的语义对齐。下面这张图概括的比较好。
基于视觉编码器的MLLM的基本构成

上述工作都是基于视觉编码器的多模态大模型,下面来看一个Encoder-free VLMs(无视觉编码器的多模态大模型)的思路,供参考。

模型架构

视觉和文本编码

极简的patch嵌入层:构建了一个极简的patch嵌入层,从零开始生成视觉嵌入,以消除预训练视觉编码器的强归纳偏差。给定一个图像输入 I ∈ R H × W × 3 I \in R^{H \times W \times 3} IRH×W×3,首先通过一个卷积层(Conv1)和高斯误差线性单元(GELU)激活函数进行处理,得到一个二维特征图。然后,再通过另一个卷积层(Conv2)来进一步处理特征图,以灵活控制计算复杂度。公式如下:

x v = Conv2 ( GELU ( Conv1 ( I ) ) ) x_v = \text{Conv2}(\text{GELU}(\text{Conv1}(I))) xv=Conv2(GELU(Conv1(I)))

其中,Conv1和Conv2分别表示两个卷积层,具有不同的步幅和输出维度。

patch嵌入层支持任意比例的图像,最多可处理约2.5M像素(即2.5K个补丁标记)。使用Qwen2.5的文本标记器将文本T编码为标记嵌入 x t x_t xt,其维度为3584。

多模态编码:为了在视觉和文本之间建立有效的交互,提出了一个分而治之的设计,通过引入模态感知组件来显式解耦关键模块。包括独立的注意力矩阵(查询、键和值)、归一化层和前馈模块,每个都有不同的参数,以适应不同模态的需求。

分而治设计

通过分而治之的架构设计,EVEv2.0能够有效地减少模态间的干扰,提高模型的训练效率和性能。

使用多头自注意力(Multi-Head Self-Attention, ATTN)来跨所有模态进行建模,以在统一特征空间中模拟跨模态关系。公式如下:

其中, Q i = x i W Q u i Q_i = x_i W_Q^{u_i} Qi=xiWQui K i = x i W K u i K_i = x_i W_K^{u_i} Ki=xiWKui V i = x i W V u i V_i = x_i W_V^{u_i} Vi=xiWVui,模态特定的查询、键和值是从各自的注意力权重矩阵 W u i W^{u_i} Wui 中派生的。

通过完全解耦架构,最小化表示空间中的干扰。每个Transformer块的总体操作定义如下:

这种设计允许在保持预训练知识的同时,独立地进行单模态编码和跨模态对应,从而实现灵活的建模模式,以理解和推理多模态信息。

视觉特征与语言输入的融合方式

从代码上看,融合时,会遍历输入序列中的每个样本,根据 IMAGE_TOKEN_INDEX 确定图像特征的插入位置。将语言输入的嵌入和图像特征按顺序拼接在一起,形成新的输入嵌入 new_input_embeds,同时更新标签 new_labels 和视觉标记掩码 visual_token_mask。

https://github.com/baaivision/EVE/blob/main/EVEv2/eve/model/eve_arch.py

训练方式

训练流程概述。PEL/WEL 表示图像块/单词嵌入层。我们首先训练图像块嵌入层,以在不同模态间建立初始对齐。之后,我们仅更新大型语言模型(LLM)内的视觉层,逐步增强视觉感知能力。值得注意的是,我们将图像分辨率从 800×800 逐步提高到 1600×1600,并保持原始图像的宽高比。最后,我们通过问答(QA)和指令数据对整个模型进行训练,以加强跨模态对应和复杂理解能力。

训练过程分为四个连续阶段。训练数据包括公开可用的图像数据集,以及表 1 中的各种问答(QA)数据集和多模态对话数据。

第2.2阶段和第3阶段的训练数据集详细信息,用于微调E
VEv2.0,FL表示过滤后的训练数据集

阶段1:DenseFusion++
  1. DenseFusion++:通过大规模的合成数据来增强模型的视觉感知能力。使用LLaVA-1.6(7B)为基础,结合多个视觉专家(如标签、检测、OCR等)来学习GPT-4V的融合策略。通过这种方式,可以在不依赖高质量标注的情况下,扩展合成数据的规模,从而提高训练效率。
阶段2:LLM引导的对齐

冻结大型语言模型(LLM)的权重,仅训练patch嵌入层。使用公开的网页数据进行训练,以防止模型崩溃并加速后续阶段的收敛。通过这种方式,确保模型在初始阶段能够快速对齐视觉和语言信息。

阶段3:视觉感知学习和视觉-文本完全对齐
  1. 视觉感知学习(Vision Perception Learning):加载LLM的权重并初始化LLM内部的视觉层。仅训练patch嵌入层和视觉层,而冻结Qwen2.5模型,以便在大规模合成数据上进行视觉表示的学习。通过逐步增加数据量和图像分辨率,促进视觉感知能力的提升。

  2. 视觉-文本完全对齐(Vision-Text Fully-aligning):更新整个模型架构以进一步改善图像-文本的关联。使用多样化的指令数据集进行训练,以增强模型的视觉感知能力和视觉-语言对齐。通过这种方式,确保模型在处理复杂的多模态任务时能够表现出色。

阶段4:监督微调

进一步优化模型以理解复杂的指令和对话模式。使用高质量的指令数据集进行训练,以提高模型在实际应用中的表现。通过这种方式,确保模型能够处理各种真实世界的应用场景。

实验效果

参考文献:EVEv2: Improved Baselines for Encoder-Free Vision-Language Models,https://arxiv.org/pdf/2502.06788

http://www.xdnf.cn/news/3651.html

相关文章:

  • Windows 使用set和setx设置环境变量(skywalk3)
  • 2.LED灯的控制和按键检测
  • 【MySQL】事务管理
  • 区块链+IoT:创新场景落地背后的技术攻坚战
  • Python镜像源配置:
  • 数据结构-线性结构(链表、栈、队列)实现
  • MATLAB图像加密案例
  • 状压 DP 详解
  • 揭开并发编程的面纱:从零开始构建 Java 阻塞队列
  • 【AI提示词】系统分析员
  • Redis怎么避免热点数据问题
  • 软件第三方测试:关键部分、意义、流程及方法全解析?
  • 轻量级在线Excel预览工具
  • PyTorch、Flash-Attn、Transformers与Triton技术全景解析+环境包
  • 第 13 届蓝桥杯 C++ 青少组省赛中 / 高级组 2022 年真题
  • Python全流程开发实战:基于IMAP协议安全下载个人Gmail邮箱内所有PDF附件
  • SQL语句练习 自学SQL网 在查询中使用表达式 统计
  • 组件通信-mitt
  • 数据结构之哈夫曼树
  • 【Hive入门】Hive性能调优之Join优化:深入解析MapJoin与Sort-Merge Join策略
  • 安装深度环境anaconda+cuda+cudnn+pycharm+qt+MVS
  • python 桌面程序开发简述及示例
  • 玩转Docker(一):基本概念
  • 觅知解析计费系统重构版在线支付卡密充值多解析接口免授权无后门源码扶风二开
  • Git 完整教程:初学者分步指南
  • 网工_IP协议
  • 前端面经-VUE3篇--vue3基础知识(一)插值表达式、ref、reactive
  • 2000-2020年全国各地级市资本存量测算数据(以2000年为基期)(含原始数据+计算过程+结果)
  • ASP.NET MVC​ 入门与提高指南七
  • 性能测试工具篇