llava论文阅读

论文名称是 Visual Instruction Tuning 视觉指令微调

摘要

我们首次尝试仅使用语言模型GPT-4来生成多模态的语言-图像指令跟随数据。

通过在生成的数据上进行指令微调,我们引入了LLaVA(Large Language and Vision Assistant):一个端到端训练的大型多模态模型,它将视觉编码器与LLM(Large Language Model)连接起来,用于通用的视觉和语言理解。

构建了两个评价基准。

llava的效果:在一个合成的多模态指令遵循数据集上相对于GPT-4获得了85.1%的相对分数

当在Science QA上进行微调时,LLaVA和GPT-4的协同作用达到了92.53%的新的状态-of-the-art准确率。

我们使GPT-4生成的视觉指令调优数据、我们的模型和代码公开可用。

介绍

开放世界的视觉理解能力(包含 分类、检测 detection、分段 segmentation、标题生成 captioning、视觉生成和视觉编辑 visual generation and editing)

LLM的能力:对齐的LLMs在遵循人类指令方面的强大能力

文章主要贡献:
(1)多模态指令跟随数据,我们提出了一种数据改格式化的方法和流程,利用ChatGPT或GPT-4将图像-文本对转化为合适的指令执行格式。
(2)多模态大模型,LMM,CLIP+Vicuna,多模态推理数据集 Science QA
(3)LLaVA-Bench 包含两个有挑战的基准:图像、指令和详细注解。
(4)开源:生成的多模态指令数据、代码库、模型检查点和视觉聊天演示。

2 相关工作

指令调优:指令调优对应的模型有 InstructGPT [ 37]/ChatGPT [35], FLAN-T5 [ 11 ], FLAN-PaLM [ 11 ], and OPT-IML。 这种方法简单却能有效地提高LLMs的零样本和少样本泛化能力。因此,借鉴NLP领域的思想到计算机视觉领域是很自然的。更广泛地说,教师-学生蒸馏思想已经在其他领域,如图像分类中,与基础模型一起进行了研究。

Flamingo 视为 多模态领域的GPT3模型,因为它在零样本任务迁移和上下文学习方面的出色表现。

OpenFlamingo [5] 和 LLaMA-Adapter [59] 是开源项目,它们使 LLaMA 能够使用图像输入,为构建开源的多模态LLMs铺平了道路。

虽然这些模型在任务迁移泛化性能方面表现出潜力,但它们并没有使用视觉语言指令数据进行明确的微调,因此在多模态任务中的表现通常逊色于仅语言任务。

在这篇论文中,我们的目标是填补这一空白并研究其有效性。最后请注意,视觉指令微调 visual instruction tuning 与视觉提示微调 visual prompt tuning [23]不同:前者旨在提升模型遵循指令的能力,而后者旨在提高模型适应时的参数效率。

3 GPT 辅助的视觉指令数据生成

4 视觉指令微调

4.1 结构

用vision encoder对image进行编码,编码后用投影矩阵W 将其映射成和 语言嵌入Hq 相同维度的 视觉嵌入 Hv
[使用一个简单的线性层将图像特征连接到词嵌入空间]

在这里插入图片描述
也可以考虑更复杂的图像和语言表示之间的连接方案,比如Flamingo中的门控交叉注意力(gated cross-attention)和BLIP-2中的Q前缀(Q-former)。

4.2 训练

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

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

相关文章

c++基础知识复习(1)

前期知识准备 1 构造函数 (1)默认构造函数:没有参数传入,也没有在类里面声明 (2)手动定义默认构造函数:没有参数传入,但是在类里面进行了声明 可以在类外实现或者类内实现 以下案…

【Windows】 C++实现 Socket 通讯

【Windows】 C实现 Socket 通讯 一&#xff1a;头文件与套接字实例 &#xff08;1&#xff09;Windows 系统下所需头文件 &#xff1a; #include<WinSock2.h>  &#xff08;2&#xff09;我们使用 SOCKET 来作为套接字的实例&#xff1a;通过查看源码得知其是一个无符号…

计算机网络803-(4)网络层

目录 1.虚电路服务 虚电路是逻辑连接 2.数据报服务 3.虚电路服务与数据报服务的对比 二.虚拟互连网络-IP网 1.网络通信问题 2.中间设备 3.网络互连使用路由器 三.分类的 IP 地址 1. IP 地址及其表示方法 2.IP 地址的编址方法 3.分类 IP 地址 &#xff08;1&#x…

LabVIEW中的非阻塞定时器

在LabVIEW编程中&#xff0c;通常需要在某些任务执行过程中进行非阻塞的延时操作。例如&#xff0c;显示某条信息一段时间&#xff0c;同时继续执行其他任务&#xff0c;并在延时时间结束后停止显示该信息。这类需求通常用于处理优先级不同的信息显示&#xff0c;如错误信息需要…

【Arduino IDE安装】Arduino IDE的简介和安装详情

目录 &#x1f31e;1. Arduino IDE概述 &#x1f31e;2. Arduino IDE安装详情 &#x1f30d;2.1 获取安装包 &#x1f30d;2.2 安装详情 &#x1f30d;2.3 配置中文 &#x1f30d;2.4 其他配置 &#x1f31e;1. Arduino IDE概述 Arduino IDE&#xff08;Integrated Deve…

Jupyter的使用分享

文章目录 碎碎念安装方法1.安装Anaconda方法2.通过库的安装方式 启动使用教程1.指定目录打开2.启动后的简单使用 小结 碎碎念 前情提示 之前与许多小伙伴交流的时候&#xff0c;发现大家对于pycharm更容易上手&#xff08;可能是比较好设置中文的原因&#xff09;&#xff0c;在…

算法: 前缀和题目练习

文章目录 前缀和题目练习前缀和二维前缀和寻找数组的中心下标除自身以外数组的乘积和为 K 的子数组和可被 K 整除的子数组连续数组矩阵区域和 前缀和题目练习 前缀和 自己写出来了~ 坑: 数据太大,要用long. import java.util.Scanner;public class Main {public static voi…

vue中用echarts做一个躺着的柱状图

在 Vue 中集成 ECharts 并绘制一个躺着的柱状图&#xff08;即横向的柱状图&#xff09;&#xff0c;你可以通过设置 ECharts 的 bar 类型&#xff0c;并配置 xAxis 和 yAxis 来实现。下面是一个完整的 Vue 示例代码。 示例代码&#xff1a; <template><div id"…

《C++编程新探索:实现高效视频拼接算法》

在当今数字化时代&#xff0c;视频内容的创作和处理变得越来越重要。视频拼接作为一种常见的视频处理技术&#xff0c;能够将多个视频片段组合成一个连续的视频&#xff0c;为视频创作者和用户带来了更多的可能性。本文将探讨如何在 C中实现高效的视频拼接算法&#xff0c;为开…

数据结构与算法JavaScript描述练习------第3章列表

1. 增加一个向列表中插入元素的方法&#xff0c;该方法只在待插元素大于列表中的所有元素时才执 行插入操作。这里的大于有多重含义&#xff0c;对于数字&#xff0c;它是指数值上的大小&#xff1b;对于字母&#xff0c;它 是指在字母表中出现的先后顺序。 function isGreate…

【element-tiptap】如何引进系统中的字体?

源码地址&#xff1a; https://github.com/Leecason/element-tiptap 源码中给出的字体如下 可以看到&#xff0c;咱们日常需要的黑体、微软雅黑等都没有&#xff0c;所以这篇文章来探索一下怎么加字体。 另外呢&#xff0c;肯定有小伙伴发现&#xff0c;这个按钮点击的时候&am…

IDEA 配置 Git 详解

本文将介绍在IntelliJ IDEA 中如何配置Git 没有安装配置 Git 的可以参考我的这篇文章&#xff1a;安装配置 Git 一、操作环境及准备 1.win 10 2.已安装且配置了Git 3.有Gitee账户 4.安装了IntelliJ IDEA 2023.2.1 5.全程联网 二、配置步骤 2.1 配置git 1.采用全局设置&…

OpenCV视频I/O(18)视频写入类VideoWriter之初始化 VideoWriter 对象的函数open()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 初始化或重新初始化视频编写器。 该方法打开视频编写器。参数与构造函数 VideoWriter::VideoWriter 中的相同。 cv::VideoWriter::open() 函数用…

C++继承与菱形继承(一文了解全部继承相关基础知识和面试点!)

目的减少重复代码冗余 Class 子类(派生类) &#xff1a; 继承方式 父类&#xff08;基类&#xff09; 继承方式共有三种&#xff1a;公共、保护、私有 父类的私有成员private无论哪种继承方式都不可以被子类使用 保护protected权限的内容在类内是可以访问&#xff0c;但是在…

息肉检测数据集 yolov5 yolov8适用于目标检测训练已经调整为yolo格式可直接训练yolo网络

息肉检测数据集 yolov5 yolov8格式 息肉检测数据集介绍 数据集概述 名称&#xff1a;息肉检测数据集&#xff08;基于某公开的分割数据集调整&#xff09;用途&#xff1a;适用于目标检测任务&#xff0c;特别是内窥镜图像中的息肉检测格式&#xff1a;YOLO格式&#xff08;边…

设计一个OAuth2认证系统:支持第三方登录的实用指南

设计一个OAuth2认证系统:支持第三方登录的实用指南 引言 在现代Web应用中,用户认证是一个至关重要的环节。OAuth2作为一种开放标准,允许用户通过第三方服务进行身份验证,简化了用户登录流程,同时提高了安全性。本文将详细介绍如何设计一个支持第三方登录的OAuth2认证系统…

wenserver中 一些常见的 错误码

EINTR 是 Linux 系统中定义的一个错误码&#xff0c;代表“被信号中断”。当一个系统调用在执行过程中被一个信号处理函数中断时&#xff0c;这个系统调用会立即返回错误&#xff0c;并且 errno 被设置为 EINTR。 举个例子 read函数是阻塞的 现在没有数据要读 我们read一直阻…

【3dgs】总结3DGS与NeRF如何重塑SLAM24年4月最新进展

【3dgs】总结3DGS与NeRF如何重塑SLAM&#xff01; 1. 摘要2. 简洁3. 背景3.1 Existing SLAM Surveys3.2 progress in Radiance Field Theory3.3.1 NeRF3.3.2 3dgs3.4 数据集 4 数据集4.1 SLAM3.1 RGB-D SLAM方法3.1.1 基于NeRF风格的RGB-D SLAM3.1.2 基于3DGS风格的 RGB-D SLAM…

React(一) 认识React、熟悉类组件、JSX书写规范、嵌入变量表达式、绑定属性

文章目录 一、初始React1. React的基本认识2. Hello案例2.1 三个依赖2.2 渲染页面2.3 hello案例完整代码 二、类组件1. 封装类组件2. 组件里的数据3. 组件里的函数 (重点)4. 案例练习(1) 展示电影列表 三、JSX语法1. 认识JSX2. JSX书写规范及注释3. JSX嵌入变量作为子元素4. JS…

小猿口算脚本

实现原理&#xff1a;安卓adb截图传到电脑&#xff0c;然后用python裁剪获得两张数字图片&#xff0c;使用ddddocr识别数字&#xff0c;比较大小&#xff0c;再用adb命令模拟安卓手势实现>< import os import ddddocr from time import sleep from PIL import Imagedef …