【大模型系列】Language-Vision Transformer(LaVIT, ICLR2024)

在这里插入图片描述

  • Title:Unified Language-Vision Pretraining in LLM with Dynamic Discrete Visual Tokenization
  • Paper:https://arxiv.org/abs/2309.04669
  • Github:https://github.com/jy0205/LaVIT
  • Author:Yang Jin, 北大,快手科技

文章目录

  • 1 LaVIT总结(省流版)
    • 1.1 LaVIT是什么
    • 1.2 LaVIT能干什么?
      • 1.2.1 文生图
      • 1.2.2 多模图像合成(图+文->图,图+图->图)
      • 1.2.3 Image Caption(图像描述)
      • 1.2.4 Visual QA(图文问答)
  • 2 Motivation
    • 2.1 Adapter-architecture
      • 2.1.1 Resampler(2022, DeepMind)
      • 2.1.2 Linear projection(2023, LLaVA(Large Language and Vision Assistant))
      • 2.1.3 Q-Former(2023, BLIPv2)
    • 2.2 Emu(2023, 北京人工智能研究院)
    • 2.3 LaVIT的方式
  • 3 LaVIT的结构
    • 3.1 Dynamic Visual Tokenizer
    • 3.2 基于visual token恢复图片
    • 3.3 Unified Generative Modeling
  • 4 训练细节
  • 参考资料

1 LaVIT总结(省流版)

1.1 LaVIT是什么

LaVIT是Language-Vision Transformer的简称,作者来自于北大和快手科技。文章提出了一种将图片tokenization的方式,使图片可以与language一样,可以用一组token来表示,这样图片就可以跟language的token合并在一起作为LLM的输入,通过自回归的方式来训练网络,相当于统一了视觉和文本两种模态的输入,其中图片的token前后通过两个特殊的token[IMG]和[/IMG]来与文本的token区分。

所以文章的重点就在于如何将图片tokenization。

1.2 LaVIT能干什么?

1.2.1 文生图

通过给定文本,生成对应的图片,效果类似于SD:
在这里插入图片描述

1.2.2 多模图像合成(图+文->图,图+图->图)

给定一张图片,通过文本提示或者图片的提示,合成对应的图片:
在这里插入图片描述

1.2.3 Image Caption(图像描述)

给定一张图片,给出对于这张图的描述:
在这里插入图片描述

1.2.4 Visual QA(图文问答)

给定图片和文本描述的问题,给出问题的答案:
在这里插入图片描述

2 Motivation

在这里插入图片描述

当前多模态的几种架构都存在一些问题:

  • Adapter-architecture:视觉特征仅被作为prompt,没有起到监督作用
  • Emu:优化图像和文本目标不一致不利于统一建模

2.1 Adapter-architecture

2.1.1 Resampler(2022, DeepMind)

  • Paper: https://arxiv.org/abs/2204.14198
    在这里插入图片描述
    将vision-encoder输出的可变大小的时空视觉特征映射到固定数量的output-tokens(文中设定为5个)。中间使用cross-attention与learned latent queries进行交互,最后输出固定个数的token表示图片的编码。

2.1.2 Linear projection(2023, LLaVA(Large Language and Vision Assistant))

  • Paper:https://arxiv.org/abs/2304.08485
    在这里插入图片描述
    复用pre-trained CLIP的vision encoder,在vision-encoder之后添加一个线性映射层,将其映射到embedding空间使其维度与language model输出的维度一致。在训练时,始终冻结Vision encoder的参数,只更新映射层和LLM的权重。

2.1.3 Q-Former(2023, BLIPv2)

  • Paper:https://arxiv.org/abs/2301.12597
    在这里插入图片描述
    在这里插入图片描述
    通过联合优化三个目标(image-text matching, image-text contrastive learning, image-grounded text generation),使Learned queries可以提取视觉特征中与文本最相关的视觉表示。在VQA应用如下图所示,将Question也作为条件输入到Q-former中,使得提取的图像特征与问题更加相关:
    在这里插入图片描述

2.2 Emu(2023, 北京人工智能研究院)

  • Paper:https://arxiv.org/abs/2307.05222
    在这里插入图片描述
    Emu以自回归的方式统一不同模态,图片被编码后,与文本tokens拼接在一起作为LLM的输入。训练目标是对下一个文本标记进行分类(cross entropy)和对下一个视觉特征进行回归(L2 loss, 独立的regression head)。在推理时,回归得到的视觉特征送入到微调后的SD模型中得到真实的图像。

视觉特征回归的gt是什么? 在训练之前,先将数据(image-text pairs、带字幕的视频等)使用Causal transformer(因果变换器)将其转化为1D的causal latent embedding sequences。所以当前图片的regression的目标其实就是下一个图片的embedding

2.3 LaVIT的方式

LaVIT的方法继承了Emu的策略: 即通过自回归的方式预测下一个图像/文本的token。并且提出一个vision tokenizer将图片转化成如文本一样的序列,这样就可以统一图像和文本,使其能在同一个目标下进行优化,无需额外的框架修改。

3 LaVIT的结构

给定图像-文本对,图像被tokenize成离散的tokens,并且与文本tokens混合在一起形成多模态序列,然后LaVIT通过一个统一的生产目标进行优化(即预测下一张图片/文本的token)。
在这里插入图片描述

3.1 Dynamic Visual Tokenizer

在这里插入图片描述
给定图片,处理流程如下:

  1. 先将图片划分为N(HW/ PP, P是补丁大小)个不重叠的patch;
  2. N个patch先输入到一个pre-trained ViT-encoder(Vit-G/14 of EVA=CLIP)中得到N个patch features;
  3. N patch-level features输入到Token selector(MLP,二分类)中,得到预测分布,并通过可微的Gumbel-softmax技巧的得到二元决策掩码M;
  4. 根据决策掩码,可以将N个图像块分为drop组和retain组,并没有直接丢弃drop组,使用token merger(12个transformer blocks),逐步将drop组信息压缩到retain组上;
  5. 矢量量化:K(K=16384=2^14)大小的codebook embeddings,第4步输出的向量与codebook计算L2距离,选择最接近的codebook embeddings代替之;得到量化后的嵌入,这就是所谓的visual token

Dynamic Visual Tokenizer的训练目标: 将量化后的嵌入输入到一个decoder中重构visual semantic features。这种设计的背后的逻辑是图像语义重建的质量取决于信息最丰富的patch,因此通过优化语义重建质量,额可以有效的更新token selector和merger,优化目标变成:

L t o k e n i z e r = 1 N Σ i = 1 N ( 1 − c o s ( x i , x i r e c ) ) + λ ( ρ − 1 N Σ i = 1 N M i ) 2 L_{tokenizer} = \frac{1}{N}\Sigma_{i=1}^{N}(1 - cos(x_i, x_i^{rec}))+\lambda(\rho-\frac{1}{N}\Sigma_{i=1}^{N}M_i)^2 Ltokenizer=N1Σi=1N(1cos(xi,xirec))+λ(ρN1Σi=1NMi)2

重建质量用余弦相似度来衡量, ρ \rho ρ是控制保留视觉标记目标的百分比,为超参数; λ \lambda λ设置为2, ρ \rho ρ后面的部分表示实际视觉标记保留的百分比。

3.2 基于visual token恢复图片

在训练visual tokenizer之后,基于重建的图像视觉特征,训练conditional de-noising U-Net去填充图像细节。在推理阶段,LaVIT生成的visual tokens可以被U-Net恢复为真实图像,就可以实现图片合成的功能。
在这里插入图片描述

3.3 Unified Generative Modeling

给定image-text pairs ,将2D的图像tokenize为有因果依赖的1D序列,并与text token组成多模态序列,通过[IMG][/IMG]来区分。为了使LaVIT能生产图像和文本,采用2种不同的串联形式:[image, text]和[text, image]。

当图像用作生成文本的条件时,直接使用token merger输出的特征,而不采用量化后特征,减少信息丢失。这对于视觉问答等细粒度多模态理解任务至关重要。

采用通用语言建模LM目标,以自回归的方式直接最大化每个多模态的序列的概率:

p ( y ) = Σ y ∈ D Σ i = 1 s l o g P θ ( y i ∣ y < i ) p(y) = \Sigma_{y\in D}\Sigma_{i=1}^{s}logP_{\theta}(y_i|y_{<i}) p(y)=ΣyDΣi=1slogPθ(yiy<i)

4 训练细节

Step1:训练tokenizer

  • image encoder frozen:ViT-G/14 of EVA-CLIP
  • codebook: K=16384=2^14
  • token merger和reconstruct decoder都是12个transformer blocks

数据集:LAION-400M的100M图片,batchsize=2048,p=1/3,训练50K steps。
tokenizer训练完成之后,conditonal UNet使用SDv1.5进行初始化,用相同的数据集finetune 20k steps。

Step2:Unified Vision-Language Pre-training
LLM:LLaMA-7B

  • image-to-text comprehension([image, text]):93M samples(Conceptual Caption & BLIP-Capfilt)
  • text-to-image synthesis([text, image]):额外100M image-text pairs(LAION-Aesthetics)

参考资料

[1] Resampler(2022, DeepMind)
[2] Linear projection(2023, LLaVA(Large Language and Vision Assistant))
[3] Emu(2023, 北京人工智能研究院)
[4] Gumbel-Softmax 完全解析

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Android Native 客户端属性配置系统使用说明

Android Native 客户端属性配置系统使用说明 背景和问题现代 android 开发基本都基于 gradle 属性设置来进行定制化编译,随着项目的迭代,工程结构越发复杂,配置属性越来越多,越来越多的配置使得上手难度越来越大。 解决方案设计一般而言,在 android 开发中,Gradle 属性系…

141个图表,完美展示数据分类别关系!

本文介绍使用Python工具seaborn详细实现分类关系图表&#xff0c;包含8类图141个代码模版。 分类关系图表用于展示数字变量和一个或多个分类变量之间的关系&#xff0c;可以进一步分为&#xff1a;箱形图&#xff08;box plot&#xff09;、增强箱形图&#xff08;enhanced bo…

阿里云物联网应用层开发:第二部分,云产品流转

文章目录 1、云产品流转概述2、我们需要创建多少个云产品流转&#xff1f;3、阿里云物联网平台产品云流转实现3-1 创建数据源3-2 创建数据目的3-2 创建解析器,并关联数据、编写脚本 1、云产品流转概述 云产品流转可以看成是一个转发的功能&#xff0c;阿里云官方的解释是&…

【操作与配置】Xshell安装使用

Xshell是一款功能强大的远程管理工具&#xff0c;主要用于通过SSH&#xff08;Secure Shell&#xff09;、TELNET等协议连接和管理远程服务器。它支持多种会话管理、脚本编写、端口转发等功能&#xff0c;适合系统管理员和开发者使用。 安装 官网下载&#xff1a;家庭/学校免费…

linux企业级CDN/100万并发架构设计/企业故障案例、网站优化架构原则

高薪思想&#xff1a;财富来源于信息差 什么是cdn&#xff1f; cdn全称是contenct delivery network内容分发网络 cdn是一套分布式&#xff0c;缓存&#xff0c;集群&#xff0c;范围可以是全球或全国&#xff0c;运行的实质是通过智能DNS获取用户的来源地域以及上网线路 为…

13_网络安全

目录 网络安全协议 网络安全协议 PGP协议 网络安全技术 防火墙技术 入侵检测系统 入侵防御系统 杀毒软件 蜜罐系统 计算机病毒与木马 网络安全协议 网络安全协议 物理层主要使用物理手段隔离、屏蔽物理设备等&#xff0c;其他层都是靠协议来保证传输的安全&#xff…

【C++】内存分区

目录 内存分区代码运行前后区别各分区详细解释C内存申请和释放 内存分区 不同的操作系统对程序内存的管理和划分会有所不同。 此处是C内存区域划分主要是针对通用的情况&#xff0c;并不限定在某个特定操作系统上 一般分为4个区&#xff08;有时把全局区拆分成数据区未初始化…

Go线程调度器

基本结构 字段gcwaiting、stopwait和stopnoted都是串行运行时任务执行前后的辅助协调手段 gcwaiting字段的值用于表示是否需要停止调度 在停止调度前&#xff0c;该值会被设置为1在恢复调度之前&#xff0c;该值会被设置为0这样做的作用是&#xff0c;一些调度任务在执行时只…

阿里云智能编程助手的安装使用

https://help.aliyun.com/document_detail/2590613.html 通义灵码&#xff0c;是阿里云出品的一款基于通义大模型的智能编码辅助工具&#xff0c;提供行级/函数级实时续写、自然语言生成代码、单元测试生成、代码优化、注释生成、代码解释、研发智能问答、异常报错排查等能力&a…

企业互联网建站源码系统 附带完整的安装代码包以及搭建部署教程

系统概述 企业互联网建站源码吸系统是一款集众多先进功能于一身的建站工具。它提供了丰富的模板和组件&#xff0c;允许企业根据自身需求和品牌形象进行个性化定制&#xff0c;快速搭建出具有独特风格的网站。 代码示例 系统特色功能一览 1.用户友好界面&#xff1a;系统采用…

24 年程序员各岗位薪资待遇汇总(最新)

大家好&#xff0c;我是程序员鱼皮。今天分享 24 年 6 月最新的程序员各岗位薪资待遇汇总。 数据是从哪儿来的呢&#xff1f;其实很简单&#xff0c;BOSS 直聘上有一个免费的薪酬查询工具&#xff0c;只要认证成为招聘者就能直接看&#xff0c;便于招聘者了解市场&#xff0c;…

网络安全 文件上传漏洞-20 第二十关 Pass-20

点击进入第二十关&#xff0c;并选择显示代码&#xff1a; $is_upload false; $msg null; if(!empty($_FILES[upload_file])){//检查MIME$allow_type array(image/jpeg,image/png,image/gif);if(!in_array($_FILES[upload_file][type],$allow_type)){$msg "禁止上传该…

Langchain-实战篇-搭建本地问答机器人-01

项目背景 在这个快节奏的职场世界里&#xff0c;我们每个人都可能在某个时刻&#xff0c;化身为一头辛勤的牛或一匹奔腾的马&#xff0c;面对入职签合同时的迷茫&#xff0c;或是离职时的纠纷&#xff0c;心中难免会涌现出各种疑问。比如&#xff1a; "这份合同里的条款…

Mongodb集群中的分布式读写

学习mongodb&#xff0c;体会mongodb的每一个使用细节&#xff0c;欢迎阅读威赞的文章。这是威赞发布的第81篇mongodb技术文章&#xff0c;欢迎浏览本专栏威赞发布的其他文章。如果您认为我的文章对您有帮助或者解决您的问题&#xff0c;欢迎在文章下面点个赞&#xff0c;或者关…

百元蓝牙耳机推荐2024,百元蓝牙耳机排行榜盘点

在2024年面对琳琅满目的蓝牙耳机选项&#xff0c;消费者往往难以抉择&#xff0c;特别是在预算有限的情况下&#xff0c;如何在众多产品中挑选出既满足质量又符合预算的耳机成为了一个不小的挑战。 为了帮助大家在繁多的选择中找到真正物有所值的百元蓝牙耳机&#xff0c;我们…

vue响应式原理细节分享

在讲解之前&#xff0c;我们先了解一下数据响应式是什么&#xff1f;所谓数据响应式就是建立响应式数据与依赖&#xff08;调用了响应式数据的操作&#xff09;之间的关系&#xff0c;当响应式数据发生变化时&#xff0c;可以通知那些使用了这些响应式数据的依赖操作进行相关更…

【JavaEE】JVM

文章目录 一、JVM 简介二、JVM 运行流程三、JVM 运行时数据区1、堆&#xff08;线程共享&#xff09;2、Java虚拟机栈&#xff08;线程私有&#xff09;3、本地方法栈&#xff08;线程私有&#xff09;4、程序计数器&#xff08;线程私有&#xff09;5、方法区&#xff08;线程…

# 音频处理4_傅里叶变换

1.离散傅里叶变换 对于离散时域信号 x[n]使用离散傅里叶变换&#xff08;Discrete Fourier Transform, DFT&#xff09;进行频域分析。 DFT 将离散信号 x[n] 变换为其频谱表示 X[k]&#xff0c;定义如下&#xff1a; X [ k ] ∑ n 0 N − 1 x [ n ] e − j 2 π k n N X[k]…

.NET 漏洞情报 | 某整合管理平台SQL注入

01阅读须知 此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等&#xff08;包括但不限于&#xff09;进行检测或维护参考&#xff0c;未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失&#xf…

揭秘Wish自养号秘诀:新手卖家如何快速出单?

对于卖家来说&#xff0c;如果想要提升店铺的转化率和销量&#xff0c;有几个关键策略是必不可少的&#xff1a; 一、精心挑选热销产品 成功的第一步在于选品。选择热销产品如同掌握了成功的钥匙。卖家需要深入分析平台用户群体&#xff0c;了解他们的需求和偏好。例如&#…