多模态大模型(5)--LLaVA

embedded/2024/11/24 10:43:27/
aidu_pl">

人类通过如视觉、语言、听觉等多种渠道与世界互动,每个单独的渠道在表示和传达某些概念时都有其独特的优势,人工智能(AI)的一个核心愿景是开发一个能够有效遵循多模态视觉和语言指令的通用助手,与人类意图一致,可以完成各种现实世界任务。本文介绍另外一篇基于BLIP的多模态大模型LLaVA(Large Language and Vision Assistant),这是一个端到端训练的大型多模态模型,同时,首次引入仅使用语言训练的GPT-4,生成多模态语言-图像,通过指令调优构建通用视觉-语言模型。下面详细解读。

架构

为了有效利用预训练的LLM语言大模型与BLIP视觉大模型,LLaVA使用一个简单的线性层来将图像特征映射到词嵌入空间。LLaVA模型的架构包括一个视觉编码器(如CLIP的ViT-L/14),一个语言模型(如Vicuna),以及一个Q-Former,用于将视觉特征和语言指令结合起来。
在这里插入图片描述

模型

训练过程中分两个阶段:
(1)预训练的视觉编码器和LLM的基础上进行特征对齐的预训练
(2)端到端的微调,以适应生成的指令跟随数据

  1. 预训练模型初始化:
    ○ 基于预训练的BLIP-2模型,该模型包含一个视觉编码器、一个大型语言模型(LLM)和一个查询变换器(Query Transformer,简称Q-Former)。
  2. 指令调优:
    ○ 使用机器生成的指令跟随数据,LLaVA模型在多模态数据上进行指令调优,以提高模型对视觉和语言指令的理解能力。
  3. 数据生成:
    ○ 使用GPT-4生成多模态语言-图像指令跟随数据,这些数据被转换成指令调优格式,用于训练模型。
  4. 指令感知的视觉特征提取:
    ○ 引入了一个指令感知的Q-Former模块,该模块不仅接收图像特征,还接收文本指令作为输入,以便提取与给定指令相关的任务相关的视觉特征。

实验

LLaVA多模态大模型在如下几个方面都有不错的提升,在Science QA dataset的数据集中,比GPT-4有显著的提升。

  1. 多模态聊天能力:
    ○ LLaVA模型展现出了多模态聊天能力,能够处理包含图像和文本的复杂对话任务。
  2. 零样本性能:
    ○ 论文中的实验结果表明,LLaVA在多个零样本任务上取得了优异的性能,包括在合成多模态指令跟随数据集上与GPT-4相比的相对分数。
  3. 下游任务微调:
    ○ 当在特定的下游任务(如Science QA)上进行微调时,LLaVA与GPT-4的结合实现了新的最佳准确度。
    在这里插入图片描述

小结

LLaVA模型展示了视觉指令调优的有效性,在ScienceQA上微调后达到了新的最准确度,并且在多模态聊天数据上微调后展现出强大的视觉聊天能力。核心贡献如下:
● 多模态指令跟随(instruction-follow)数据:填补了视觉-语言的指令跟随数据的空白,同时提供一个pipeline方式使用GPT-4,将图像-文本对转化为指令跟随格式
● 新的多模态大模型,使用了视频encoder CLIP与decoder Vicuna,与GPT-4级联后,可以达到更高的水准
● 构建了一个多模态的指令跟随标准评测数据集

PS:相关论文:《Visual Instruction Tuning》,https://arxiv.org/pdf/2304.08485,感兴趣的读者可以详细阅读


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

相关文章

C++ 中的模板特化和偏特化 如何进行模板特化和偏特化

模板特化和偏特化的概念 模板特化(Template Specialization) 概念:模板特化是指为特定的模板参数(或参数组合)提供一个特殊的实现。当编译器在实例化模板时,如果遇到与特化版本匹配的参数类型,就…

洛谷P2440 木材加工

木材加工 题目背景 要保护环境 题目描述 木材厂有 n n n 根原木,现在想把这些木头切割成 k k k 段长度均为 l l l 的小段木头(木头有可能有剩余)。 当然,我们希望得到的小段木头越长越好,请求出 l l l 的最大…

备赛蓝桥杯--算法题目(1)

1. 链表求和 . - 力扣(LeetCode) class Solution { public:ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {ListNode *head nullptr, *tail nullptr;int carry 0;while (l1 || l2) {int n1 l1 ? l1->val: 0;int n2 l2 ? l2->val:…

Java编程,配置mongoUri连接mongodb时,需对特殊字符进行转义

一、背景 java程序连接mongo有两种方式: 用户名和密码方式uri方式 1、用户名和密码 以用户数据库为例,注意看它的密码 spring:data:mongodb:host: 192.168.10.17database: db_user_serviceport: 3717username: user_servicepassword: user_service3…

java基础概念37:正则表达式2-爬虫

一、定义 【回顾】正则表达式的作用 作用一:校验字符串是否满足规则作用二:在一段文本中查找满足要求的内容——爬虫 二、本地爬虫VS网络爬虫 2-1、本地爬虫 示例: 代码优化: public static void main(String[] args) {// 大…

Level DB --- SkipList

class SkipList class SkipList 是Level DB中的重要数据结构,存储在memtable中的数据通过SkipList来存储和检索数据,它有优秀的读写性能,且和红黑树相比,更适合多线程的操作。 SkipList SkipList还是一个比较简单的数据结构&a…

接口设计中的数据精简技巧:提升效率与优化传输

文章目录 摘要引言数据精简的核心技术字段筛选数据压缩数据分页数据缓存 使用 ArkUI 和 ArkTS 实战示例字段筛选接口设计后端接口代码(伪代码)前端调用代码(ArkTS实现)ArkUI 界面实现数据压缩 实现逻辑详解字段筛选的实现逻辑数据…

Redis的基本使用命令(GET,SET,KEYS,EXISTS,DEL,EXPIRE,TTL,TYPE)

目录 SET GET KEYS EXISTS DEL EXPIRE TTL redis中的过期策略是怎么实现的(面试) 上文介绍reids的安装以及基本概念,本章节主要介绍 Redis的基本使用命令的使用 Redis 是一个基于键值对(KEY - VALUE)存储的…