Zero-Shot Text-to-Image Generation

下载 PDF

Zero-Shot Text-to-Image Generation - 中文验证版

英文原文卡片:dalle_2021.md

状态:已翻译。

元数据

  • Slug: dalle_2021
  • 年份: 2021
  • 会议: ICML
  • 作者: Aditya Ramesh 等
  • 阅读状态: read complete
  • 计算范式: 生成式媒体计算 (generative_media_compute)
  • 主要来源: PDF抽取文本
  • 阅读卡创建日期: 2026-06-15

计算设置

论文明确报告了两个阶段的硬件。离散 VAE 以混合精度在 64 块 NVIDIA V100 16GB GPU 上训练,每 GPU batch size 为 8,总 batch size 为 512,共 3,000,000 步更新。自回归 Transformer 在 1024 块 NVIDIA V100 16GB GPU 上训练,总 batch size 为 1024,共 430,000 步更新。其数据为 2.5 亿图文对的互联网数据集,模型为 12B 参数的 decoder-only 稀疏 Transformer。

模型形态与计算相关。dVAE 将每张 256×256 RGB 图像压缩为 32×32 的图像 token 网格,词汇量 8192,相对于原始像素将图像上下文减少了 192 倍。Transformer 建模最多 256 个 BPE 文本 token 加上 1024 个图像 token,具有 64 个注意力层、62 个头、每头状态大小 64,以及附录插图中 d_model = 3968

瓶颈

DALL·E 的瓶颈是内存容量、混合精度数值范围以及跨机器通信。一个以 16 位精度存储的 12B 参数模型约占 24GB 参数内存,超出一块 16GB V100 的容量。训练还需要优化器动量、激活值、梯度和临时 all-gathered 参数块,因此 1024 块 GPU 不能是简单的数据并行副本;参数必须在每台机器内分片。

混合精度是第二个瓶颈。作者写道,让模型在超过十亿参数时以 16 位精度训练而不发散是最大的挑战。根本原因是梯度下溢:激活梯度范数在 resblock 间递减,后期 resblock 的梯度可能低于 V100 FP16 的五位指数范围。一个全局损失缩放对某个 resblock 可行,对另一个则可能失败。

第三个瓶颈是机器间 all-reduce 带宽。论文指出机器之间的带宽远低于机器内 GPU 之间的带宽,使得梯度平均成为主要的训练瓶颈。这使得 PowerSGD 梯度压缩成为一个核心方法组件。

方法适配

第一个适配是 tokenization。dVAE 将一张 256×256×3 的图像转化为 1024 个离散图像 token。这使得文本到图像生成成为一个自回归序列任务,但避免了 196,608 像素的输出上下文。dVAE 本身使用卷积编码器/解码器,并单独训练,配合精心安排的 KL 权重、弛豫温度和学习率调度。

Transformer 适配是对组合文本和图像序列的稀疏注意力。文本 token 使用因果注意力,图像 token 使用行、列和最终卷积注意力掩码。附录指出列注意力会转置图像状态的各维度以改善 GPU 利用率。这是一个直接的计算结构选择:保持注意力模式,同时使内存布局更有利于内核运算。

分布式适配首先解决内存问题。参数在每台机器的 8 块 GPU 上分片。前向传播期间,当当前 resblock 计算时,下一个 resblock 的分片被 all-gather 获取,随后丢弃。反向传播期间,前一个 resblock 的分片被预取,reduce-scatter 使每个 GPU 仅保留其梯度切片。激活检查点会在反向时重新计算 resblock 的激活值。

数值适配是逐 resblock 的梯度缩放。每个 resblock 获得自己的缩放因子,以一种无需专用 GPU 内核的方式减少下溢。大多数 Adam 动量以自定义的 16 位格式存储,并辅以梯度裁剪和对非有限值的跳过更新规则。

通信适配是 PowerSGD。与其在机器间 all-reduce 完整梯度矩阵,实现方案改为 all-reduce 低秩因子。附录报告总压缩秩为 896,即每个 GPU 的参数分片为 112,得到约 86% 的压缩。Embedding、unembedding、gain 和 bias 除外,以 32 位精度归约。

证据

硬件/训练证据是明确的:dVAE 在 64 块 V100 16GB GPU 上训练,batch 512,3M 步更新;Transformer 在 1024 块 V100 16GB GPU 上训练,batch 1024,430K 步更新。12B Transformer 即使在 16 位精度下也超出一块 V100 的参数内存,这促使了参数分片。论文指出,通过将 all-gather/reduce-scatter 与计算密集型操作重叠,分片隐藏了大部分机器内通信延迟。

PowerSGD 证据出现在压缩表和附录中。有效参数量为 5.6e9,压缩秩在前表中为 640,论文报告约 85% 的压缩比;在最终的 Transformer 训练中,总压缩秩为 896,每 GPU 112,约为 86% 的压缩比。十亿参数级别的稳定性还需要误差缓冲、有限值检查、分组 all-reduce 以及对解压缩梯度使用 32 位乘积。

质量证据结合了人工评估和 FID/IS。对于 MS-COCO 描述,评分者在图文匹配度上偏好 DALL·E 而非 DF-GAN 的比例为 93.3%,摘要中总结真实性偏好约为 90%。零样本 MS-COCO FID 在重排序后与先前最佳方案相差约 2 分以内。重排序本身就是计算:图 3 中的样本是由预训练对比模型进行 512 选 1,图 9 显示 FID/IS 随样本量增加而改善。

论文还报告了在专门化的 CUB 描述上表现较弱,FID 与先前精调模型存在较大差距,这表明大规模通用网络规模的计算并不会自动压倒领域特定的训练。

历史影响

DALL·E 将文本到图像生成变成了一个大规模分布式 Transformer 问题。其历史贡献不仅是零样本可控性,还有计算配方:将图像压缩为 token,在 1024 块 GPU 上扩展自回归 Transformer,在节点内分片参数,激活检查点,逐 resblock 调优 FP16 数值,以及在较慢的机器间链路上压缩梯度。

这是一个早期的生成式媒体案例,其中架构与分布式系统不可分割。图像 tokenizer 降低了序列长度,稀疏注意力降低了注意力成本,PowerSGD 降低了通信带宽。后续系统转向了扩散模型,但 DALL·E 确立了图像生成可以使用类语言模型的数据规模和基础设施规范。

局限

  • 主要的 Transformer 运行使用 1024 块 V100 16GB GPU,使得复现超出了普通实验室的规模。
  • 512 选 1 的重排序增加了可观的推理计算,并依赖一个独立的对比模型。
  • 12B 模型需要专门的混合精度和通信机制;简单的 FP16 训练在超过 1B 参数时是不稳定的。
  • dVAE 的 32×32 token 瓶颈压缩程度很高,可能限制视觉保真度。
  • 如 CUB 等专门数据集在没有精调的情况下仍然较弱。

链接