文章链接:https://arxiv.org/pdf/2408.02657
git链接:https://github.com/Alpha-VLLM/Lumina-mGPT
亮点直击
-
通过多模态生成预训练的自回归Transformer,而不是从头训练,可以作为逼真的文本到图像生成和视觉与语言任务统一的有效初始化。
-
基于mGPTs,引入了两种新的微调策略,FP-SFT和Omni-SFT,以在从弱到强的范式中充分释放它们的潜力,仅使用1000万高质量的文本-图像数据。
-
结果模型Lumina-mGPT不仅在任何分辨率下展示了令人印象深刻的逼真文本到图像生成,弥合了自回归和扩散基础方法之间的差距,还通过语言接口无缝支持各种下游任务。
本文介绍了
Lumina-mGPT
,一个多模态自回归模型家族,能够执行各种视觉和语言任务,特别是在从文本描述生成灵活的逼真图像方面表现优异。与现有的自回归图像生成方法不同,Lumina-mGPT采用了预训练的decoder-only Transformer作为建模多模态token序列的统一框架。注意见解是,通过使用大规模交织的文本-图像序列进行下一token预测目标的多模态生成预训练(mGPT),简单的decoder-only Transformer能够学习广泛且通用的多模态能力,从而实现逼真的文本到图像生成。基于这些预训练模型,提出了高质量图像-文本对的灵活渐进监督微调(FP-SFT),以充分释放它们在任何分辨率下进行高美学图像合成的潜力,同时保持其通用多模态能力。
此外,引入了全能监督微调(Omni-SFT),将Lumina-mGPT转化为一个基础模型,能够无缝实现全能任务统一。结果显示,该模型具备多种多模态能力,包括视觉生成任务(如灵活的文本到图像生成和可控生成)、视觉识别任务(如分割和深度估计)以及视觉语言任务(如多轮视觉问答)。此外,本文还分析了扩散基础方法和自回归方法之间的差异和相似之处。
方法
Lumina-mGPT 是一个仅包含解码器的Transformer ,采用多模态生成预训练(mGPT)进行初始化,并在来自各种任务的高质量多模态token 上进行微调。基于强大的 mGPT 表示和本文提出的带有明确图像表示的监督微调策略,Lumina-mGPT 在逼真图像生成和全能任务统一方面表现出色,具有高灵活性,能够处理不同的图像分辨率和长宽比。
重新审视带Chameleon的mGPT
mGPT 代表了一类利用仅包含解码器的Transformer 架构的模型,这些模型在广泛的多模态token 序列上进行了预训练。这些模型展现了出色的原生多模态理解、生成和推理能力,提供了在各种模态和任务中进行通用建模的潜力。本文使用最近的开源模型 Chameleon作为例子,来说明 mGPT 的设计选择和实现细节。
多模态分词(Tokenization)
为了将文本和图像统一成多模态token序列,首先需要将文本和图像分别token化为离散空间。特别是对于图像,选择合适的分词器至关重要,因为它决定了生成质量的上限。具体来说,Chameleon 为文本训练了一种新的字节对编码token。对于图像,采用了基于量化的token化方法,参考了之前的工作,将连续的图像补丁转换为来自固定词汇表的离散token ,同时减少空间维度。量化后的图像token被展平成一维序列,并以各种方式与文本token连接,以形成用于统一建模的多模态token序列。
仅解码器Transformer
与使用预训练编码器的 Unified-IO 和 Parti 的编码器-解码器架构不同,mGPT 从头开始训练一个仅包含解码器的自回归Transformer,在将文本和图像输入转换为离散token的统一序列
后,这种方法提供了更简单、更统一的多模态生成建模方法。mGPT 采用了标准的密集Transformer 架构,以便于扩展和泛化,进行了如 RoPE(和 SwiGLU激活函数等小的调整,参考了 LLaMA 系列)。
然而,当模型规模和多模态token序列的上下文长度增加时,这种标准的Transformer 架构会表现出训练不稳定性,这在 Chameleon和 Lumina-Next中都有观察到。研究发现,这种不稳定性是由于Transformer块中的网络激活无法控制地增长所造成的。因此,为了保持中间激活的幅度并进一步稳定训练过程,添加了 Pre-Norm、Post-Norm 和 QK-Norm 到每个Transformer 块中。
训练目标
在训练过程中,mGPT 通过标准的下一个token 预测目标建模多模态序列的条件概率
。此外,Chameleon 应用了 z-loss来稳定 7B 和 30B 模型的训练。最初,低估了 z-loss 的重要性,因为在与(多模态)LLM 训练相关的大多数工作中,它是缺失的。然而,发现没有这项时,logits 的幅度会激增,导致损失发散。另一方面,使用 z-loss 时,观察到对于 7B 和 30B 模型,推理时图像生成的最佳温度远低于 1B 模型,因为在更大的模型中 logits 的幅度显著降低。
Chameleon 的局限性
尽管像 Chameleon 这样的 mGPT 模型在单个仅解码器的Transformer 中展示了图像和文本的联合理解潜力,但其图像生成能力在质量和分辨率灵活性方面仍不及最先进的扩散基础框架。此外,值得注意的是,Chameleon 的开源版本中甚至缺乏图像生成能力。此外,Chameleon 的能力仅限于视觉-语言和仅文本任务,未涵盖更广泛的视觉中心任务。这些任务包括经典的视觉识别任务(如分割和深度预测)以及创意视觉生成任务(如可控生成和图像编辑)。Lumina-mGPT 基于 Chameleon 构建,旨在释放其在灵活逼真图像生成方面的全部潜力,成为一个多功能的视觉通用模型。
Lumina-mGPT
基于预训练的多模态生成预训练(mGPT)表示,Lumina-mGPT 实现了灵活的逼真图像生成以及视觉和语言任务的统一。为了充分释放 mGPT 的潜力,提出了明确图像表示(Uni-Rep)、灵活渐进监督微调(FP-SFT)和全能监督微调(Omni-SFT)。Uni-Rep 消除了原始 2D 形状的扁平化 1D 图像token 中的模糊性,为灵活分辨率和长宽比下的图像理解和生成奠定了基础。FP-SFT 以从简单到困难的方式逐步微调 mGPT 以生成更高分辨率的离散图像token ,同时融入多任务微调,以防止文本知识的灾难性遗忘。在 FP-SFT 过程之后,Lumina-mGPT 能够以灵活的分辨率生成逼真的图像。在 FP-SFT 阶段的图像生成能力的基础上,继续在全能任务数据集上微调 Lumina-mGPT,通过将图像和注释从密集标注、空间条件图像生成和多轮编辑数据集中token 化为离散token 。所有微调阶段均采用下一个token 预测目标来共同建模多模态token ,并集成 z-loss,与预训练阶段类似。
有效初始化
大规模预训练和可扩展模型架构已被广泛验证为通向先进智能的黄金路径。由于 mGPT(如 Chameleon)在大规模图像-文本交织数据集上进行预训练,并为图像和文本开发了有效且可泛化的表示,它们可以更好地作为灵活逼真图像生成及其他任务的起始点,而不是随机初始化或仅语言模型。此外,LLaMA架构,结合了查询-键归一化和旋转位置编码等特性,通过广泛的验证展示了其强大和可扩展性。通过从遵循 LLaMA 架构的 Chameleon mGPT 初始化,可以利用这些架构优势。因此,从 mGPTs 开始初始化能够高效地训练出性能优异的 Lumina-mGPT 模型,其参数范围从 7B 到 30B,仅使用 1000 万高质量图像-文本数据点。
预训练仅解码器的多模态生成预训练(mGPT)模型在各种应用中已被广泛探索和应用。与这些现有方法不同,Lumina-mGPT 的主要贡献在于展示了从合适的 mGPT 表示开始的好处,而不是使用大型语言模型(LLMs)或随机初始化,特别是在文本到图像生成方面。相信这一发现可以启发未来在图像生成和视觉通用模型方面的进展。
Lumina-mGPT 的监督微调
明确图像表示(Unambiguous Image Representation)
现有方法,如 Chameleon和 LlamaGen,将图像表示为 2D 离散图像编码的 1D 扁平序列。虽然这种方法适用于固定图像分辨率,但在图像分辨率可变的情况下(如 Lumina-mGPT 支持的情况),它变得模糊。例如,分辨率为 512×512、256×1024 和 1024×256 的图像都可以编码成相同数量的token ,这使得在不检查token 内容的情况下很难推断原始形状。这种模糊性对图像感知和生成提出了重大挑战。
为了解决这个问题,本文提出了明确图像表示(Uni-Rep),它通过在
token 之后添加额外的高度/宽度指示token ,并在属于同一行的图像token 之后插入
token ,来增强图像表示。如下图 2 所示,这种修改确保可以准确解析出图像的原始形状,而无需额外的上下文或深入研究图像token 的内容。这一改进为 Lumina-mGPT 在任何分辨率和长宽比下执行图像相关任务奠定了基础。
需要注意的是,虽然高度/宽度指示器或
token 中的任意一个都可以单独实现消歧义,但仍然同时使用这两者,因为它们各有不同的优点。在生成图像时,高度/宽度指示器在任何图像token之前生成,可以预先确定图像的形状,帮助 Lumina-mGPT 组成图像内容。另一方面,
token 可以作为anchors,为 1D token 序列提供额外的显式空间信息。
灵活渐进监督微调(FP-SFT)
FP-SFT 过程使预训练的 mGPT 能够以渐进的方式生成具有灵活长宽比的高分辨率图像。该过程分为三个阶段,每个阶段的宽度和高度的乘积分别为 512²、768² 和 1024²。在每个阶段,准备了一组具有相似面积但不同高宽比的候选分辨率,每张图像都匹配到最合适的分辨率。在低分辨率阶段,较短的序列长度和较高的训练吞吐量使得模型能够快速遍历大量数据,学习图像的整体构图和广泛的视觉概念。相反,在高分辨率阶段,模型预计将专注于学习高分辨率图像特有的高频细节。受益于在高吞吐量预训练和低分辨率微调阶段建立的强大基础,低吞吐量高分辨率微调阶段的数据效率高,从而提高了 FP-SFT 过程的整体效率。
FP-SFT 使用精心策划的高分辨率逼真图像-文本对数据集。此外,还在训练过程中融合了来自 OpenHermess(Teknium,2023)的纯文本数据和来自 Mini-Gemini(Li 等,2024a)的图像到文本数据,以防止灾难性遗忘。为了提供用户自然指定生成图像所需分辨率的方式,开发了分辨率感知提示(如上面图 2 所示)。对于每张图像及其相应的描述,提示的结构如下:
根据以下提示生成一张 {width}x{height} 的图像:
{description}
全能监督微调(Omni-SFT)
虽然灵活的逼真图像生成是 Lumina-mGPT 的主要目标,但发现经过 FP-SFT 后的模型可以有效地转移到广泛的图像理解和生成任务中。因此,提出了 Omni-SFT,这是一个初步探索,旨在提升 Lumina-mGPT 成为视觉通用模型。Omni-SFT 的训练数据包括以下内容:
-
单回合和多回合语言引导的图像编辑
:来自 MagicBrush和 SEED的数据(仅涉及现实世界和多回合子集)。
-
密集预测任务
:包括来自 NYUv2和 ScanNet的表面法线估计,来自 Kitti v2和 Sintel的深度估计,来自 MSCOCO的姿态估计,使用 OneFormer标注的语义分割数据),以及来自 RefCOCO的基础数据。
-
内部空间条件图像生成数据
:条件包括表面法线、深度、姿态和分割。
-
从 FP-SFT 过程中使用的数据的小部分样本
。
经过 Omni-SFT 后,Lumina-mGPT 展现了完成广泛任务的通用能力,除了文本到图像生成,表明在这一方向上构建多模态通用模型的潜力。
训练设置
尽管 SFT 过程涉及多个任务,但对所有任务使用统一的下一个token 预测损失。由于 Lumina-mGPT 被设计为聊天模型,所有数据都被组织为单回合或多回合对话,损失仅应用于响应部分。所有实验中,使用 AdamW优化器,权重衰减为 0.1,beta 参数为 (0.9, 0.95),学习率设置为
。为了稳定训练,对 7B 和 30B 模型都应用了权重为
的 z-loss,并且对 7B 模型额外应用了 0.05 的 dropout。为了适应大型模型体积,使用了 PyTorch FSDP和梯度检查点。为了提高训练吞吐量,所有数据在训练前都经过了预token 化,并根据token 数量进行了聚类,确保每个全局批次由具有相似长度的数据组成。
Lumina-mGPT 的推理
无分类器引导
无分类器引导(Classifier-Free Guidance, CFG)最初是为了增强文本到图像扩散模型生成样本的质量和文本对齐度。在推理过程中将这一技术引入了自回归模型。当生成图像token 时,CFG 处理后的 logits
被公式化为