[论文速览] 一些向量量化的相关工作

Pre

想认真整理却没时间,很无奈,大概就这样吧

Zero-Shot Text-to-Image Generation (DALL-E)

code

https://github.com/openai/DALL-E

Idea

提出 dVAE 将离散采样问题放松为连续近似,VQ-VAE迫使模型在所有情况下只选择一个向量,dVAE量化不是每个都确定地映射到单个码本向量,而是输出每个潜在的码本向量上的分布。

Method

图1 原始图片和离散VAE重建效果比较

图2 在不同程度的可靠性的情况下,DALLE能够结合不同概念,并画出拟人化动物、渲染文本,以及进行一些图像翻译。

两个阶段

  1. dVAE就是 离散的变分自编码器,输入图片256分辨率RGB,下采样八倍,32x32的token,特征维度8192(码本大小)。
    但是这跟VQ-VAE有所区别。VQ-VAE迫使模型在所有情况下只选择一个向量,而 dVAE 将离散采样问题放松为连续近似,它不是每个向量都确定地映射到单个码本向量,而是输出码本向量上的分布,不使用显式的codebook。
  2. 文本通过BPE(Byte Pair Encoding)编码成256长度,跟1024个图片token简单拼接然后进行自回归建模。

前面说过dVAE输出的是码本向量的分布,因此想要获取token还得用argmax处理dVAE的logits,但实际上dVAE的结果不能直接argmax,因为跟VQ一样会导致梯度无法传播,因此要按概率采样,论文使用了gumbel-softmax。作者说这相当于是一种正则化,但模型参数不足(underparameterized)时就没必要进行,因此论文里写的还是argmax。

公式1 公式中q_phi表示dVAE编码器输出的分布,p_theta表示dVAE解码器输出的分布,p_psi是Transformer建模的文本图片联合分布。训练过程就是要最大化这个证据下界(ELB)

Critique

看代码,dVAE的编码器接收 256x3 RGB图片然后卷积出 32x8192 的特征,没有显式的codebook。文本通过BPE编码成256长度,跟1024个图片token(用argmax处理dVAE的logits得来)简单拼接然后进行自回归建模。实际上dVAE的结果不能直接argmax,而要按概率采样,作者说这相当于是一种正则化,但模型参数不足(underparameterized)时就没必要,因此论文里写的还是argmax。最后将图片token与文本模态拼接后做自回归建模。

BEiT: BERT Pre-Training of Image Transformers

Idea

将图片用dVAE(DALLE那个)变成token,同时又划分为patch,然后随机遮掩patch,根据patch(包括遮住的)预测相应token

Method

图1 BEiT预训练总览。将图片用dVAE(DALLE那个)变成token,作为一个view,同时又划分为patch,是另一个view。随机遮掩一些patch,将所有patch(包括遮住的)送入ViT-Base,然后在masked对应输出用相应token进行约束。

公式3 z是token,x是原始图片。一阶段根据给定z重建x,二阶段根据部分遮掩的x重建z

Critique

但这个工作感觉很怪,相当于用dVAE做教师模型来教BEiT?BEiT能做的dVAE似乎也行?毕竟这样训练完BEiT实际上就是一个根据输入图像x输出其量化token z的量化器,就是蹭个BERT的名字?

todo

  1. MaskGIT[MaskGIT: Masked Generative Image Transformer.] 在VQGAN的基础上引入了并行解码,并行预测所有被mask的部分,对于每个mask掉的像素位置给出一个概率最高的码字,其概率值作为置信度。根据时刻进行mask调度,根据调度函数计算本轮要保留的预测码字数n。保留置信度最高的n个码字,其余预测结果继续mask掉,重新预测mask部分。
  2. Gumbel Softmax trick: 简单来说就是arg max不可导,可以用softmax来近似代替max,而arg softmax是可导的,https://kexue.fm/archives/6705/comment-page-1, https://zhuanlan.zhihu.com/p/59550457
  3. BLIP2(Q-Former): 通过可学习的Q来聚合图片的信息(KV),将图片编码为固定长度且可被LLM处理,实践中v=crossattention(q, k, v), k=v=concat(q, f),让q能自注意力自己
  4. MiniGPT-4, LLaVA: 实际上依靠预训练BLIP2的Q-Former来融合视觉信息,但只微调线性层
  5. LQAE, SPAE, V2L: 认为 BLIP-2, MiniGPT-4, LLaVA 缺乏生成视觉内容的能力,需要额外的图像-文本对来训练视觉-语言对齐模块,而它们把图片量化到LLM的词汇空间,省去了在特征空间进行多模态对齐的过程(用多模态数据进行微调)。感觉就是能直接用预训练的LLM来处理图片和文本,不再需要提前对齐两个模态,比如重新训练或微调LLM。
  6. LQAE训练VQVAE来把图片量化到冻结的LLM码本,仅英文词汇表,但实际上量化后的token很少包含语义概念,且重建质量比可学习codebook更差。
  7. SPAE引入分层且粗到细的金字塔量化和CLIP的语义引导,多语言词汇表,超越VQGAN的重建质量
  8. V2L把图片量化到共享的多模态空间中,为给定图片分配有意义的语言token,并引入不同量化器分了全局和局部token,分别对图片理解和图片生成有用。
  9. SEED: 先通过causal/reverse Q-Former训练SEED tokenizer,然后量化图片,线性投影到prompt"a photo of"特征所在维度,二者拼接送入OPT,用目标caption以预测下一个token的形式LoRA微调OPT。同时也做文本到图片的自回归,prompt"Generate an image",让LLM生成图片token来增强性能。跟DALL-E一样,把图片文本token都放到同一个词汇表中建模。推理时就输入caption去生成图片token,然后过Reverse Q-Former得到caption的嵌入,再用stable diffusion解码器生成图片。SEED通过因果Q-Former来提取图片嵌入再进行量化,与DALL-E一样将图片token与文本模态拼接后做自回归,并设计图片到文本和文本到图片两个任务来增强LLM的能力。

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

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

相关文章

[论文速览] Language Model Beats Diffusion - Tokenizer is Key to Visual Generation

Pre title: Language Model Beats Diffusion - Tokenizer is Key to Visual Generation accepted: ICLR 2024 paper: https://arxiv.org/abs/2310.05737 code: non-official ref: https://mp.weixin.qq.com/s/oYlV93VHFfTjzYKUIld8JA 关键词: tokenizer, language model, diff…

AI应用实战课学习总结(3)预测带货销售额

今天是我们的第3站,了解下AI项目实践的5大环节,并通过一个预测直播带货销售额的案例来感受下。大家好,我是Edison。 最近入坑黄佳老师的《AI应用实战课》,记录下我的学习之旅,也算是总结回顾。 今天是我们的第3站,了解下AI项目实践的5大环节,并通过一个预测直播带货销售…

群晖引导修改机型

1.备份系统设置 控制面板---》更新和还原---》系统设置备份---》手动导出---》导出2.安装RR Manager套件 添加矿神源,安装RR Manager安装之后,打开,输入密码,会在 控制面板---》任务计划 新增两个任务,重启NAS后,会新增五个任务。运行RebootToLoader,NAS会重启进入引导配…

[论文速览] Vector Quantized Image-to-Image Translation

Pre title: Vector Quantized Image-to-Image Translation accepted: ECCV 2022 paper: https://arxiv.org/abs/2207.13286 code: https://github.com/cyj407/VQ-I2I 关键词: Image-to-Image Translation, Vector Quantization, Image Synthesis, Generative ModelsIdea 向量量…

bat批量修改文件名称

文章目录一、目标二、主要思路三、步骤(一)进入目标文件夹(二)获取所有目标文件名称1、创建文本文档(txt格式)2、写代码3、生成bat文件4、执行bat文件,获取原文件名列表:(三)修改成目标文件名,并拼接成下一步待执行的bat命令1、B列做辅助列,得到新的我们想要改成的…

【Linux】配置网卡中断亲和性

中断亲和性是指处理器在接收到网卡的中断后,由哪些CPU来优先处理。为了提升网络应用的扩展性和降低时延,建议将中断请求IRQs(Interrupt Request)分散在可用的CPU核上。 Linux系统自带负载均衡服务irqbalance,该服务能根据当前CPU使用情况自动将IRQs分散到各个CPU核上执行,…

UHP Modem Add

UHP Modem Add========== End

[转] Android源码对应分支、buildID

一、源码对应分支、Build IDbuild ID 标记版本支持的设备安全补丁级别TQ2A.230505.002.A1 android-13.0.0_r44 Android13 Pixel 4a (5G)、Pixel 5、Pixel 5a (5G) 2023-05-05TQ2A.230505.002 android-13.0.0_r43 Android13 Pixel 4a、Pixel 4a (5G)、Pixel 5、Pixel 5a (5G)、P…

WPF 记录鼠标、触摸多设备混合输入场景问题

本文记录在WPF应用中鼠标、触摸混合输入,鼠标事件抬起时不会有MouseUp事件触发的问题。 事件输入我们都知道有3类:鼠标、触摸、触笔,鼠标是windows系统出来就有的事件,后面加了触笔、触摸。 1.鼠标输入,只会触发Mouse冒泡隧道事件; 2.触笔输入,会触发除了Stylus事件外,…

基于Redis有序集合实现滑动窗口限流

滑动窗口算法是一种基于时间窗口的限流算法,它将时间划分为若干个固定大小的窗口,每个窗口内记录了该时间段内的请求次数。通过动态地滑动窗口,可以动态调整限流的速率,以应对不同的流量变化。 整个限流可以概括为两个主要步骤:统计窗口内的请求数量 应用限流规则Redis有序…

3、RabbitMQ队列之工作队列【RabbitMQ官方教程】

工作队列 使用 php-amqplib 在第一个教程中,我们编写了从命名队列发送和接收消息的程序。在本例中,我们将创建一个工作队列,用于在多个工作人员之间分配耗时的任务。 工作队列(又名:任务队列)背后的主要思想是避免立即执行资源密集型任务,并必须等待其完成。相反,我们把…

静力学FEM12.30

1.静力学方程 考虑图所示变截面弹性杆的静态响应。这是线性应力分析或线弹性问题的一个例子,我们需要求杆内的应力分布σ(x)。 应力由物体的变形产生,而变形由物体内各点的位移u(x)表征。位移导致用ε(x)表示的应变;应变是一个无量纲变量。杆受到分布力b(x)或集中力作用。这…