在本页10 分钟阅读
概述
Introduced in 2020, it made transformer image generation practical at high resolution and its tokenizer idea still underpins many text-to-image and multimodal models.
主要要点
- VQGAN turns an image into a small grid of indices from a learned codebook, so image generation becomes a token prediction problem.
- The 2020 Taming Transformers paper by Esser, Rombach and Ommer introduced VQGAN with a default 16 by 16 token grid for 256 by 256 images.
- Perceptual and adversarial losses let VQGAN compress far harder than VQ-VAE while keeping reconstructions sharp.
- VQGAN-CLIP, MaskGIT, ViT-VQGAN and Parti all built directly on the VQGAN tokenizer idea between 2021 and 2022.
- Codebook collapse, slow sequential sampling and loss of fine detail are the main known weaknesses of codebook image synthesis.
深入探讨
VQGAN, short for Vector Quantized Generative Adversarial Network, is an image autoencoder with a twist. An autoencoder is a pair of networks: an encoder that squeezes an image into a compact representation and a decoder that rebuilds the image from it. In VQGAN the compact representation is not a grid of arbitrary numbers but a grid of indices into a codebook, a learned table of vectors that act like a vocabulary of visual parts such as a patch of fur, a stretch of sky or the corner of a window. Once an image is a grid of codebook indices, it looks like a sentence made of tokens, and any model that is good at predicting the next token in text can be trained to generate images.
The method was introduced by Patrick Esser, Robin Rombach and Bjorn Ommer of Heidelberg University in the paper Taming Transformers for High-Resolution Image Synthesis, first posted to arXiv on 17 December 2020 and revised in June 2021. Their motivation was cost. Transformers, the attention-based networks behind modern language models, compare every element of a sequence with every other element, so the cost grows with the square of the sequence length. A 256 by 256 image has 65,536 pixels, far too many to treat as a sequence. Convolutional neural networks, which process images with small sliding filters, are efficient at local texture but weaker at long-range structure. The paper's answer was to let a convolutional VQGAN learn the vocabulary of local parts and let a transformer learn how those parts are arranged.
The mechanism works in two stages. In stage one, the encoder downsamples the image by a factor f; the paper's default is f = 16, so a 256 by 256 image becomes a 16 by 16 grid of feature vectors. Each vector is replaced by its nearest neighbor in the codebook, a step called vector quantization. The default codebook holds 1,024 entries, with larger codebooks of 4,096 to 16,384 entries used for some datasets. The decoder then reconstructs the image from the quantized grid. Because choosing the nearest entry is not differentiable, gradients are copied straight through the quantizer during training, a trick called the straight-through estimator. In stage two, the encoder and codebook are frozen, every training image is converted to its 256 indices, and a transformer is trained to predict each index from the ones before it. To generate, the transformer samples indices one by one and the decoder turns the finished grid into pixels.
What separates VQGAN from its predecessor is the training loss. VQ-VAE, introduced by Aaron van den Oord, Oriol Vinyals and Koray Kavukcuoglu at DeepMind in November 2017, established the codebook idea and showed that discrete latents avoid posterior collapse, a failure where a powerful decoder learns to ignore the latent code. But VQ-VAE was trained mainly to reproduce pixels, which pushes reconstructions toward blur when the code is heavily compressed. VQGAN adds two terms. A perceptual loss compares images in the feature space of a pretrained network rather than pixel by pixel, and a patch-based discriminator, the adversarial half of a generative adversarial network (GAN), penalizes local patches that look fake. The weight on the adversarial term is set automatically from the ratio of gradient sizes at the decoder's last layer. The result is that VQGAN can compress much harder while staying sharp. The paper reports that its ImageNet VQGAN with 16,384 codes on a 16 by 16 grid reaches a reconstruction FID of 4.98, against 32.01 for the DALL-E tokenizer with 8,192 codes on a 32 by 32 grid, while using a sequence one quarter as long. FID, or Frechet Inception Distance, measures how far the statistics of generated images are from real ones; lower is better.
The generation results were strong for their time. With a GPT-2-medium-sized transformer of about 307 million parameters, the paper reports FIDs of 9.6 on the FFHQ face dataset and 10.2 on CelebA-HQ. On class-conditional ImageNet at 256 by 256 pixels it reports an FID near 16 without rejection sampling and 5.20 with it, compared with about 31 for VQ-VAE-2 without rejection, using roughly a tenth of VQ-VAE-2's estimated parameter count. For images larger than the training size, the transformer attends only to a sliding window of nearby tokens, which allowed the authors to produce megapixel images guided by segmentation or depth maps.
VQGAN quickly became a building block. The VQGAN-CLIP method, written up by Katherine Crowson, Stella Biderman and colleagues for ECCV 2022, paired a pretrained VQGAN with OpenAI's CLIP model and optimized the latent grid until CLIP judged the decoded image to match a text prompt, with no task-specific training. Google's ViT-VQGAN (October 2021) replaced the convolutional encoder and decoder with Vision Transformers and improved codebook learning, raising Inception Score on ImageNet from 70.6 for vanilla VQGAN to 175.1 and lowering FID from 17.04 to 4.17. MaskGIT (February 2022) kept VQ tokens but generated them in parallel by iteratively filling in masked positions. Parti (June 2022) scaled an autoregressive Transformer on ViT-VQGAN tokens to 20 billion parameters. The same Heidelberg group's Latent Diffusion paper (December 2021) reused the idea of working in the compressed space of a pretrained autoencoder, but ran a diffusion model there instead of a token predictor.
Compared with alternatives, codebook synthesis has clear trade-offs. Against pixel-space GANs, it separates compression from generation, so the generator can be a large, stable, likelihood-trained transformer rather than an adversarial network that is prone to training collapse. Against pixel-space diffusion, it is far cheaper because the model works on a few hundred tokens rather than tens of thousands of pixels. Against latent diffusion with continuous latents, discrete tokens fit naturally into the same sequence as text tokens, which is why tokenizers of this family appear in models that mix text and images. The cost is that quantization throws information away, so fine detail such as small text or faces in a crowd can be lost before generation even begins.
The main failure modes are well documented. Codebook collapse, where only a small fraction of entries is ever selected, wastes capacity; the Taming Transformers authors note that their ImageNet model effectively used 973 of its 16,384 entries. Autoregressive sampling is slow because a 256-token image needs 256 sequential steps, which motivated MaskGIT's parallel decoding. Raster-order generation, row by row, can produce inconsistent global layouts, and outputs depend heavily on sampling settings such as top-k. Finally, a 16-fold downsampling limits how much detail any downstream model can express.
In practice the requirements are modest by current standards. The paper reports that most of its transformers were sized to train with batch size 2 on a 12 GB GPU, typically using two to four GPUs, and that an updated ImageNet model trained for 45.8 days on a single A100. Training a new VQGAN still needs a large image dataset matched to the target domain, careful tuning of the adversarial weight and a warm-up period before the discriminator switches on. The authors released code and pretrained models, so encoding and decoding with an existing VQGAN needs far less compute than training one.
04工作示例
Trace one image through a VQGAN pipeline
Start with a 256 by 256 RGB photo, which contains 65,536 pixel positions.
Pass it through the encoder with downsampling factor 16 to get a 16 by 16 grid of 256 feature vectors.
For each vector, find the closest of the 1,024 codebook entries and record its index, giving 256 integers between 0 and 1,023.
Feed the 256 indices to the decoder and compare the rebuilt image with the original by eye and with a perceptual metric.
Mask the bottom half of the grid, then let a trained transformer sample the missing 128 indices one by one using top-k sampling.
Decode the completed grid and note how the new bottom half continues the textures and layout of the top half.
它显示了什么
The learner ends with an image whose top half reconstructs the input and whose bottom half is generated. A sharp reconstruction confirms the codebook captures the image well, and a coherent completion confirms the transformer learned how codebook parts fit together.
现实世界的实施
The original Taming Transformers paper used a VQGAN plus a GPT-2-style transformer to generate megapixel landscapes from semantic segmentation maps, painting the image patch by patch with a sliding attention window.
VQGAN-CLIP, published by Katherine Crowson and colleagues and accepted at ECCV 2022, steers a pretrained VQGAN with the CLIP text-image model to create and edit images from free-text prompts without any extra training.
Google's MaskGIT (2022) predicts masked VQ image tokens in parallel instead of one at a time, which the authors report speeds up decoding by up to 64 times compared with autoregressive generation.
Google's Parti text-to-image model (2022) used the improved ViT-VQGAN tokenizer and a Transformer of up to 20 billion parameters, reporting a zero-shot FID of 7.23 on MS-COCO.
Class-conditional ImageNet generation in the Taming Transformers paper reached an FID of 5.20 at 256 by 256 pixels when combined with rejection sampling, a strong score for an autoregressive model at the time.
VQGAN 和 Codebook 图像合成的未来
Research since 2022 has focused on the tokenizer as the bottleneck. ViT-VQGAN (2021) showed that better codebook learning raises downstream image quality, and Finite Scalar Quantization (September 2023) argued that the learned codebook can be replaced with simple rounding while avoiding codebook collapse and the extra losses VQ needs. Parallel decoding methods such as MaskGIT (2022) addressed the speed of sequential sampling, and Parti (2022) showed autoregressive models on VQ tokens can scale to 20 billion parameters. Open questions remain about how much compression is too much: higher downsampling makes sequences shorter and cheaper but loses fine detail, and there is no settled rule for choosing the factor per domain. A second open question is whether discrete tokens or continuous latents are the better interface for models that handle text and images together, since latent diffusion (2021) showed that continuous latents also cut compute sharply, while discrete tokens slot directly into the same sequence as text. Evaluation also lags, because FID and Inception Score capture distribution statistics rather than prompt faithfulness or the legibility of small details.
付诸实践
为什么这很重要
- 速度与规模. 视觉人工智能可以大规模自动化检查、检测和标记任务。
- 构建选择. 创意团队可以通过更少的手动修改更快地构建概念原型。
- 团队与工作流程. 操作可以使用以前难以处理的图像和视频信号。
留意
- 如果出处不明,肖像权和同意可能会成为法律风险。
- 模型性能可能因光照、人口统计和环境的不同而有所不同。
- 除非监控置信阈值,否则误报可能会被忽视。
后续步骤
- 定义精确度、召回率和错误成本的接受标准。
- 使用符合实际生产条件的数据进行测试。
- 为低置信度或高影响力的预测添加人工审核。
- 跟踪模型漂移并在相机或数据集更改后重新验证。
资料来源与延伸阅读
- arXiv (Esser, Rombach, Ommer)Taming Transformers for High-Resolution Image Synthesis
- arXiv (van den Oord, Vinyals, Kavukcuoglu)Neural Discrete Representation Learning
- arXiv (Google Research)Vector-quantized Image Modeling with Improved VQGAN
- arXiv / ECCV 2022VQGAN-CLIP: Open Domain Image Generation and Editing with Natural Language Guidance
- arXiv (Google Research)MaskGIT: Masked Generative Image Transformer
- arXiv (Google Research)Scaling Autoregressive Models for Content-Rich Text-to-Image Generation
- arXiv / CVPR 2022High-Resolution Image Synthesis with Latent Diffusion Models
- arXiv (Google DeepMind)Finite Scalar Quantization: VQ-VAE Made Simple
不断探索
常见问题
什么是VQGAN和Codebook图像合成?
VQGAN is a neural network that compresses an image into a small grid of entries from a learned codebook, a dictionary of reusable visual parts, and decodes that grid back into a sharp picture. Introduced in 2020, it made transformer image generation practical at high resolution and its tokenizer idea still underpins many text-to-image and multimodal models.
VQGAN 使用什么将图像表示为离散标记?
VQGAN 将编码器特征量化为学习码本中最近的条目,将图像转换为离散码索引序列。
What did the original VQGAN paper report gaining from adversarial and perceptual training?
The original paper reports that adversarial and perceptual losses helped maintain perceptual quality at increased compression in its evaluated settings. This is not a universal claim about every VQVAE or every token-grid size.
一旦图像是标记序列,什么模型会生成新图像?
由于图像成为离散的标记序列,因此转换器可以对它们进行自回归建模,就像生成文本一样。
什么技术让梯度流经不可微的量化步骤?
矢量量化是不可微的,因此 VQGAN 使用直通梯度估计器来训练编码器。
VQGAN在2021年助力打造了哪些著名的AI艺术潮流?
将 VQGAN 与 CLIP 指导配对产生了广泛共享的“VQGAN + CLIP”艺术,从而普及了文本驱动的图像生成。