几乎是把论文用比较易懂的语言翻译一遍了!
Autoregressive Model Beats Diffusion: Llama for Scalable Image Generation
引入
大语言模型建立在自回归的基础上,通过next-token-prediction来生成文本,这样的方式有着不可估量的能力,这样的模型可以与人交流、解决现实中的问题,而且很容易堆算力、堆数据、涨规模。在图像生成的领域,一些工作也借鉴了语言生成的想法,利用自回归的模型来生成图片,比如说[[VQ-VAE]], [[VQ-GAN]], [[DALL-E]], [[Parti]]等等。这些工作使用 image tokenizer 将连续的图像转换成离散的 tokens (关于连续和离散的选择[[Continuous or Discrete, That Is the Question]]),然后使用自回归的模型,通过next-token-prediction 来生成 image tokens,在2022年之前效果名列前茅。但是开源的资源很少,所以发展得不太好。
同时,diffusion models 蓬勃发展,又有着很好的开源社区,逐渐主导了图像生成领域。问题是,diffusion用的完全不是大语言模型那一套,所以就很难把图像生成和大模型结合在一块。
这篇文章就是要赓续自回归的薪火,但要做一个开源的版本。通过看文献综述、回顾过去的发展,作者发现了三大关键:
- 要设计一个好的图像压缩模块
- 要设计一个便于堆规模的模型结构
- 还要有高质量的数据
我们在设计时力求减少 inductive bias,而且要和语言模型的架构一致,方便之后语言和图像模型的统一。最近有些的观点认为,设计图片生成模型的结构要考虑到图片自身的特性。举个例子,MaskGIT, MAGVIT用的是带有mask的图像建模方法,VAR 用的是不同层是不同分辨率的方法。虽然他们取得了一些成果,甚至是超越了diffusion的性能,但是这些工作仍然没有搞清楚最纯净的大语言模型结构到底有没有生成图片的能力。我们的工作这不就来了吗,我们就是要看看最纯正的大语言模型结构搭配上next-token-prediction的方式到底能不能干翻其他的方法。事实证明是可以达到的,而且还能顺便用一用搞大模型的同行们搞出来的加速器,让图片生成任务也来加加速。
我们的贡献有:
- Image tokenizer:具体参数先按下不表,我们的tokenizer比diffusion里面用的[[VAE]]还要好
- 方便堆规模的图片生成模型:基于llama结构搞了从111M到3.1B参数的一系列模型,最大的模型在ImageNet 256*256的评测中比[[LDM]]和[[DiT]]效果好。
- 高质量的训练数据:训练了一个775M参数的文生图模型,可以提供高质量的图文对
- 用vLLM提高了生成速度326%-414%
图像生成自回归模型
概述
训练
第一步,使用image tokenizer对图像进行量化
设 p p p 是image tokenizer的下采样率,则下采样之后的维度 h = H / p , w = W / p h = H/p, w = W/p h=H/p,w=W/p , q ( i , j ) q^{(i,j)} q(i,j) 是image codebook的索引,那么这一步就是将图像的像素 x ∈ R H × W × 3 x \in \mathbb{R}^{H \times W \times 3} x∈RH×W×3 (高×宽×RGB3通道)量化为离散的tokens q ∈ Q h × w q \in \mathbb{Q}^{h \times w} q∈Qh×w 。请注意,我们只保存这个向量量化后再codebook中的索引,不是保存向量。
第二步,将上面的 q q q 变成一维的。现在是