多模态论文笔记——LLaVA

大家好,这里是好评笔记,公主号:Goodnote,专栏文章私信限时Free。本文详细介绍多模态模型:LLaVA。处理包含图像和文本的多模态数据,并生成合理准确的回答。

在这里插入图片描述

文章目录

    • 论文
    • 模型架构
      • 视觉编码器
      • 语言模型
      • 多模态融合
        • 总结
    • 训练细节
      • 阶段1:特征对齐预训练
      • 阶段2:端到端微调
      • 总结
    • 实验
    • LLava 1.5模型
      • 论文
      • LLaVA 1.5模型的改进
    • LLava 1.6(LLaVA-NeXT)模型
      • 论文
      • LLaVA 1.5模型的改进
    • Reference
  • 历史文章
    • 机器学习
    • 深度学习

论文

Visual Instruction Tuning

LLaVA(Large Language and Vision Assistant)是一种多模态模型,将视觉和语言能力结合在一起,用于图像-文本理解和生成任务。以下是对LLaVA的详细介绍:

模型架构

在这里插入图片描述
LLaVA(Large Language and Vision Assistant)是一个简单高效的多模态模型,它通过映射矩阵连接一个预训练的 视觉编码器(CLIP ViT-L/14) 和一个 大语言模型(Vicuna) 实现跨模态理解,再使用Vicuna的解码能力生成自然语言输出。

  • 输入图像 X v X_v Xv,经过视觉编码器得到图像特征 Z v Z_v Zv,之后 Z v Z_v Zv通过多模态融合的线性投影处理,得到H_v(与文本特征对齐,达到同维度)。
  • 输入文本 X q X_q Xq,经过文本编码器得到图像特征 H q H_q Hq
  • 图像特征 Z v Z_v Zv和图像特征 H q H_q Hq,经过文本解码器,得到 X a X_a Xa

视觉编码器

LLaVA 的视觉编码器采用了 CLIP 的 Vision Transformer (ViT-L/14),这是一个强大的预训练视觉模型。
详细内容参考:多模态论文笔记——CLIP、BLIP

架构与功能

  • CLIP ViT-L/14:由 OpenAI 提出的多模态模型,使用图像编码器和文本编码器对图像-文本对进行联合训练。
  • 输入图像经过编码器后,被转化为一个二维网格的嵌入表示(feature map),其形状为:
    [ 1 , grid H × grid W , hidden_dim ] [1, \text{grid}_H \times \text{grid}_W, \text{hidden\_dim}] [1,gridH×gridW,hidden_dim]
    • grid H \text{grid}_H gridH grid W \text{grid}_W gridW:表示图像在空间维度上的分辨率。
    • hidden_dim \text{hidden\_dim} hidden_dim:每个 token 的特征向量维度。
  • 这种结构化表示捕获了图像的全局和局部信息。

语言模型

LLaVA 的语言部分采用了 Vicuna,这是基于 Meta 的 LLaMA 微调优化而成的开源语言模型。Vicuna 在多模态任务中发挥着重要作用,它通过结合视觉特征和文本特征来执行生成任务。

  1. 从文本中提取特征
    • Vicuna 作为一个语言模型,首先负责从输入的文本中提取语言特征。Vicuna 能够有效地理解文本内容,将输入的自然语言句子转化为高维的特征表示(例如,token embedding)。这些特征是进行多模态生成和推理的基础。
  2. 多模态融合后,进行文本的生成
    • 在 LLaVA 中,图像特征通过 CLIP 提取,并经过投影层转换为与文本特征相同的维度。这时,文本和图像的特征被拼接成一个统一的 token 序列。Vicuna 接收这些融合后的特征(图像 token 和文本 token)作为输入,进行生成任务。
    • 通过其强大的生成能力,Vicuna 能够基于输入的视觉信息和文本提示,生成符合语义的自然语言文本。生成的文本可以是图像描述、回答视觉问答、推理结论或其他复杂的生成任务。

多模态融合

LLaVA 的多模态融合部分通过简单而高效的机制,将视觉和语言特征结合在一起。

  1. 对齐机制

    • 图像特征的维度 hidden_dim \text{hidden\_dim} hidden_dim 和语言模型的嵌入维度 emb_dim \text{emb\_dim} emb_dim 可能不一致。
    • 为此,使用了一个线性投影 W W W 对图像特征进行变换:
      Projected Features = Vision Features ⋅ W \text{Projected Features} = \text{Vision Features} \cdot W Projected Features=Vision FeaturesW
      • 线性投影的输出形状为 [ 1 , grid H × grid W , emb_dim ] [1, \text{grid}_H \times \text{grid}_W, \text{emb\_dim}] [1,gridH×gridW,emb_dim]
  2. 特征拼接

    • 投影后的图像 token 与文本 token 按序列形式拼接在一起,形成一个长 token 序列:
      Input Sequence = [ Image Tokens , Text Tokens ] \text{Input Sequence} = [\text{Image Tokens}, \text{Text Tokens}] Input Sequence=[Image Tokens,Text Tokens]
    • 这种设计允许语言模型通过注意力机制统一处理视觉和语言信息。

在多模态融合阶段,LLaVA团队使用了轻量级的投影层将图像特征映射到语言模型的嵌入空间,论文中提到了,这是为了便于快速进行实验和优化。其实可以使用更复杂、更有效的图像-语言融合机制,如: Flamingo 中的 gated cross-attention 和 BLIP-2 中的 Q-former 等方法。
BLIP2 的详细内容参考:
cross-attention是早期扩散模型的融合技术,感兴趣的可以参考:
在DiT论文中使用了三种多模态融合技术,cross-attention是其中一种,感兴趣可以参考:


总结
  1. 视觉编码器
    • CLIP ViT-L/14 作为视觉编码器,从图像中提取结构化的特征。通过 CLIP,图像被转化为固定维度的特征嵌入,这些特征为后续的多模态融合提供视觉信息。
  2. 语言模型
    • 采用基于 LLaMA 微调优化的 Vicuna,这使得模型在多模态任务中能够有效地处理文本输入。Vicuna 主要负责从文本中提取特征,并结合视觉信息进行多模态任务的生成。
  3. 多模态融合
    • 视觉特征和文本特征通过 线性投影token 拼接 的方式进行融合。视觉特征经过投影后与文本特征对齐,形成一个统一的 token 序列,然后输入到语言模型中进行生成任务。

训练细节

LLaVA 模型在训练过程中分为两个阶段:特征对齐预训练端到端微调

阶段1:特征对齐预训练

  • 原因:由于 CLIP 的视觉编码器和语言模型的词嵌入(word embedding)不在同一个语义空间,因此需要这个阶段来确保视觉和语言特征可以有效对齐。

  • 目标:将图像特征与文本词嵌入(word embedding)对齐,对图像特征进行变换,将其转换到文本的语义表达空间,使得图像和文本能够在统一的语义空间内进行操作。

  • 步骤

    • 数据集:在 CC3M 数据集(一个包含大量图像和文本对的数据集)上进行预训练。
    • 冻结模型权重:在这个阶段,视觉编码器(Vision Encoder)LLM(大型语言模型,如 Vicuna)保持权重不变。
    • 训练插值层:唯一需要训练的是 投影层(Projection W) 的权重,该层用于将从 CLIP 提取的视觉特征(图像 token embedding)映射到与文本特征(文本 word embedding)相同的语义空间。
    • 对齐目标:通过训练,最大化图像特征与文本词嵌入之间的对齐概率,即让图像和文本特征在同一语义空间中更加接近。

阶段2:端到端微调

  • 目标:通过端到端微调,优化投影层和语言模型,以提升模型在多模态任务中的表现,特别是生成和推理任务。

  • 步骤

    • 数据集:使用 生成的指令数据,包括 对话详细描述复杂推理 数据,进行训练。
    • 冻结视觉编码器:在这个阶段,依然冻结 视觉编码器(Vision Encoder) 的权重不变,只更新语言模型和投影层的权重
    • 更新模型权重:训练过程中会同时更新 投影层(Projection W)LLM语言模型 的权重,以适应下游任务。
    • 任务类型
      • Multimodal Chatbot:训练模型理解和生成基于图像和文本的对话。LLaVA在多模态聊天机器人实验中表现出色,能够准确回答用户的问题,并提供详细的描述和复杂的推理。与BLIP-2和OpenFlamingo相比,LLaVA在对话、详细描述和复杂推理任务上的表现均优于对手。
      • Science QA:训练模型处理图像和文本的科学问答任务。在科学问答数据集上,LLaVA在无图像上下文的问题上达到了90.92%的准确率,接近当前最优方法MM-CoTBase的91.68%。通过与GPT-4的集成,LLaVA的最终准确率达到了92.53%,刷新了现有方法的记录。

总结

  • 阶段1:特征对齐预训练,通过训练投影层来对齐图像和文本特征,使它们在同一语义空间中。
  • 阶段2:端到端微调,通过在具体任务(如对话生成和科学问答)上进行微调,进一步提升模型的多模态生成和推理能力。

这两个阶段结合起来,帮助 LLaVA 模型从特征对齐到多模态任务的优化,实现高效的图像-文本融合和生成能力。

LLaVA的训练过程中对多轮对话实验了一些策略:

  1. 多轮对话数据生成:为每张图片生成多轮问题和答案的对话数据,形成图像和文本的交互序列。
  2. 指令构建
    • 第一轮:随机选择图片和问题的顺序。
    • 后续轮次:指令设置为当前轮次的问题。
  3. 多模态指令-跟随序列格式化:通过上述构建方式,确保图像和文本数据以统一的格式输入模型,保证多模态数据的有效融合。
  4. 语言模型指令调优:对语言模型进行自回归训练,使其在给定图像和指令的条件下,生成符合上下文的回答。

这种策略通过结合图像与文本的多模态信息,优化语言模型的生成能力,适应复杂的多模态任务。

实验

  1. Multimodal Chatbot:LLaVA在多模态聊天机器人实验中表现出色,能够准确回答用户的问题,并提供详细的描述和复杂的推理。与BLIP-2和OpenFlamingo相比,LLaVA在对话、详细描述和复杂推理任务上的表现均优于对手。
  2. Science QA:在科学问答数据集上,LLaVA在无图像上下文的问题上达到了90.92%的准确率,接近当前最优方法MM-CoTBase的91.68%。通过与GPT-4的集成,LLaVA的最终准确率达到了92.53%,刷新了现有方法的记录。

LLava 1.5模型

论文

Improved Baselines with Visual Instruction Tuning

LLaVA 1.5模型的改进

在这里插入图片描述

LLaVA 1.5 在多个方面进行了增强,包括语言模型的更新、插值层的升级、视觉编码器分辨率的提升,以及数据质量的改进,这些都共同推动了模型的性能提升,使得LLaVA 1.5能够在多模态任务上取得更好的效果。

  1. LLM模型
    • Vicuna v1.5 13B:LLaVA 1.5 使用了更大、更强的语言模型——Vicuna v1.5(13B参数),相较于LLaVA原版使用的语言模型,Vicuna v1.5 具有更强的语言理解和生成能力,特别是在多模态任务中表现出色。
  2. 融合(插值层)
    • MLP层:LLaVA 1.5 将原先的单一线性投影层(Projection Layer)替换为更复杂的多层感知机(MLP)。MLP具有多个线性层堆叠,并能捕捉更复杂的非线性关系,这有助于更好地对齐视觉和语言特征,从而提升多模态生成效果。
  3. Vision Encoder(视觉编码器)
    • CLIP ViT-L/336px:在LLaVA 1.5中,输入图像的分辨率被提高到336像素(相比LLaVA的224像素)。这种分辨率提升使得模型能够提取更多细节,从而更好地理解图像中的内容,提升对图像的细节捕捉能力。
  4. 更高质量的数据
    • 数据质量的提升通常意味着使用了更丰富、更具多样性且标注更加精准的训练数据集。这有助于提高模型的表现,尤其是在更复杂的多模态任务上。

LLava 1.6(LLaVA-NeXT)模型

论文

LLaVA-NeXT: Improved reasoning, OCR, and world knowledge

LLaVA 1.5模型的改进

在这里插入图片描述
LLaVA 1.6在多个方面进行了重要升级,包括视觉编码器分辨率的提升、语言模型参数量的大幅增加、OCR能力的增强以及视觉对话性能的改进。这些改进使得LLaVA 1.6在图像理解、语言生成、推理和OCR任务上都达到了新的高度,表现更加出色。

  1. Vision Encoder分辨率
  • LLaVA引入了“AnyRes”技术。这项技术使模型具有适应性,能够根据输入图像的不同分辨率进行调整,从而优化图像处理过程。
  • 支持更大的输入分辨率,新增的分辨率包括672x672、336x1344、1344x336等。这些更高的分辨率允许模型捕捉更多的图像细节,从而增强其对图像的理解能力。
  • 还支持通过图片裁切、编码和合并的方式处理不同分辨率的输入,进一步增强了视觉编码器的灵活性和表现。
  1. LLM模型参数量大升级
    • LLaVA 1.6将语言模型(LLM)的参数量从1.5版本的13B提升到34B。这一升级使得模型具有更强的语言理解和生成能力,尤其在处理复杂的多模态任务时,表现得更加出色。
  2. OCR能力提升
    • OCR(光学字符识别)能力的提升使得LLaVA 1.6在图像中的文字识别和推理能力上有了显著进展。通过改进指令数据集的构建,LLaVA 1.6能够更好地进行OCR任务,提升了视觉推理的准确性。
  3. 更好的视觉对话
    • 更好的视觉对话,更多场景,覆盖不同应用,以及更好的世界知识和逻辑推理。它能够根据图像内容提供更丰富、更精确的回答,进一步增强了多模态交互的能力。
  4. 高效部署和推理
    • 高效的推理和部署能力是LLaVA 1.6的亮点之一,尤其是在资源受限的环境下,其优化的推理框架(如SGLang)能够在保证模型表现的同时,提升推理速度和响应能力。这对于实际应用场景非常重要,尤其是在实时处理需求高的任务中。

Reference

【LLM多模态】LLava模型架构和训练过程 | CLIP模型
一文读懂多模态大模型:LLaVA系列 | 从图像到视频的内容理解


历史文章

机器学习

机器学习笔记——损失函数、代价函数和KL散度
机器学习笔记——特征工程、正则化、强化学习
机器学习笔记——30种常见机器学习算法简要汇总
机器学习笔记——感知机、多层感知机(MLP)、支持向量机(SVM)
机器学习笔记——KNN(K-Nearest Neighbors,K 近邻算法)
机器学习笔记——朴素贝叶斯算法
机器学习笔记——决策树
机器学习笔记——集成学习、Bagging(随机森林)、Boosting(AdaBoost、GBDT、XGBoost、LightGBM)、Stacking
机器学习笔记——Boosting中常用算法(GBDT、XGBoost、LightGBM)迭代路径
机器学习笔记——聚类算法(Kmeans、GMM-使用EM优化)
机器学习笔记——降维

深度学习

深度学习笔记——优化算法、激活函数
深度学习——归一化、正则化
深度学习——权重初始化、评估指标、梯度消失和梯度爆炸
深度学习笔记——前向传播与反向传播、神经网络(前馈神经网络与反馈神经网络)、常见算法概要汇总
深度学习笔记——卷积神经网络CNN
深度学习笔记——循环神经网络RNN、LSTM、GRU、Bi-RNN
深度学习笔记——Transformer
深度学习笔记——3种常见的Transformer位置编码
深度学习笔记——GPT、BERT、T5
深度学习笔记——ViT、ViLT
深度学习笔记——DiT(Diffusion Transformer)
深度学习笔记——CLIP、BLIP
深度学习笔记——AE、VAE
深度学习笔记——生成对抗网络GAN
深度学习笔记——模型训练工具(DeepSpeed、Accelerate)
深度学习笔记——模型压缩和优化技术(蒸馏、剪枝、量化)
深度学习笔记——模型部署
深度学习笔记——VQ-VAE和VQ-VAE-2

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/497126.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【源码 导入教程 文档 讲解】基于springboot校园新闻管理系统源码和论文

可做计算机毕业设计JAVA、PHP、爬虫、APP、小程序、C#、C、python、数据可视化、大数据、文案 传统信息的管理大部分依赖于管理人员的手工登记与管理,然而,随着近些年信息技术的迅猛发展,让许多比较老套的信息管理模式进行了更新迭代&#xf…

时序论文34|AdaWaveNet:用于时间序列分析的自适应小波网络

论文标题:AdaWaveNet: Adaptive Wavelet Network for Time Series Analysis 论文链接:https://arxiv.org/abs/2405.11124 论文代码:https://github.com/comp-well-org/AdaWaveNet/ 前言 这篇文章面向非平稳时间序列进行分析与建模&#x…

运行Springboot + Vue 项目

想要源码,请点击的系统获取源码:https://bichuanyuan.online **前言:**很多小白拿到java SpringBoot Vue前后端分离的项目却不知道怎么运行起来,这里博主就带领小白们一起将项目运行起来吧! 一、环境准备 java后端…

16、【ubuntu】【gitlab】【补充】服务器断电后,重启服务器,gitlab无法访问

背景 接wiki 【服务器断电后,重启服务器,gitlab无法访问】https://blog.csdn.net/nobigdeal00/article/details/144280761 最近把不小心把服务器重启,每次重启后,都会出现gitlab无法访问 分析 查看系统正在运行的任务 adminpc…

保姆级JavaWeb项目创建、部署、连接数据库(tomcat)

目录 简介: 一、创建项目 二、tomcat部署 1、将tomcat解压在一个自己找得到路径 2、在idea中添加tomacat模板块 3、添加tomcat服务器 ?三、连接数据库 1、创建一个新的数据库 2、为项目添加jdbc驱动包 3、创建jdbc类 简介: 本学期学的javawe…

使用 HTML 和 CSS 实现绚丽的节日烟花效果

文章目录 1. 效果预览2. 核心技术栈3. 核心代码解读3.1 HTML结构3.2 霓虹文字的CSS样式3.2.1 核心样式代码3.2.2 动画效果 3.3 JavaScript 的烟花效果实现3.3.1 烟花上升3.3.2 粒子爆炸 4. 用户交互5. 运行步骤总结 1. 效果预览 打开后输入文本的展示内容 用户点击页面后播放…

读书笔记-《乡下人的悲歌》

前段时间看了一些 J.D. Vance 的采访视频,几乎都是记者带着刁难的问题先手进攻,而 Vance 面带微笑,提及对方的名字,条理清晰地从对方的攻击中切回主题形成后手反制,实在让人看得过瘾。 更不可思议的是,Van…

Llama 3 后训练(三)

目录 4. 后训练 4.1 建模 图表解读 4.1.1 聊天对话格式 4.1.2 奖励建模 4.1.3 监督微调(Supervised Finetuning) 4.1.4 直接偏好优化(Direct Preference Optimization) 4.1.5 模型平均(Model Averaging&#x…

AI发展新态势:从技术突破到安全隐忧

AI安全的新挑战 近期AI领域出现了令人担忧的新发现。根据最新研究,AI模型已经开始展现出策略性欺骗的倾向。具体表现在以下几个方面: 策略性欺骗行为的出现 在实验中发现,当研究人员试图让AI执行一些"反Anthropic"的操作时(如获取模型权限和外部服务器访问),模…

vue2 elementui if导致的rules判断失效

优化目标 和 目标转化出价必填的 切换的时候还会隐藏掉 这时候的if语句会导致rules判断失效 我的办法是把判断拉到外面 别放在el-form-item里 <section v-if"unitForm.baseTarget OCPM && unitForm.cpaTargetOptions ! undefined && unitForm.cpaTa…

基于顺序表实现队列循环队列的处理

文章目录 1.假溢出的现象2.循环队列3.顺序表实现队列架构4.顺序表模拟实现队列5.设计循环队列&#xff08;校招难度&#xff09; 1.假溢出的现象 下面的这个就是我们的假溢出的这个现象的基本的来源&#xff1a; 我们的这个队列里面是有9个位置的&#xff0c;我们知道这个队列…

NI GPIB设备的GPIB Analyzer功能

GPIB Analyzer支持&#xff1a; 只有名称中带有“”符号的设备或电缆&#xff08;如GPIB或HS&#xff09;支持GPIB Analyzer功能。 示例&#xff1a;GPIB-USB-HS 支持GPIB Analyzer&#xff0c;而 GPIB-USB-HS 和 GPIB-USB-B 不支持。 性能对比&#xff1a; 功能GPIB-USB-B…

微软 CEO 萨提亚・纳德拉:回顾过去十年,展望 AI 时代的战略布局

近日&#xff0c;微软 CEO 萨提亚・纳德拉与著名投资人比尔・格里和布拉德・格斯特纳进行了一场深度对话&#xff0c;回顾了过去十年微软的转型历程&#xff0c;并展望了 AI 时代的战略布局。在这次访谈中&#xff0c;纳德拉分享了他在微软的早期经历&#xff0c;包括他加入微软…

18_HTML5 Web IndexedDB 数据库 --[HTML5 API 学习之旅]

HTML5 Web IndexedDB API 是一种在用户浏览器中存储大量结构化数据的机制&#xff0c;它允许存储和检索键值对&#xff0c;其中键可以是任何有效的JavaScript对象。IndexedDB 主要用于需要复杂查询的数据密集型Web应用。 IndexedDB 的特点&#xff1a; HTML5 Web IndexedDB A…

e3 1220lv3 cpu-z分数

e3 1220lv3 双核四线程&#xff0c;1.1G频率&#xff0c;最低可在800MHZ运行&#xff0c;TDP 13W。 使用PE启动后测试cpu-z分数。 现在e3 1220lv3的价格落到69元。

【ETCD】【实操篇(十五)】etcd集群成员管理:如何高效地添加、删除与更新节点

etcd 是一个高可用的分布式键值存储&#xff0c;广泛应用于存储服务发现、配置管理等场景。为了确保集群的稳定性和可扩展性&#xff0c;管理成员节点的添加、删除和更新变得尤为重要。本文将指导您如何在etcd集群中处理成员管理&#xff0c;帮助您高效地维护集群节点。 目录 …

【机器学习篇】从新手探寻到算法初窥:数据智慧的开启之门

文章目录 【机器学习篇】从新手探寻到算法初窥&#xff1a;数据智慧的开启之门前言一、什么是机器学习&#xff1f;二、机器学习的基本类型1. 监督学习&#xff08;Supervised Learning&#xff09;2. 无监督学习&#xff08;Unsupervised Learning&#xff09;3. 半监督学习&a…

Unity游戏环境交互系统

概述交互功能使用同一个按钮或按钮列表,在不同情况下显示不同的内容,按下执行不同的操作。按选项个数分类环境交互系统可分为两种,单选项交互,一般使用射线检测;多选项交互,一般使用范围检测。第一人称游戏单选多选都可以用,因为第一人称人物背对一个可交互对象时显示交…

虚幻引擎结构之UWorld

Uworld -> Ulevel ->Actors -> AActor 在虚幻引擎中&#xff0c;UWorld 类扮演着至关重要的角色&#xff0c;它就像是游戏世界的总指挥。作为游戏世界的核心容器&#xff0c;UWorld 包含了构成游戏体验的众多元素&#xff0c;从游戏实体到关卡设计&#xff0c;再到物…

【Java】面试题 并发安全 (2)

文章目录 可重入锁&#xff08;ReentrantLock&#xff09;知识总结1. 可重入锁概念与特点2. 基本语法与使用注意事项3. 底层实现原理4. 面试回答要点 synchronized与lock的区别死锁相关面试题讲解死锁产生的四个条件ConcurrentHashMap2. JDK1.7的ConcurrentHashMap结构添加数据…