当前位置: 首页 > article >正文

【生成模型之十四】Visual Autoregressive Modeling

论文:Visual Autoregressive Modeling: Scalable Image Generation via Next-Scale Prediction

code:GitHub - FoundationVision/VAR: [NeurIPS 2024 Best Paper][GPT beats diffusion🔥] [scaling laws in visual generation📈] Official impl. of "Visual Autoregressive Modeling: Scalable Image Generation via Next-Scale Prediction". An *ultra-simple, user-friendly yet state-of-the-art* codebase for autoregressive image generation!

一、背景

我们提出了视觉自回归建模(VAR),这是一种新一代范式,将图像的自回归学习重新定义为从粗到细的“next-scale prediction”或“next-resolution prediction”,与标准的“next-token prediction”不同。这种简单直观的方法允许自回归(AR)Transformer快速学习视觉分布,并且可以很好地泛化。large AR模型强调scalability and generalizabilty

VQGAN and DALL-E这些模型利用视觉标记器将连续图像离散化为2D token的网格,然后将其展平为1D序列以进行AR学习(图2b),反映了顺序语言建模的过程(图2a)。

二、方法

image VAR:multi-scale token maps 是从粗到细(从低到高分辨率)自回归生成的,每个尺度内都有并行token生成。VAR需要多尺度VQVAE才能工作。

自回归建模需要定义数据的顺序。我们的工作重新考虑了如何“排序”图像:人类通常以层次化的方式感知或创建图像,首先限制全局结构,然后限制局部细节。这种多尺度、从粗到细的性质表明了图像的“顺序”。

VAR实现方式:我们的方法首先将图像编码为multi-scale token maps。然后,渐进过程从1×1的token映射开始,并在分辨率上逐渐扩展:在每一步,transformer都会根据所有先前的token映射预测下一个更高分辨率的token映射。我们将这种方法称为视觉自回归(VAR)建模。

关于原有的自回归模型弱点的讨论。tokenizer和flatten方法允许对图像进行下一个token自回归学习,但引入了几个问题:

1.Mathematical premise violation(违反数学前提);在量化自编码器(VQVAE)中,编码器通常会生成一个图像特征图f,其中包含所有i,j的相互依赖的特征向量f(i,j)。因此,在量化和flatten之后,令牌序列(x1,x2,…,xh×w)保持双向相关性。这与自回归模型的单向依赖假设相矛盾,该假设规定每个标记xt只应依赖于其前缀(x1,x2,…,xt-1)。

2.Inability to perform some zero-shot generalization;与问题1)类似,图像自回归建模的单向性限制了它们在需要双向推理的任务中的泛化能力。例如,给定图像的底部,它无法预测图像的顶部。

3.Structural degradation. 

三、Implementation details

VAR tokenizer。如前所述,我们使用vanilla VQVAE架构[30]和具有K个额外卷积(0.03M额外参数)的多尺度量化方案。对于V=4096的所有标度,我们使用共享码本。根据基线[30],我们的tokenizer也在OpenImages[49]上进行了训练,复合损失(5)和空间下采样率为16×。

im为输入图像,E(·) a encoder, and Q(·) a quantizer. a learnable codebook Z ∈ RV ×C containing V vectors. where lookup(Z, v) means taking the v-th vector in codebook Z. 

VAR transformer。我们主要关注VAR算法,因此我们保持了简单的模型架构设计。我们采用了类似于GPT-2和VQ-GAN[66,30]的具有自适应归一化(AdaLN)的标准decoder-only transformers 的架构,该架构在许多视觉生成模型中得到了广泛采用并被证明是有效的。对于类条件合成,我们使用类嵌入作为开始标记[s],以及AdaLN的条件。


http://www.kler.cn/a/538151.html

相关文章:

  • vue学习5
  • Windows 本地部署大模型 OpenWebUI+Ollama
  • 人工智能A*算法与CNN结合- CNN 增加卷积层的数量,并对卷积核大小进行调整
  • 【Go语言快速上手】第二部分:Go语言进阶
  • Docker安装Mysql
  • 华水967数据结构2024真题(回忆版)
  • 13.3 使用 Chat Prompt Template 设计专业翻译提示模板
  • 4.3 线性回归的改进-岭回归/4.4分类算法-逻辑回归与二分类/ 4.5 模型保存和加载
  • OC-Block
  • 全志A133 android10 thermal温控策略配置调试
  • ML.NET库学习003:基于时间序列的共享单车需求预测项目解析
  • 即时通讯开源项目OpenIM配置离线推送全攻略
  • 练习题 - Django 4.x Session 会话使用示例和配置方法
  • 数据结构:算法复杂度
  • python - 封装moondream(备份)
  • html css网页制作成品——HTML+CSS茶百道的茶网页设计(6页)附源码
  • 数据结构--八大排序算法
  • C06S02-Docker网络和资源限制
  • 3D gpr仿真
  • 使用 SDKMAN! 在 Mac(包括 ARM 架构的 M1/M2 芯片)上安装 Java 8
  • 深度解析DeepSeek模型系列:从轻量级到超大规模(附DeepSeek硬件配置清单)
  • 【C++语法】【STL】“for ( auto c : str )”类型的循环
  • FreeRtos实时系统: 九.FreeRTOS的时间管理
  • 【学Rust写CAD】5 三维转换矩阵解析及应用示例
  • 【ARM】MDK烧录配置文件无权限访问
  • 12.13 LangChain 运行时引擎解析:AgentExecutor vs PlanAndExecute vs AutoGPT