CogView: 基于Transformer的通用领域文本到图像生成
【摘要】
主要介绍一种名为CogView的预训练模型,该模型用于文本到图像生成任务。CogView是一个具有40亿参数的Transformer模型,结合了VQ-VAE分词器,旨在解决跨模态生成预训练的问题。以下是论文摘要的主要内容总结:
-
研究背景和动机:
- 文本到图像生成一直是计算机视觉领域的一个开放问题,需要强大的生成模型和跨模态理解能力。
- CogView旨在通过对比自监督预训练来解决这一问题,使用Transformer和VQ-VAE分词器来提高生成质量。
-
CogView模型:
- CogView是一个具有40亿参数的Transformer模型,结合了VQ-VAE分词器。
- 该模型通过分词将图像转换为序列,然后使用Transformer进行生成。
- CogView还通过一些技术如Precision Bottleneck Relaxation和Sandwich LayerNorm来稳定训练过程。
-
实验结果:
- CogView在模糊的MS COCO数据集上取得了最先进的FID分数,优于之前的GAN模型和最近的工作DALL-E。
- CogView在超分辨率、文本图像排序等下游任务上表现出色,可以适应不同的生成任务。
-
方法介绍:
- CogView通过自监督预训练学习文本和图像之间的关系。
- 训练过程中使用了多种分词方法,如最近邻映射和移动平均,以提高模型性能。
- 通过分词和解码步骤,将图像转换为序列,然后使用Transformer进行生成。
-
稳定训练的技术:
- 提出了Precision Bottleneck Relaxation和Sandwich LayerNorm技术来解决模型训练中的数值稳定性问题。
- 这些技术通过调整层归一化和量化参数来减少数值溢出和下溢问题。
-
下游任务的微调:
- CogView可以通过微调适应不同的下游任务,如风格学习、超分辨率、文本图像排序等。
- 提出了一种新的度量指标Caption Loss来评估文本图像生成的质量。
-
结论:
- CogView在文本到图像生成任务上展示了良好的性能,并且可以通过微调适应不同的应用需求。
- 未来的工作将在更复杂的数据集上进一步优化模型,并解决数据异质性带来的问题。
总的来说,CogView通过结合Transformer和VQ-VAE技术,为文本到图像生成任务提供了一种有效的解决方案,并且通过稳定训练技术提高了模型的性能和稳定性。
【数据来源】
论文《CogView: Mastering Text-to-Image Generation via Transformers》的数据来源主要包括以下几个方面:
-
图像数据来源:
- 专业图片网站(英文和中文):网站通常带有图片描述,构成数据集的主要部分。
- Conceptual Captions [44] 和 ImageNet [11]:提供额外的图像数据。
- 在线新闻图片及其周围的文本:提供具有上下文信息的图片。
- 阿里巴巴的少量物品描述对:涵盖阿里巴巴的数据。
- 图片搜索引擎:收集大量查询结果,确保涵盖尽可能多的常见实体。
-
文本数据来源:
- 大约3000万个中文和英文的文本-图像对。
- 使用机器翻译将英文文本翻译成中文。
- 保持原始数据中的水印和白边,因为它们不会影响研究结论。
-
数据集构建:
- 构建了一个约2.5TB的新数据集(经过分词处理后,大小约为250GB)。
- 通过大规模知识图谱提取实体名,构建查询列表。
- 每个查询从大型知识图谱中提取实体名,并根据它们在英文维基百科中的出现次数选取前k个实体。
- 从每个查询在各大搜索引擎上的前100张图片中收集数据。
总结来说,CogView的数据集包含了多种来源的高质量中文和英文文本-图像对,涵盖了广泛的实体和场景,为跨模态生成预训练提供了坚实的基础。
【模型架构】
论文《CogView: Mastering Text-to-Image Generation via Transformers》提出了一个名为CogView的模型架构,该模型主要用于文本到图像的生成任务。CogView是一个拥有40亿参数的Transformer模型,其VQ-VAE分词器用于跨模态生成预训练。以下是CogView模型架构的关键点总结:
模型架构概述
-
模型规模:
- CogView是一个拥有40亿参数的Transformer模型,具备强大的生成能力。
-
分词器:
- 使用VQ-VAE分词器,将图像和文本转换为一系列离散的标记。
-
Transformer结构:
- 采用单向Transformer作为模型的主干,包含48层,隐藏层大小为2560,40个注意力头,总参数量为40亿。
- 在序列中添加了四个分隔标记([ROI1]、[BASE]、[BOI1]、[EOI1]),以指示文本和图像的边界。
训练策略
-
预训练任务:
- 采用从左到右的标记预测任务(语言建模),图像和文本标记被同等对待。
- 通过调整文本标记的损失权重来增强文本建模的重要性。
- 使用动量优化器(Adam)进行优化,学习率为3×10-4,权重衰减为4×10-2。
-
训练稳定性:
- 针对16位浮点精度训练不稳定的问题,提出了解决方案:
- 精度瓶颈放松(PB-Relax):通过调整最大值和注意力分数来防止数值溢出。
- 三区稀疏注意力(Sandwich-LN):在残差分支末端添加层归一化,以限制层间放大效应。
- 针对16位浮点精度训练不稳定的问题,提出了解决方案:
稳定化训练的技术
-
PB-Relax:
- 通过放松最大值和调整注意力分数来防止数值溢出。
-
Sandwich-LN:
- 在残差分支末端添加层归一化,以避免层间放大效应。
下游任务的微调
-
超分辨率:
- 通过微调CogView进行图像超分辨率,增强生成图像的细节。
- 使用自定义的数据集和方法进行微调。
-
图像字幕和自重新排名:
- 通过微调CogView进行图像字幕生成和图像自重新排名,使用新的指标(Caption Loss)来评估文本与图像之间的对应关系。
-
风格学习:
- 通过微调CogView生成特定风格的图像,例如中国传统绘画、油画、素描和卡通。
-
工业服装设计:
- 使用更精细的注意力机制和更高的分辨率生成高分辨率图像,以提高生成图像的质量。
实验结果
-
机器评估:
- 在模糊MS COCO数据集上的FID(Frechet Inception Distance)表现优于之前的模型和DALL-E,表明CogView在文本到图像生成方面具有优越的性能。
- 提出新的指标(Caption Loss)以更精细地评估生成图像的质量。
-
人工评估:
- 人工评估结果显示CogView在生成图像质量和多样性方面优于其他方法,特别是在超分辨率和自重新排名任务中表现突出。
结论
CogView展示了跨模态生成预训练的强大能力和潜在应用,特别是在控制图像生成和跨模态知识理解方面。未来的工作将继续解决模型的生成速度慢和模型模糊性等问题。
【创新点】
CogView 的创新点主要包括以下几个方面:
-
大规模联合预训练:CogView 是一个包含 40 亿参数的 Transformer 模型,它结合了 VQ-VAE 编码器和 Transformer 解码器进行预训练。这使得模型在图像生成任务上取得了显著的性能提升。
-
预训练策略:CogView 通过消除 NaN 损失等方法稳定了预训练过程,提出了 PB-Relax 和 Sandwich-Layernorm 技术,解决了大模型预训练中的稳定性问题。
-
下游任务微调:CogView 可以适应多种下游任务,如风格学习、超分辨率、图像字幕生成和文本图像重排序。模型在超分辨率任务上的表现尤为突出,通过自排序方法,可以生成质量更高的图像。
-
自监督学习与稳定性:CogView 通过自监督学习和新颖的训练技术(如 PB-Relax 和 Sandwich-Layernorm),解决了大规模模型训练中的精度问题。这些技术不仅适用于 CogView,还适用于其他 Transformer 模型的预训练。
-
生成质量评估:CogView 提出了 Caption Loss 作为生成质量的评估标准,相较于传统的 FID 和 Inception Score,Caption Loss 能够更细粒度地评估生成图像与文本的对应关系。
-
多模态生成能力:CogView 在未使用超级分辨率的情况下,在模糊 MS COCO 数据集上的 FID 表现超过了 DALL-E 和其他 GAN 基础模型,显示了其在多模态生成任务上的强大能力。
这些创新点共同推动了可控图像生成和跨模态知识理解的研究进展。
【应用场景】
CogView应用场景描述
1. 图像超分辨率 (Super-resolution)
CogView的一个突出应用场景是图像超分辨率。由于图像编码器在训练过程中将256×256像素的图像压缩为32×32的token序列,生成的图像会比较模糊。超分辨率任务的目标是在不大幅增加计算和内存消耗的情况下,提升生成图像的清晰度。
具体应用场景:
- 训练过程: 首先,将CogView微调为一个条件超分辨率模型,从16×16的图像token生成32×32的token。然后,逐步放大32×32的token序列至64×64(512×512像素)的图像,使用中心连续滑动窗口策略。
- 数据准备: 从256×256的图像区域裁剪和下采样至128×128,然后进行token化,以获取不同分辨率的序列对。
- 微调序列模式: 在微调过程中,输入序列的模式为
[ROI1] 文本token [BASE] [BOI1] 16 × 16 图像token [EOI1] [ROI2] [BASE] [BOI2] 32 × 32 图像token [EOI2]
。这比最大位置嵌入索引1087更长,因此从[ROI2]重新计数位置索引。
2. 图像标题生成与自排序 (Image Captioning and Self-reranking)
CogView还可以用于图像标题生成和自排序任务。通过调整输入序列中文本token和图像token的顺序,可以实现图像标题生成。自排序的过程是通过计算 Caption Loss 来完成的,选择 Caption Loss 最低的图像作为最终输出。
具体应用场景:
- 图像标题生成: 通过交换输入序列中的文本token和图像token的顺序,可以直接生成图像标题。
- 图像自排序: 通过计算 Caption Loss,选择最低的 Caption Loss 对应的图像作为最终生成结果。
3. 风格学习 (Style Learning)
CogView可以用于生成特定风格或主题的图像。通过微调模型,可以学习不同风格的图像生成。
具体应用场景:
- 微调风格: CogView可以微调以生成特定风格的图像,如中国画、油画、素描和卡通等。
- 数据来源: 从搜索引擎中自动提取特定风格的图像,例如使用关键字“一幅{风格}风格的图像”。
4. 工业时尚设计 (Industrial Fashion Design)
在特定领域的图像生成任务中,可以通过调整模型结构和参数来提升生成图像的细节和分辨率。CogView可以用于生成高质量的时尚设计图像。
具体应用场景:
- 参数调整: 通过使用VQGAN代替VQVAE来生成更真实的纹理,并增加序列长度以提高分辨率。
- 生成高质量图像: 使用约3亿参数的模型,在约1000万对时尚-标题数据上进行训练,生成高质量的时尚设计图像。
5. 控制图像生成 (Controllable Image Generation)
CogView可以用于生成受控的图像,通过微调模型,可以学习并生成特定风格或主题的图像。
具体应用场景: