【论文阅读笔记】多模态大语言模型必读 —— LLaVA

news/2024/11/20 16:24:51/文章来源:https://www.cnblogs.com/keanshi/p/18546654

论文地址:https://arxiv.org/abs/2304.08485
代码地址:https://github.com/haotian-liu/LLaVA

image

目录
  • 简介
  • Visual Instruction 数据生成
  • 视觉指令微调
    • 模型架构
    • 训练

简介

人类对于世界的认知是通过视觉、语言多个途径的,因此设计出能够遵循多模态的视觉和语言指令的通用大模型成为了人工智能领域的核心目标之一。

当前,很多工作已经在视觉大模型方面取得成就,不过每一种任务(如分类、分割、图像生成编辑等)均由不同的 LVM 完成,且语言仅用于描述图像,这导致了我们不能很好地与模型进行交互,模型也缺失适应复杂指令的能力。

除此之外,LLM 展示出了语言的强大能力,各种各样的任务都可以通过指令来进行端到端的训练,很多模型如 GPT-4 应用了高质量的 instruction-following 数据,模型可以根据不同的指令来完成不同的任务。不过这些方法仅限于语言。

作者在 LLaVA 中将语言的微调方式推广到多模态大模型,具体来说本篇论文有以下 contributions:

  1. Multimodal instruction-following data. 利用 ChatGPT/GPT-4,将图像-文本对转化为了 instruction-following 形式的数据。
  2. Large multimodal models. 利用 CLIP 和 Vicuma 设计了一种 LMM,在科学 QA 上得到了 SOTA。
  3. Multimodal instruction-following benchmark. (LLaVA-Bench)
  4. Open-source.

Visual Instruction 数据生成

作者团队基于已有的图像-文本对数据,利用 ChatGPT/GPT-4 进行数据的扩充。

首先根据图像 \(X_v\) 以及相应的描述 \(X_c\),GPT 可以生成一个问题 \(X_q\),此时可以得到一轮对话数据:

Human : Xq, Xv <STOP>
Assistant : Xc <STOP>

不过只有上面简单的对话不能使模型学习到深层次的推理能力,因此作者团队应用 GPT 进行了包含视觉信息的 instruction-following 数据扩充。分为两种符号表示:

  • Captions:从多个角度细致地描述视觉场景
  • Bounding boxes:指出了每个物体的名称以及位置

此时视觉模型转化为了 LLM 可以理解的文本信息。作者团队接着基于 COCO 数据集生成了三种 instruction-following 数据(对话、细节描述、复杂推理)。对于每一种首先手工设计一些样例,然后以此作为 in-context 学习的模板询问 GPT-4 生成更多相关的数据。

image

作者总共收集了 158K 个单独的语言-图像指令跟随样本,包括 58K 个对话、23K 个细节描述、77K 个复杂推理。

视觉指令微调

模型架构

image

其中,\(X_v\) 是输入图像,Vision Encoder 使用预训练的 ViT-L/14,大语言模型 \(f_\phi\) 使用 Vicuna,\(W\) 是可训练的投影矩阵,\(H_v\)\(H_q\) 分别为视觉和文本 token;对于输入图像,转化公式为:

\[\mathbf{H}_{\mathrm{v}}=\mathbf{W}\cdot\mathbf{Z}_{\mathrm{v}},\mathrm{~with~}\mathbf{Z}_{\mathrm{v}}=g(\mathbf{X}_{\mathrm{v}}) \]

训练

对于输入图片 \(X_v\),可以生成多轮对话:\((\mathbf{X_q^1},\mathbf{X_a^1},\cdots,\mathbf{X_q^T},\mathbf{X_a^T})\),则第 \(t\) 轮的指令为:

\(\mathbf{X}_{{\mathrm{instruct}}}^{t}=\begin{cases}&\text{Randomly choose }[\mathbf{X}_{{\mathrm{q}}}^{1},\mathbf{X}_{{\mathrm{v}}}]\ \ \mathrm{or~}[\mathbf{X}_{{\mathrm{v}}},\mathbf{X}_{{\mathrm{q}}}^{1}],\ \mathrm{the~first~turn~}t=1\\&\mathbf{X}_{{\mathrm{q}}}^{t},\qquad \qquad \qquad \qquad \qquad\qquad\mathrm{the~remaining~turns~}t>1&&\end{cases}\)

并利用其自身的自回归结构进行 next token prediction,也就是说,对于任何一个长度为 \(L\) 的序列,我们通过如下公式计算:

\[p(\mathbf{X_a}|\mathbf{X_v},\mathbf{X_{instruct}})=\prod_{i=1}^Lp_{\boldsymbol{\theta}}({\textcolor{green}{x_i}}|\mathbf{X_v},\mathbf{X_{instruct,<i}},\mathbf{X_{a,<i}}), \]

输入输出以下图方式组织,只有绿色部分才会参与计算 loss。

image

对于 LLaVA 的训练采用了两阶段的策略:

  1. Pre-training for Feature Alignment. 作者首先从 CC3M 筛选出 595K 的图像文本,然后利用第二节介绍的普通方法扩充为 instruction-following 数据。该阶段冻结 LLM 以及 Vision Encoder,只训练 \(W\)
  2. Fine-tuning End-to-End. 该阶段训练 \(W\) 和 LLM,
    • 利用 158K 的指令追随样本训练一个多模态 Chatbot
    • 利用 ScienceQA benchmark,输入为文本或图像的单轮对话

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

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

相关文章

接口文档和编写接口测试用例

一、熟悉接口文档和分析接口 1、发送接口文档 2、分析接口文档 3、了解需要测试接口,分析需求文档接口请求参数:接口返回参数:成功整理接口:(自己项目有哪些借款) cms项目接口:查询接口,登录接口,添加用户接口,用户管理接口,文章管理接口,删除用户接口,删除栏目接…

python代码实现RNN, LSTM, GRU

安装torch, transformers, loguru(本代码实现为下方版本,其余版本实现可比葫芦画瓢自行摸索)pip install torch==1.13.1 transformers==4.44.1 numpy==1.26.4 loguru -i https://pypi.tuna.tsinghua.edu.cn/simple/RNN:Recurrent Neural Network,网络结构如下图所示:import nu…

ChatGPT国内中文版镜像网站整理合集(2024/11/20)

ChatGPT 镜像站的用途 镜像站(Mirror Site)ChatGPT镜像网站是指通过复制原始网站内容和结构,创建的备用网站。其主要目的是在原始网站无法访问时,提供相同或类似的服务和信息。​ 一、ChatGPT中文镜像站 ① yixiaai.com 支持4o以及o1,支持MJ绘画 ② chat.lify.vip 支持通用…

鸿蒙NEXT开发案例:随机数生成

【引言】 本项目是一个简单的随机数生成器应用,用户可以通过设置随机数的范围和个数,并选择是否允许生成重复的随机数,来生成所需的随机数列表。生成的结果可以通过点击“复制”按钮复制到剪贴板。 【环境准备】 • 操作系统:Windows 10• 开发工具:DevEco Studio NEXT Be…

13、优化器_(执行计划、统计信息)_1

执行计划 一个SQL文本,经过解析,经过解析之后,oracle发现有很多种执行方案,然后oracle在这多种执行方案中,选出一种oracle认为最优的一种执行方案,来作为执行计划,然后oracle按照执行计划一步步去执行 因为oracle有多种的执行方案,但是,有的执行方案快,有的执行方案慢…

12、表的访问方式(索引)_2

表的访问方式 以t1表为例来看表的访问方式 首先创建了一个用户,建立了一张表t1,按照object_id列排序的: SQL> create user u1 identified by u1; -- 创建用户u1 User created.SQL> grant connect,resource,dba to u1; -- 给u1授权 Grant succeeded.SQL> conne…

第十一课 接口测试之postman11.1

一、介绍postman Postman是一个网页调试工具,也可以调试css、html等 Postman的操作环境 环境:Postman Mac、Windows X32、Windows X64、Linux系统、 postman 浏览器扩展程序、postman chrome应用程序 Postman下载:https://www.postman.com/downloads/ 二、postman安装:略 三…

蠢就是坏,坏就是蠢

如题看着如今的社会乱象,我们不禁想:是什么人让我们的社会变成这样? 我们下面来讨论这个问题。 请注意,我们将阻碍社会发展的反动行为定义为坏的,行使这种行为的人定义为坏人。 而我的观点则如标题所示。 第一种 “蠢” 是自以为是,也就是以为自己无所不知,不认同或忽略…

为什么你的工作总是越忙越乱?答案可能出乎意料!

信息过载与任务混乱:现代职场的隐形敌人信息洪流对现代工作的挑战在现代社会,无论个人还是团队,几乎每天都要面对海量的信息。邮件、聊天工具、项目需求文档,甚至口头传递的信息,都让我们感到“时间不够用,信息处理不过来”。这种现象在企业和团队中尤为严重: 信息分散:…

CF1102(*^▽^*)

红黄橙黄绿绿,已完成A.Integer Sequence Dividing CF原题链接 题目大意: 给出\(n\),要求把序列\(1,2,…,n\)分成两个集合,输出两个集合的和的最小差值。\((1\leqslant n\leqslant 2\times 10^{9})\) 解题思路: 我们坚信它是可以分成我们想要的两个差值最小的集合的 差值一…