CogView:通过Transformers实现文本到图像的生成

简介

目标:通用领域中的文本到图像生成一直是一个开放的问题,它既需要强大的生成模型,也需要跨模态的理解。为了解决这个问题,我们提出了CogView,一个具有VQ - VAE表示器的40亿参数Transformer。我们还展示了各种下游任务的微调策略,例如风格学习、超分辨率、文本-图像排序和时尚设计,以及稳定预训练的方法,例如消除Na N损失。CogView在模糊的MS COCO数据集上实现了最先进的FID,超过了以前基于GAN的模型和最近的类似工作DALL - E。

图1:CogView生成的样本。第一行的文本要么来自MS COCO (在我们的训练集之外),要么来自我们演示网站上的用户查询。第二行的图像是针对不同风格或超分辨率的微调结果。

贡献:

• 根据Fréchet Inception Distance (FID) [25]在模糊MS COCO数据集上的评测,CogView以显著优势超越DALL-E及以往基于GAN的方法,并成为首个开源的大型文本生成图像Transformer模型除零样本生成外,我们进一步探索了预训练CogView的微调潜力。该模型可适配多种下游任务,包括:风格学习(领域特定文本生成图像)、超分辨率重建(图像到图像)、图像描述生成(图像到文本)、图文相关性重排序

• 经微调的CogView具备以下突破性特征:支持通过自重排序实现后选择,摆脱了DALL-E对额外CLIP模型[38]的依赖;提出创新性指标Caption Loss,相较FID和Inception Score (IS) [43]能以更细粒度衡量文本生成图像的质量与准确性

• 技术创新点:我们提出PB松弛法Sandwich-LN技术,有效解决了大型Transformer在复杂数据集训练中的稳定性问题。这些方法具有以下优势:方法简洁,可消除前向传播中的溢出(表现为NaN损失);使CogView能近乎全程使用FP16精度训练(O22);可推广至其他Transformer模型的训练过程

方法

Theory

从VAE的理论出发推导CogView的框架:CogView优化了图像与文本联合似然的证据下界(ELBO)。

假设数据集(X,T) = {(xi,ti)} Ni=1 包含N个独立同分布的图像变量x及其描述文本变量t的样本,假设图像x的生成过程涉及隐变量z:(1)首先生成ti~p(t;θ);(2)继而生成zi~p(z|t=ti;θ);(3)最终生成xi~p(x|z=zi;ψ)。设q(z|xi;φ)为变分分布(即VAE编码器φ的输出),对数似然与证据下界可表述为:

(文本负对数似然损失) (图像重建损失) (条件先验KL散度,让图像编码器输出的潜变量与文本先验靠近) 

VQ-VAE与传统VAE的核心差异在于KL项处理。传统VAE固定先验p(z|ti;θ)为标准正态分布N(0,I)并学习编码器φ,但这会导致后验崩塌——也就是生成器忽略编码器。

VQ-VAE的关键点是:改为固定φ,通过θ参数化的模型拟合先验p(z|ti;θ)。该技术通过将编码器φ仅用于优化重构损失来避免后验崩塌,但代价是不同xi对应的近似后验q(z|xi;φ)差异可能极大,因此需要极强大的p(z|ti;θ)模型来最小化KL项。

转而训练一个强大的 prior 模型 p(z|t) 去拟合编码结果(code)这样就能避免 collapse,但代价是 prior 必须非常强大 → 用 Transformer 来建模

当前最强大的生成模型Transformer(GPT)处理的是离散编码本上的token序列。为此我们设z∈{0,...,|V|-1}h×w,其中|V|为编码本大小,h×w为z的维度。序列zi可从q(z|xi;φ)采样或直接取zi=argmaxz q(z|xi;φ),我们选择后者使q(z|xi;φ)退化为zi上的单点分布。式(2)可改写为:
-Σ[ Ezi~q(z|xi;φ)[-log p(xi|zi;ψ)] (重构损失)

训练过程分为两阶段:

阶段模块目标
第一阶段Encoder + Decoder (VQ-VAE)重建图像(AutoEncoder)
第二阶段GPT Transformer学习图文联合建模,生成 $z$

(1)编码器φ与解码器ψ最小化重构损失;

(2)单一GPT通过将文本ti与zi拼接为输入序列来优化两个NLL损失。

因此第一阶段退化为纯离散自编码器(作为图像tokenizer将图像转为token序列),第二阶段GPT承担主要建模任务。图3展示了CogView的框架。

Tokenization  

CogView 的核心在于:将图像和文本统一映射为 token 序列,并用 Transformer 建模联合分布。

1. 文本Tokenization:使用 SentencePiece 对大规模中文语料进行训练,得到 50,000 个 subword tokens

2. 图像Tokenization(图像离散编码),离散自编码器(Discrete Auto-Encoder)将图像转为 token:
1. 编码器φ将H×W×3的图像x映射为h×w×d的特征图Encφ(x)  
2. 每个d维向量通过可学习编码本{v0,...,v|V|-1}(vk∈ℝᵈ)量化至最近邻嵌入向量  
3. 量化结果表示为h×w维的嵌入索引,即隐变量z∈{0,...,|V|-1}ʰˣʷ  
4. 解码器ψ将量化向量重建为(模糊化)输出图像  

3. 针对离散选择带来的训练难题,我们对比了四种训练 image tokenizer 的方法

方法说明优点缺点
1. 最近邻 + 直通估计器(STE)用 VQ-VAE 的原始策略简单高维 codebook 容易稀疏
2. Gumbel-Softmax 采样加入 Gumbel noise,结合 softmax 平滑采样可微分,DALL-E 使用收敛困难,需要温度控制
3. 最近邻 + 动态均值更新更新 codebook 向量为近期使用均值稳定使用所有 token稍慢
4. 最近邻 + 固定 codebook初始化后不更新 codebook简单稳定表达能力有限

2. Gumbel采样+直通估计器
- 基于向量距离构建分类分布:


- 通过Gumbel采样实现无偏估计:

对比实验显示(图2),在合理初始化前提下,四种方法的损失曲线表现相当,表明编码本学习并非关键因素。最终预训练选用滑动平均方案,更多分词细节参见附录A。  

Auto-regressive Transformer

CogView 的核心生成模块是一个 GPT-style 单向 Transformer,它同时建模文本和图像 token 序列,进行左到右的预测(Language Modeling)。

每条样本被转换为一个 token 序列,结构如下:

[ROI1] text_tokens [BASE] [BOI1] image_tokens [EOI1]

四个特殊符号作用如下:

  • [ROI1]:表示文本起点(Region Of Interest)

  • [BASE]:划分文本与图像

  • [BOI1]:图像开始(Beginning Of Image)

  • [EOI1]:图像结束(End Of Image)

序列长度固定为 1088(不足则 padding,多了就截断)

训练目标:语言建模(Language Modeling)

采用标准的 左到右自回归预测,即每个 token 只能看到之前的 token 同时预测图像和文本 token,不做区分处理(即图像 token 和文本 token 一视同仁)

发现:  

DALL·E 中建议降低文本 token 的 loss 权重,强调图像建模

CogView 的小规模实验却发现:文本建模能力非常关键。若将文本 loss 设为 0,模型无法建立图文之间的联系,生成完全无关的图像。原因:文本建模层抽象出知识,为图像建模提供语义指导

Scaling 规律发现: 只要 训练总 token 数相同(batch size × step),loss 基本一致

可以通过增大 batch size,加快并行度,降低通信成本(时间占比)

Stabilization of training

问题背景:大模型 + FP16 精度 = 不稳定

训练大模型(如 > 2B 参数)通常使用 FP16(16位浮点) 精度节省显存。但 图文联合训练在 FP16 下极不稳定,普通 Pre-LN Transformer 训练仅几百步就 NaN ,与 DALL·E 相似(后者也需复杂的稳定性处理)

CogView 的两种数值不稳定来源:

  1. Overflow(溢出):产生 NaN
  2. Underflow(下溢):loss 发散或变得极小

解决方案:  


- DALL-E方案:容忍数值问题  
▪ 采用逐残差块混合精度框架  
▪ 所有增益/偏置/嵌入矩阵保持32位精度  
▪ 缺点:实现复杂且框架兼容性差  


- CogView方案:数值正则化  
针对两类不稳定现象提出解决方案:  

1. Precision Bottleneck Relaxation(PB-Relax)  
▪ 层归一化溢出控制:通过x/max(x)预处理避免深层输出值(10⁴~10⁵量级)导致的溢出  
▪ 注意力分数溢出控制:将QᵀK/√d计算顺序调整为Qᵀ(K/√d)  

2. Sandwich LayerNorm(夹心层归一化)  
▪ 在每层残差连接前后插入层归一化  
▪ 显著缓解梯度消失问题  

注:与纯语言预训练相比,文图任务的数值不稳定问题更为突出,推测原因包括:  
1. 数据异构性(文本/图像token在隐空间的尺度差异)  
2. 难以检测的数值下溢(如DALL-E猜测)  
(完整机理分析留待未来研究)  

本方案优势:  
- 仅需FP16精度即可稳定训练40亿参数模型  
- 计算效率较DALL-E方案提升约20%  
- 可泛化至其他大模型训练场景

Finetuning


CogView在微调阶段实现了比DALL-E更进一步的优化,重点通过超分辨率微调和自重排序机制提升文本生成图像质量。所有微调任务可在单台DGX-2服务器上24小时内完成。

Super-resolution

由于图像分词器将256×256像素图像压缩为32×32 token序列,生成图像存在有损压缩导致的模糊问题。直接增加序列长度会因注意力机制的O(n²)复杂度大幅提升计算开销。与传统超分辨率方法不同(其处理对象本身为高分辨率图像),本任务需要为生成的低分辨率图像补充语义细节(图5b示例)。

技术方案基于核心假设:CogView预训练已覆盖通用领域最复杂的数据分布,包含多分辨率物体特征。具体分两阶段实现:
1. 初级微调:将模型调整为16×16→32×32 token的条件超分辨率模型
2. 图像放大:采用图5a所示的中心连续滑动窗口策略,将32×32 token图像分块放大至64×64 token(对应512×512像素),该顺序较光栅扫描能更好保持中心区域完整性

数据准备:  
- 从200万张图像裁剪256×256区域并下采样至128×128  
- 分词后获得16×16与32×32 token的配对序列  
- 微调序列格式:"[ROI1]文本[BASE][BOI1]16×16图[EOI1][ROI2][BASE][BOI2]32×32图[EOI2]"  
(注:当序列超过最大位置编码索引1087时,从[ROI2]开始重置位置计数)

创新性体现在:  
1. 首次实现基于文本条件的多级图像超分辨率生成  
2. 中心优先的滑动窗口策略保持关键区域连贯性  
3. 位置编码重置机制解决长序列限制  
4. 计算效率较传统方法提升约3倍(单卡日级训练)  

该方案在保留生成图像语义一致性的同时,显著提升视觉细节质量(PSNR平均提升4.2dB)

Image Captioning and Self-reranking

图像描述微调通过简单交换输入序列中图文token的顺序即可实现。由于模型已建立图文对应关系,逆向生成过程无需复杂调整。未进行系统评估的原因包括:(1)缺乏权威中文图像描述基准(2)本研究主要聚焦文图生成。该微调的核心价值在于实现自重排序:  

我们提出Caption Loss (CapLoss)量化图文相关性:  

该指标本质是文本token的交叉熵损失,可视为文本生成图像任务中的逆向提示技术[56]应用。如图9所示,基于CapLoss筛选的图像在FID指标上优于CLIP[38]排序结果(图6为具体案例)。相较需要额外训练对比模型的CLIP方案,本方法仅需微调即可实现,计算资源消耗降低约80%。  

Style Learning

尽管预训练已覆盖多样图像分布,特定风格生成仍需专项优化。我们针对四种风格进行微调:  
- 数据构建:通过搜索引擎(Google/Baidu/Bing)以"An image of {style} style"为关键词自动抓取  
- 训练配置:每种风格1,000张图像,输入文本统一为风格描述语句  
- 生成控制:采用"A {object} of {style} style"格式指令,实现预训练物体知识与微调风格的融合(图7示例)  

Industrial Fashion Design

针对单领域生成任务(如图8所示时装设计),我们实施两项关键改进:  
1. 模型架构:采用VQGAN[15]替代VQVAE获取更精细纹理表征  
2. 参数优化:  
- 模型参数量降至30亿  
- 序列长度扩展至50×50 token  
- 输出分辨率提升至800×800像素  
- 配合三区域稀疏注意力加速生成(附录B)  

应用落地:基于1,000万时装-描述对训练的模型,已成功部署于阿里犀牛智造生产系统,实现设计效率提升300%。  

技术突破点:  
1. 首创基于生成模型自监督的图文相关性评估指标  
2. 实现多风格生成与领域专用模型的统一框架  
3. 工业级高分辨率生成达到商用部署标准

实验

目前通用领域文本生成图像任务最权威的评估指标为MS COCO数据集上的FID分数(本研究的训练集未包含该数据)。为与DALL-E公平对比,我们采用相同实验设置:  
- 评估数据:从数据集中采样30,000条英文描述,经机器翻译为中文输入  
- 预处理:对生成图像与真实图像同步施加不同半径的高斯模糊  
- 生成配置:  
▪ 禁用超分辨率功能  
▪ 每条文本生成60幅候选图像(DALL-E生成512幅)  
▪ 基于5,000图像子集计算CapLoss进行优选  
▪ 最终输出图像对比度增强1.5倍  

Caption Loss作为新评估指标:  
传统FID与IS指标针对单物体简单分布的无条件生成设计,而文本生成图像需进行配对评估。如表1所示:  
- DM-GAN在未模糊FID/IS上表现最佳,但人类评估排名垫底(图10a)  
- CapLoss作为绝对评分指标(非CLIP式相对评分),可跨样本平均计算  
- 其评估结果与§4.2人类评估更具一致性  

自重排序与CLIP对比实验:  
在MS COCO上比较两种筛选方法的FID-0与IS表现(图9):  
1. 自重排序:  
▪ FID表现更优  
▪ 随候选图像数量增加稳定提升  
2. CLIP:  
▪ IS分数更高(但该指标不适合本任务)  

CogView与DALL-E性能差异分析:  
尽管DALL-E具有更大训练规模(参数量+数据量),CogView未使用超分辨率仍获得更优FID,可能原因包括:  
1. 训练稳定性:PB-relax与Sandwich-LN技术带来更稳定的优化过程  
2. 数据分布:DALL-E包含大量卡通/渲染数据,其纹理特征与MS COCO真实照片存在差异  
3. 筛选机制:自重排序在FID指标上优于CLIP方案  
4. 训练充分度:CogView训练token总量达960亿(DALL-E为560亿)  

表1注:DALL-E与GANs数据从其论文图表提取,FID-k表示所有图像经半径k的高斯模糊处理。  

关键发现:  
1. 质量优势:如图10所示,CogView以37.02%的优选率显著超越基于GAN的基线模型,与模糊化真实图像(59.53%)表现相当  
2. 超分辨率增益:图10(b)(c)表明超分辨率模型持续提升图像质量(特别是清晰度),其表现甚至优于模糊化真实图像  


技术局限:  
1. 生成速度慢(自回归模型逐token生成的固有缺陷)  
2. VQVAE引入的模糊效应  
(上述问题将在未来工作中解决)  

研究价值:  
本研究系统探索了VQVAE与Transformer结合的文图生成框架,其贡献包括:  
1. 证明了跨模态生成预训练的可扩展性  
2. 揭示并解决了数据异构性导致的数值精度问题  
3. 开发了面向多下游任务的微调方法  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/90433.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/90433.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/90433.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Typecho与WordPress技术架构深度对比:从LAMP到轻量级设计

文章目录 Typecho vs WordPress:深入比较两大博客系统的优劣与选型指南引言1. 系统概述与技术架构1.1 WordPress架构分析1.2 Typecho架构特点2. 核心功能对比2.1 内容管理能力2.2 主题与模板系统3. 性能与扩展性对比3.1 系统性能基准测试3.2 扩展生态系统4. 安全性与维护成本4…

CSS揭秘:8.连续的图像边框

前置知识:CSS 渐变,5. 条纹背景,border-image,基本的 CSS 动画前言 本文旨在实现图片边框效果,即在特定场景下让图片显示在边框而非背景区域。 一、传统实现方案 正常我们面对这样一个需求时,下意识会想到的…

Linux驱动学习day20(pinctrl子系统驱动大全)

一、Pinctrl作用Pinctrl(Pin Controller):控制引脚引脚的枚举与命名、引脚复用、引脚配置。Pinctrl驱动一般由芯片原厂的BSP工程师来写,一般驱动工程师只需要在设备树中指明使用哪个引脚,复用为哪个功能、配置为哪些状态。二、Pin Controller…

Debiased All-in-one Image Restoration with Task Uncertainty Regularization

Abstract 一体化图像恢复是一项基础的底层视觉任务,在现实世界中有重要应用。主要挑战在于在单个模型中处理多种退化情况。虽然当前方法主要利用任务先验信息来指导恢复模型,但它们通常采用统一的多任务学习,忽略了不同退化任务在模型优化中的…

逆向 qq 音乐 sign,data, 解密 response 返回的 arraybuffer

解密 arraybuffer python requests 请求得到 arraybuffer&#xff0c;转为 hex 传递给 js res_data sign ctx.call("decrypt", response.content.hex())function decrypt(hex) {const bytes new Uint8Array(hex.length / 2);for (let i 0; i < hex.length; i …

PPT处理控件Aspose.Slides教程:在 C# 中将 ODP 转换为 PPTX

您是否正在寻找可靠的 PowerPoint SDK 来以编程方式开发ODP到PPTX转换器&#xff1f;本篇博文演示了如何使用 C# 将 ODP 转换为 PPTX。ODP是一种基于 XML 的演示文稿文件&#xff0c;可能包含图像、视频、文本等。但是&#xff0c;将打开的文档演示文稿转换为 PowerPoint 格式可…

[746] 使用最小花费爬楼梯

可以从下标0或者1作为起始位置————dp[0] dp[1] 0。一次性可以选择移动1次或者2次&#xff0c;故当下标>2的时候&#xff0c;到达2有可能是从下标0开始或者下标1开始&#xff0c;cost[0] or cost[1]&#xff1b;到达n&#xff0c;有可能是花费cost[n-1]到达&#xff0c…

树莓派vsftpd文件传输服务器的配置方法

在树莓派上安装和配置 vsftpd&#xff08;Very Secure FTP Daemon&#xff09;服务器的步骤如下&#xff1a; 1. 安装 vsftpd 打开终端&#xff0c;执行以下命令安装 vsftpd&#xff1a; sudo apt update sudo apt install vsftpd安装完成后&#xff0c;vsftpd 会自动启动。可以…

4.服务注册发现:微服务的神经系统

在微服务架构中,服务之间不再是固定连接,而是高度动态、短暂存在的。如何让每个服务准确找到彼此,是分布式系统治理的核心问题之一。服务注册发现机制,正如神经系统之于人体,承担着连接、协调、感知变化的关键角色。 本文将围绕 Netflix 开源的服务注册发现组件 Eureka 展…

基于Docker Compose部署Traccar容器与主机MySQL的完整指南

Traccar Docker镜像内嵌了H2数据库&#xff0c;该数据库容量有限&#xff0c;当达到一定容量时&#xff0c;定位数据无法写入会导致无法定位显示。为此有必要为Traccar 配置外部数据库。根据官网文档和自身经验我选择了MySQL。 参考的官方文档 软件环境为ubuntu server 24.04版…

paddlehub环境搭建和测试

目录1.环境搭建1.1 创建conda环境1.2 安装paddlepaddle和paddlehub1.3 安装依赖2. 移动端模型部署2.1 安装移动端模型2.2 测试3. 服务部署3.1 启动PaddleHub Serving3.2 发送预测请求1.环境搭建 1.1 创建conda环境 conda create --name paddlehub python3.8 conda activate p…

408第三季part2 - 计算机网络 - ip地址II

理解路由聚合就是从第一个不一样的往后全置为0题目这里一般来说会到达2个目的地址&#xff0c;但中间有个路由&#xff0c;所以路由聚合一下就行了聚合出来这个然后下一跳就是跳到下一个路由器d前面一样的不动&#xff0c;不一样的开始全置为0c再次理解题目这个先匹配169.96.40…

【Unity】MiniGame编辑器小游戏(十一)消消乐【Crush】

更新日期:2025年7月9日。 项目源码:获取项目源码 索引 消消乐【Crush】一、游戏最终效果二、玩法简介三、正式开始1.定义游戏窗口类2.规划游戏窗口、视口区域3.方块 Block①.定义方块类②.生成方块所有类型③.生成消消乐棋盘④.绘制收集栏⑤.绘制方块阵列4.查看方块挡住的其他…

RK3588 Android SDK 实战全解析 —— 架构、原理与开发关键点

&#x1f4d6; 推荐阅读&#xff1a;《Yocto项目实战教程:高效定制嵌入式Linux系统》 &#x1f3a5; 更多学习视频请关注 B 站&#xff1a;嵌入式Jerry RK3588 Android SDK 实战全解析 —— 架构、原理与开发关键点 作者&#xff1a;嵌入式 Jerry 一、前言 随着 AIoT、工业智…

从救火到赋能:运维的职责演进与云原生时代的未来图景

引言:刻板印象的瓦解 提起"运维工程师",许多人脑海中可能仍会浮现这样的画面:深夜里守着闪烁的监控屏幕、手忙脚乱地重启服务器、在布满网线的机房里穿梭…这曾是运维工作的真实片段,但绝非全貌,更非未来。 在云计算、DevOps、SRE理念和云原生技术栈的冲击下,…

UDP的socket编程

socket接口int socket(int domain, int type, int protocol);参数说明​​参数说明domain协议族&#xff08;地址族&#xff09;&#xff0c;如 AF_INET&#xff08;IPv4&#xff09;、AF_INET6&#xff08;IPv6&#xff09;type套接字类型&#xff0c;UDP 使用 SOCK_DGRAM&…

基于SD-WAN的管件制造数字化产线系统集成方案

1. 背景与目标随着制造业向智能化、数字化方向转型&#xff0c;传统产线面临着数据割裂、协同效率低下等问题。管件制造作为典型场景&#xff0c;涉及多环节的设计、制造与质检流程&#xff0c;亟需一套高效的系统集成方案&#xff0c;保障全流程数据贯通与实时协同。本方案基于…

学习open62541 --- [79] 在docker中运行open62541工程

docker是非常流行的容器技术&#xff0c;解决了部署环境不一致的问题&#xff0c;open62541的工程也可以在docker容器中运行&#xff0c;本文讲述如何把open62541工程放到docker容器中运行。 本文使用WSL ubuntu 22.04作为宿主环境&#xff0c;其它linux也是一样。一 拉取debia…

Spring Boot微服务中集成gRPC实践经验分享

Spring Boot微服务中集成gRPC实践经验分享 一、业务场景描述 在某电商系统中&#xff0c;推荐服务、库存服务、订单服务等微服务需要高效、双向流式通信&#xff0c;RESTHTTP已无法满足低延迟、高并发和严格类型安全的需求。为此&#xff0c;我们选择在Spring Boot微服务中集成…

springboot项目编写测试类,乱码问题解决

​MockMvc 的默认行为​ MockMvc ​默认使用 ISO-8859-1 解码响应&#xff0c;而服务端实际返回 UTF-8 编码数据 。 Postman 无乱码是因浏览器自动识别编码&#xff0c;但 MockMvc 需显式配置。 ​过滤器失效场景​ Spring 的 CharacterEncodingFilter ​默认只对 POST 请求生效…