LLaVA论文阅读+Colab部署

LLaVA :Visual Instruction Tuning

  • 1. Colab上部署LLaVA
  • 2. 论文摘要
  • 3. 多模态指令跟随数据
  • 4. 模型架构
  • 5. 模型训练
  • 6. 消融实验
  • 7. CC3M数据过滤
  • 8. 总结

1. Colab上部署LLaVA

代码:
https://github.com/Czi24/Awesome-MLLM-LLM-Colab/tree/master/MLLM/LLaVA-colab

2. 论文摘要

将大型语言模型(LLMs)通过机器生成的指令跟随数据进行指令调优已被证明可以提高其在新任务上的零样本能力,但这一理念在多模态领域探索较少。我们首次尝试使用仅语言的GPT-4生成多模态语言-图像指令跟随数据。通过对这种生成的数据进行指令调优,我们引入了LLaVA:大语言与视觉助手,一个端到端训练的大型多模态模型,它连接了视觉编码器和LLM,用于通用的视觉和语言理解。为了促进未来关于视觉指令跟随的研究,我们构建了两个包含多样且具有挑战性的应用导向任务的评估基准。我们的实验表明,LLaVA展示了令人印象深刻的多模态聊天能力,有时在未见过的图像/指令上表现出多模态GPT-4的行为,并在一个合成的多模态指令跟随数据集上取得了85.1%的相对得分。当在Science QA科学问答上进行微调时,LLaVA和GPT-4的协同作用达到了92.53%的新状态准确率。我们公开了GPT-4生成的视觉指令调优数据、我们的模型和代码。

3. 多模态指令跟随数据

  1. 简单的方法。利用以后的图文对构建指令跟随数据,不足地方缺乏多样性和深入推理,提出下面的利用GPT-4或ChatGPT构建指令跟随数据。

  1. 基于COCO数据集,利用已有的注释信息,比如caption、bounding box。人工构建种子示例(in-context-learning + 人工构建的系统提示+人工构建的问题模板。

(1)利用已有的注释信息,比如caption、bounding box

(2)人工构建种子示例(in-context-learning

(3)人工构建的系统系统提示

(4)人工构建的问题模板

  1. 得到GPT-4或者ChatGPT输出的结果:

4. 模型架构

Vicuna + ViT-L/14 + a simple linear layer

  • 输入图像Xv ----> 视觉特征Zv = g(Xv) ----> Zv转换为语言嵌入词元Hv(系列的视觉词元)
  • Xv ----> Zv ----> Hv 最后一个Transformer层之前和之后的网格特征,使用一个简单的线性层将图像特征连接到词嵌入空间(具有与语言模型中的词嵌入空间相同的维度

5. 模型训练

  • 统一格式:Human :X2instruct Assistant: X2a
  • 使用其原始自回归训练目标

阶段1: 特征对齐的预训练。基于CC3M的子集,仅更新投影矩阵。
冻结:visual encoder and LLM weights
训练:projection matrix

阶段2: 端到端微调。投影矩阵和LLM均针对两种不同的使用场景进行更新:
冻结:visual encoder weights
训练:projection layer and LLM

  • 视觉聊天:LLaVA根据我们生成的多模态故障跟踪数据进行了微调,适用于面向用户的日常应用。
  • Science QA:LLaVA在科学领域的多模态推理数据集上进行了微调。

6. 消融实验

  • 视觉特征。我们尝试使用CLIP视觉编码器的最后一层特征,结果为89.96%,比最后一层之前的特征低了0.96%。我们假设这是因为CLIP的最后一层特征可能更关注图像的全局和抽象属性,而前一层的特征可能更关注对理解特定图像细节有用的局部属性。
  • 链式推理。为了决定模型预测中答案和推理过程的顺序,我们运行了两种变体,观察到先预测答案在12个epoch中的准确率为89.77%,而先推理可以在6个epoch内快速达到89.77%,但随着训练的增加没有进一步改进。训练模型24个epoch也没有提高性能。我们得出结论,类似于链式推理的推理优先策略可以大大提高收敛性,但对最终性能贡献相对较小。
  • 预训练。我们跳过预训练,直接在Science QA上从头开始训练——性能下降到85.81%的准确率。5.11%的绝对下降表明预训练阶段的重要性,在对齐多模态特征的同时保留了大量预训练知识。
  • 模型规模。我们保持所有配置与我们的最佳13B模型相同,并训练一个7B模型。结果为89.84%的准确率,比90.92%低1.08%,这表明模型规模的重要性。

7. CC3M数据过滤

CC3M 我们使用Spacy从整个CC3M数据集中的每个标题中提取名词短语,并统计每个唯一名词短语的频率。我们跳过频率小于3的名词短语,因为它们通常是概念和属性的罕见组合,已经被其他标题覆盖。然后,我们从剩余频率最低的名词短语开始,将包含该名词短语的标题添加到候选池中。如果名词短语的频率大于100,我们从所有标题中随机选择一个大小为100的子集。这样处理后,我们得到了大约595K个图像-文本对。

图中展示了过滤前后CC3M名词短语统计数据的比较。过滤后的数据集显示了较好概念覆盖,其中频率高于3,但图像-文本对数量较少。

CC3M过滤前后名词短语统计数据的比较。图例中报告了唯一名词短语的总数。

8. 总结

  • 幻觉问题
  • 其他LLM模型协同(比如GPT-4协同提供了额外的背景知识能提高ScienceQA精度)
  • 正确回答餐厅名称需要模型具有广泛的知识覆盖多语言理解能力;正确描述配菜可能需要模型从互联网检索相关的多模态信息
  • 正确识别酸奶品牌需要模型处理高分辨率图像并具有广泛的知识覆盖。


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

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

相关文章

CUDA编程02 - 数据并行介绍

一:概述 数据并行是指在数据集的不同部分上执行计算工作,这些计算工作彼此相互独立且可以并行执行。许多应用程序都具有丰富的数据并行性,使其能够改造成可并行执行的程序。因此,对于程序员来说,熟悉数据并行的概念以及使用并行编程语言来编写数据并行的代码是非常重要的。…

2024.7.23总结(东莞入职培训day2)

今天写总结也很晚了,但是今天收获特别丰满,必须回顾一下,这些都是宝贵的财富。 1.讲课老师很特别棒 今天的讲课老师特别棒,很是优秀,她讲的课程质量还是非常高的,能够带动学生去深度思考,小伙…

超大数字四舍五入保留N位小数【没bug】

大部分npm常用的插件四舍五入都是用数值直接去计算四舍五入的存在精度问题,本方法是用用字符串拆分比较整数大小,这样就避开了精度的问题; 该方法可以传入:1.134、99.99、9999999999999999999.99999、.001、12.、0.、00.、类似的…

.netcore TSC打印机打印

此文章给出两种打印案例, 第一种是单列打印,第二种是双列打印 需要注意打印机名称的设置,程序中使用的打印机名称为999,电脑中安装打印机时名称也要为999。 以下是我在使用过程中总结的一些问题: 一 TSC打印机使用使…

【Node.js基础02】fs、path模块

目录 一:fs模块-读写文件 1 加载fs模块对象 2 读制定文件内容文件 3 向文件中写入内容 二:path模块-路径处理 1 问题引入 2 __dirname内置变量 使用方法 一:fs模块-读写文件 fs模块封装了与本机文件系统交互方法和属性 1 加载fs模块…

弹性布局 flex layout HTML CSS

文章目录 效果图参考文档代码 效果图 其实弹性布局的好处是:当网页大小变化(如窗口resize)时,处于弹性容器(flex container)中的弹性元素(flex item) 之间的距离也会变化。 需要特别注意的是: 弹性布局的主要CSS如下。…

生成式AI未来趋势预测

随着生成式AI技术的不断进步,关于其未来发展方向的讨论也愈发激烈。生成式AI的未来可能会在对话系统(Chat)中展现智慧,也可能在自主代理(Agent)中体现能力。以下是具体分析: 1. **技术成熟度**&…

开源邮箱套件介绍系列2:Roundcube webmail

1. 项目介绍 项目网站:Roundcube – Free and Open Source Webmail Software Roundcube 项目是一个免费的开源网络邮件解决方案,具有类似桌面的用户界面(Webmail),易于安装/配置,并且可以在标准的LAMPP服…

网络安全新视角:2024年威胁 landscape与防护策略

网络安全新视角:2024年威胁 landscape与防护策略 2024年网络安全威胁趋势分析 云集中风险 随着云计算的普及,云服务商集中化趋势明显,企业越来越依赖于少数几家云服务商,导致云集中风险逐渐显现。例如,阿里云在2023…

PostgreSQL 中如何处理数据的唯一性约束?

🍅关注博主🎗️ 带你畅游技术世界,不错过每一次成长机会!📚领书:PostgreSQL 入门到精通.pdf 文章目录 PostgreSQL 中如何处理数据的唯一性约束?一、什么是唯一性约束二、为什么要设置唯一性约束…

SAP第二季度财报和进一步裁员计划

7月22日公布了截至 2024 年 6 月 30 日的第二季度财务报告。以下位总体指标 当前云计算在手订单达 148 亿欧元,按名义货币和固定汇率计算均增长 28%云收入增长 25%,其中云 ERP 套件收入增长 33%,均按名义货币和固定汇率计算总收入增长 10%&a…

mysql 先子查询过滤再联合 和 先联合再过滤 执行效率问题

执行顺序 先子查询过滤再联合 SELECT XXX FROM(select * from edw_data_dyd.overrun_offsite_info WHERELENGTH( VEHICLE_ID ) > 12 AND CREATED_TIME > DATE_ADD(NOW(),INTERVAL -1 HOUR)AND CREATED_TIME < NOW()AND VEHICLE_ID not like %无车牌%AND VEHICLE_I…

Mac中maven配置安装路径

Mac中maven配置安装路径 没有下载maven的可以先下载&#xff1a;&#xff08;这里建议maven版本不要下高了&#xff09; 如果你的bash_profile中没有配置JAVA_HOME路径&#xff0c;可以按照下面的命令配置一下 获取JAVA的安装路径&#xff1a; /usr/libexec/java_home -V …

Pycharm2024最新版community社区版下载安装配置,快速上手

第一步&#xff1a;下载 方法1&#xff1a;官网链接 https://www.jetbrains.com/pycharm/download/?sectionwindows .方法2&#xff1a;百度网盘 链接&#xff1a;https://pan.baidu.com/s/1ic2N5hUQ2m1Kmyr5nK9Jxw?pwd76dt 提取码&#xff1a;76dt --来自百度网盘超级…

利用Nodejs-express框架调取python脚本

1.使用child_process 子进程 中的 execFile child_process 子进程 | Node.js v20 文档 (nodejs.cn) 官方文档 1-1安装child_process npm install child_process 1-2 在接口文件中使用 var express require(express); var router express.Router(); const { execFile } …

接口自动化测试框架实战-2-项目接口文档

上一小节我们完成了项目开发环境的搭建&#xff0c;本小结我们具体介绍一下项目中使用到的接口文档。 本次我们以钉钉开放接口作为项目接口测试的示例&#xff0c;方便大家都能统一学习和调用&#xff0c;具体接口如下&#xff1a; 1、获取企业内部应用的access_token 在获取…

poi库简单使用(java如何实现动态替换模板Word内容)

目录 Blue留言&#xff1a; Blue的推荐&#xff1a; 什么是poi库&#xff1f; 实现动态替换 第一步&#xff1a;依赖 第二步&#xff1a;实现word模板中替换文字 模板word&#xff1a; 通过以下代码&#xff1a;&#xff08;自己建一个类&#xff0c;随意取名&#xf…

(8) ubuntu ROS 安装

文章目录 安装流程1. 进入ros官网2. 根据自己ubuntu系统选择版本&#xff08;我是20.04的ubuntu&#xff09;3.根据流程开始安装3.1 设置sources.list 4.验证ros5.安装rosdep 安装流程 1. 进入ros官网 https://www.ros.org/ 2. 根据自己ubuntu系统选择版本&#xff08;我是2…

微信小程序反编译工具安装【PC端程序包详解】

文章目录 **准备工具****第一步&#xff1a;配置反编译工具****第二步&#xff1a;解密小程序包****第三步&#xff1a;准备Node.js环境****第四步&#xff1a;反编译小程序包****第五步&#xff1a;使用微信开发者工具** 微信小程序已经成为现代应用开发的一个重要部分。如果你…

基本的DQL语句-单表查询

一、DQL语言 DQL(Data Query Language 数据查询语言)。用途是查询数据库数据&#xff0c;如SELECT语句。是SQL语句 中最核心、最重要的语句&#xff0c;也是使用频率最高的语句。其中&#xff0c;可以根据表的结构和关系分为单表查询和多 表联查。 注意&#xff1a;所有的查询…