Janus: 解耦视觉编码以实现统一的多模态理解与生成

教育   2024-10-27 09:54   福建  

 Janus: 解耦视觉编码以实现统一的多模态理解与生成

Chengyue Wu1,2  Xiaokang Chen1,∗,†  Zhiyu Wu1,3  Yiyang Ma1,3  Xingchao Liu1  Zizheng Pan1  Wen Liu1  Zhenda Xie1  Xingkai Yu1  Chong Ruan1  Ping Luo2,∗
1DeepSeek-AI  2The University of Hong Kong  3Peking University
: Project lead  : Corresponding authors
Project Page: https://github.com/deepseek-ai/Janus

摘要

本文介绍了 Janus,一个将多模态理解和生成统一起来的自动回归框架。 以前的研究通常依赖于单个视觉编码器来完成这两个任务,例如 Chameleon。 然而,由于多模态理解和生成所需的 信息粒度 不同,这种方法会导致性能下降,尤其是在多模态理解方面。 为了解决这个问题,我们将视觉编码解耦成独立的路径,同时仍然利用单个统一的 Transformer 架构进行处理。 解耦不仅缓解了视觉编码器在理解和生成中的角色冲突,而且还增强了框架的灵活度。 例如,多模态理解和生成组件都可以独立选择最适合的编码方法。 实验表明,Janus 超越了以前统一的模型,并且与任务特定的模型的性能相匹配或超越。 Janus 的简单性、高灵活性和有效性使其成为下一代统一多模态模型的有力候选者。

UTF8gbsn

1介绍


(一) 基准性能。


(b) 视觉生成结果。


图 1: 来自我们 Janus 的多模态理解和视觉生成结果 . Janus 在性能上超越了先前最先进的统一多模态模型以及一些特定于任务的多模态理解模型,同时还展现出强大的视觉生成能力。 图片分辨率为 384×384。 最好在屏幕上查看。

近年来,多模态大型模型在理解和生成领域都取得了重大进展 [51, 20]。 在多模态理解领域,研究人员遵循 LLaVA 的设计 [51],使用视觉编码器作为桥梁,使大型语言模型 (LLM) 能够理解图像。 在视觉生成领域,基于扩散的方法 [20, 9, 67, 20] 取得了显著成功。 最近,一些工作探索了用于视觉生成的自回归方法 [73, 79],其性能与扩散模型相当。 为了构建更强大、更通用的多模态模型,研究人员试图将多模态理解和生成任务相结合 [75, 77, 94]。 例如,一些研究尝试将多模态理解模型与预训练的扩散模型连接起来 [75, 28, 27]。 例如,Emu [75] 使用 LLM 的输出作为预训练扩散模型的条件,然后依靠扩散模型生成图像。 但是,严格来说,这种方法不能被视为真正的统一模型,因为视觉生成功能由外部扩散模型处理,而多模态 LLM 本身缺乏直接生成图像的能力。

其他方法 [77, 85, 86, 94] 采用单个 Transformer 来统一多模态理解和生成任务,这提高了视觉生成的指令遵循能力,释放了潜在的涌现能力,并减少了模型冗余。 这些方法通常使用单个视觉编码器来处理两个任务的输入。 但是,多模态理解和生成任务所需的表示差异很大。 在多模态理解任务中,视觉编码器的目的是提取高级语义信息(例如,图像中的物体类别或视觉属性)。 理解任务的输出不仅涉及从图像中提取信息,还涉及复杂的语义推理。 因此,视觉编码器表示的粒度倾向于主要关注高维语义表示。 相比之下,在视觉生成任务中,主要关注的是生成局部细节并保持图像的全局一致性。 在这种情况下,表示需要低维编码,该编码能够进行细粒度的空间结构和纹理细节表达。 将这两个任务的表示统一在同一个空间中会导致冲突和权衡。 因此,现有的用于多模态理解和生成的多模态统一模型通常会在多模态理解性能上做出妥协,明显低于最先进的多模态理解模型。 我们在消融研究中进一步探讨了这个问题。

为了解决这个问题,我们提出 亚努斯 1 ,一个将多模态理解和生成视觉编码解耦的多模态统一框架。 具体来说,我们引入了两个独立的视觉编码路径:一个用于多模态理解,另一个用于多模态生成,它们由同一个 Transformer 架构统一。 所提出的方法提供了两个主要好处:(1)亚努斯缓解了多模态理解和生成对不同粒度需求产生的冲突,并消除了在选择视觉编码器时在两个任务之间进行权衡的必要性。 (2) Janus 灵活且可扩展。 解耦后,理解和生成任务都可以采用特定于其领域的最新编码技术。 此外,Janus 未来可以容纳其他类型的输入,例如点云、脑电信号或音频数据,其中独立编码器可以提取特征,然后使用统一的 Transformer 来处理它们。

据我们所知,我们是第一个强调在统一的多模态理解和生成框架内解耦视觉编码的重要性。 我们的实验结果表明,Janus 在多模态理解和生成基准测试中,其参数规模与现有统一模型相当,但性能优于现有统一模型,取得了最先进的结果。 值得注意的是,Janus 的性能甚至超过了一些参数规模大得多的任务特定模型(图 1)。 具体来说,在多模态理解基准测试 MMBench [54]、SEED-Bench [42] 和 POPE [48] 上,Janus (1.3B) 分别取得了 69.463.7 和 87.0 的得分,优于 LLaVA-v1.5 (7B) [50] 和 Qwen-VL-Chat (7B) [3]。 在视觉生成基准测试 MSCOCO-30[11] 和 GenEval [30] 上,Janus 的 FID 得分为 8.53,准确率为 61%,超过了 DALL-E 2 [66] 和 SDXL [62] 等文本到图像生成模型。 我们认为,Janus 强大的性能,加上其高度灵活性和可扩展性,使其成为下一代统一多模态模型的有力候选者。

2相关工作

2.1视觉生成

视觉生成是一个快速发展的领域,它将自然语言处理的概念与 Transformer 架构的进步相结合。 受语言处理成功的影响,自回归模型利用 Transformer 来预测离散视觉符元(代码本 ID)的序列 [24, 65, 75]。 这些模型对视觉数据进行标记,并采用类似于 GPT 风格 [64] 技术的预测方法。 此外,掩码预测模型 [7, 8] 借鉴了 BERT 风格 [19] 的掩码方法,预测视觉输入的掩码部分以提高合成效率,并且已适用于视频生成 [89]。 与此同时,连续扩散模型在视觉生成方面展现出令人印象深刻的能力 [33, 71, 67],通过概率透镜方法进行生成,补充了离散方法。

2.2多模态理解

多模态大型语言模型 (MLLMs) 整合了文本和图像 [6, 80, 81]。 通过利用预训练的 LLMs,MLLMs [55, 51, 95, 82, 12, 2, 1] 展示了强大的理解和处理多模态信息的能力。 最近的进展已经探索了将 MLLMs 与预训练的扩散模型扩展,以促进图像生成 [27, 36, 75, 76, 29]。 这些方法属于工具利用的范畴,其中扩散模型用于根据 MLLM 输出的条件生成图像,而 MLLM 本身没有直接执行视觉生成的能力。 此外,整个系统的生成能力通常受到外部扩散模型的限制,使其性能低于直接使用扩散模型本身 [27, 75]

2.3统一的多模态理解和生成

统一的多模态理解和生成模型被认为是促进不同模态之间无缝推理和生成的强大工具 [77, 94]。 这些模型中的传统方法通常使用单个视觉表示来执行理解和生成任务,无论它们是基于自回归 (AR) 模型 [77, 85] 还是扩散模型 [86, 94]。 例如,Chameleon [77] 采用 VQ Tokenizer 对图像进行编码,用于多模态理解和生成。 但是,这种做法可能会导致次优结果,因为视觉编码器可能面临理解和生成需求之间的权衡。 相反,我们的 Janus 可以明确地将视觉表示解耦为理解和生成,认识到不同的任务可能需要不同程度的信息。

3Janus:一个简单、统一且灵活的多模态框架



图 2: 我们 Janus 的架构。 与以前的方法不同 [77, 85],这些方法通常假设视觉理解和生成需要相同的视觉编码器,我们的 Janus 将视觉编码解耦为视觉理解和视觉生成。 “和。 Encoder” 和 “Gen. Encoder” 分别是 “Understanding Encoder” 和 “Generation Encoder” 的缩写。 最佳观看方式为彩色。

3.1架构

Janus 的架构如图 2 所示。 对于纯文本理解、多模态理解和视觉生成,我们应用独立的编码方法将原始输入转换为特征,然后由一个统一的自回归 Transformer 处理这些特征。 具体来说,对于文本理解,我们使用 LLM 的内置分词器将文本转换为离散 ID 并获得与每个 ID 对应的特征表示。 对于多模态理解,我们使用 SigLIP [92] 编码器从图像中提取高维语义特征。 这些特征从 2-D 网格展平为 1-D 序列,并使用理解适配器将这些图像特征映射到 LLM 的输入空间。 对于视觉生成任务,我们使用来自 [73] 的 VQ 分词器将图像转换为离散 ID。 在 ID 序列被展平为 1-D 之后,我们使用生成适配器将与每个 ID 对应的码本嵌入映射到 LLM 的输入空间。 然后,我们将这些特征序列连接起来形成一个多模态特征序列,该序列随后被馈送到 LLM 中进行处理。 LLM 的内置预测头用于在纯文本理解和多模态理解任务中进行文本预测,而随机初始化的预测头用于在视觉生成任务中进行图像预测。 整个模型遵循自回归框架,无需专门设计的注意力掩码。

3.2训练过程

Janus 的训练分为三个阶段,如图 3 所示。 详细信息如下。

阶段 I:训练适配器和图像头部。 此阶段的主要目标是在嵌入空间内建立视觉元素和语言元素之间的概念联系,使 LLM 能够理解图像中显示的实体,并具备初步的视觉生成能力。 在此阶段,我们将视觉编码器和 LLM 保持冻结状态,只允许理解适配器、生成适配器和图像头部中的可训练参数进行更新。

图 3: 我们的 Janus 采用三阶段训练程序。 我们在图中使用火焰符号/雪花符号来表示模块更新/不更新其参数。

阶段 II:统一预训练。 在此阶段,我们使用多模态语料库进行统一预训练,使 Janus 能够学习多模态理解和生成。 我们解冻 LLM 并利用所有类型的训练数据:纯文本数据、多模态理解数据和视觉生成数据。 受 Pixart [9] 的启发,我们首先使用 ImageNet-1k 进行简单的视觉生成训练,帮助模型掌握基本的像素依赖关系。 随后,我们使用通用文本到图像数据来增强模型的开放域视觉生成能力。

阶段 III:监督微调。 在此阶段,我们使用指令调优数据对预训练模型进行微调,以增强其指令遵循和对话能力。 我们对所有参数进行微调,除了生成编码器。 我们专注于监督答案,同时屏蔽系统和用户提示。 为了确保 Janus 在多模态理解和生成方面的熟练程度,我们不会为特定任务微调单独的模型。 相反,我们使用纯文本对话数据、多模态理解数据和视觉生成数据的混合,确保在各种场景中的通用性。

3.3训练目标

Janus 是一个自回归模型,我们在训练期间简单地采用交叉熵损失:


=i=1logPθ(xi|x<i)
(1)

这里,P() 表示由 Janus 的权重 θ 建模的条件概率。 对于纯文本理解和多模态理解任务,我们在文本序列上计算损失。 对于视觉生成任务,我们只在图像序列上计算损失。 为了保持设计的简单性,我们没有对不同的任务分配不同的损失权重。

3.4推理

在推理期间,我们的模型采用下一个符元预测方法。 对于纯文本理解和多模态理解,我们遵循从预测分布中顺序采样符元的标准做法。 对于图像生成,我们利用无分类器引导 (CFG)  2 ,类似于之前的工作 [26, 73, 8]。 具体来说,对于每个符元,logit lg 计算为: lg=lu+s(lclu),其中 lc 是条件 logit,lu 是无条件 logit,s 是无分类器引导的尺度。 下面的评估中,s 的默认数量为 5 。

3.5可能的扩展

值得注意的是,我们的设计采用独立的编码器进行理解和生成,这种设计简单易扩展。

多模态理解。 (1) 对于多模态理解组件,可以选择更强大的视觉编码器,而无需担心编码器是否能够处理视觉生成任务,例如 EVA-CLIP [74]、InternViT [13] 等。(2) 为了处理高分辨率图像,可以使用动态高分辨率技术 [50] 。 这 允许模型扩展到任何分辨率,而无需对 ViT 进行位置嵌入插值。 可以进一步压缩符元以节省计算成本,例如使用像素混洗操作 [12] 。

视觉生成。 (1) 为了进行视觉生成,可以选择更细粒度的编码器,以便在编码后保留更多图像细节,例如 MoVQGan [93] 。 (2) 可以使用专门为视觉生成设计的损失函数,例如扩散损失 [46] 。 (3) 在视觉生成过程中,可以使用 AR(因果注意力)和并行(双向注意力)方法的组合来减少视觉生成过程中的累积误差 [79] 。

对其他模态的支持。 Janus 的简单架构允许轻松集成额外的编码器,以适应各种模态,例如 3D 点云 [53]、触觉 [88] 和脑电图 [4] 。 这使得 Janus 有可能成为一个更强大的多模态通用模型。

4实验

在本节中,我们介绍了一系列综合实验,旨在评估我们的方法在各种视觉理解和生成任务中的性能。 我们首先详细介绍我们的实验设置,包括模型架构、训练数据集和评估基准。 接下来,我们报告 Janus 的性能,然后将其与其他最先进的模型在多模态理解和生成方面的各种基准上进行比较。 我们还进行了广泛的消融研究,以验证所提出方法的有效性。 最后,我们提供一些定性结果。

4.1实施细节

在我们的实验中,我们使用 DeepSeek-LLM (1.3B) [5],其最大支持序列长度为 4096,作为基础语言模型。 对于理解任务中使用的视觉编码器,我们选择 SigLIP-Large-Patch16-384 [92]。 生成编码器具有大小为 16,384 的码本,并将图像下采样 16 倍。 理解适配器和生成适配器都是两层 MLP。 每个阶段的详细超参数在表 1 中给出。 所有图像都被调整为 384×384 像素。 对于多模态理解数据,我们调整图像的长边大小,并使用背景颜色(RGB:127127127)填充短边,使其达到 384。 对于视觉生成数据,短边被调整为 384,长边被裁剪为 384。 我们在训练期间使用序列打包来提高训练效率。 我们根据单一训练步骤中指定的比率混合所有数据类型。 我们的 Janus 是使用 HAI-LLM [32] 进行训练和评估的,HAI-LLM 是一个构建在 PyTorch 之上的轻量级且高效的分布式训练框架。 整个训练过程在一个包含 16 个节点的集群上进行,每个节点配备有 8 个 Nvidia A100 (40GB) GPU,共计花费了 7 天。

表 1: Janus 模型的详细超参数。 数据比例是指多模态理解数据、纯文本数据和视觉生成数据的比例。
HyperparametersStage 1Stage 2Stage 3
Learning rate1.0×1031×1042.0×105
LR schedulerCosineConstantConstant
Weight decay0.00.00.1
Gradient clip1.01.01.0
OptimizerAdamW (β1=0.9,β2=0.95)
Warm-up steps3005,0000
Training steps10,000180,00024,000
Batch size256512256
Data Ratio1:0:12:3:57:3:10
表 2: 与最先进的多模态理解基准测试结果的比较。 “Und.” 和 “Gen.” 分别表示 “理解” 和 “生成”。 使用外部预训练扩散模型的模型标记为 
TypeModel# LLM ParamsPOPEMME-PMMBSEEDVQAv2(test)GQAMMMUMM-Vet
Und. OnlyLLaVA-v1.5-Phi-1.5 [86]1.3B84.11128.0--75.356.530.7-

MobileVLM [14]1.4B84.51196.253.2--56.1--

MobileVLM-V2 [15]1.4B84.31302.857.7--59.3--

MobileVLM [14]2.7B84.91288.959.6--59.0--

MobileVLM-V2 [15]2.7B84.71440.563.2--61.1--

LLaVA-Phi [96]2.7B85.01335.159.8-71.4--28.9

LLaVA [51]7B76.3809.638.733.5---25.5

LLaVA-v1.5 [50]7B85.91510.764.358.678.562.035.431.1

InstructBLIP [16]7B--36.053.4-49.2-26.2

Qwen-VL-Chat [3]7B-1487.560.658.278.257.5--

IDEFICS-9[41]8B--48.2-50.938.4--

Emu3-Chat [83]8B85.2-58.568.275.160.331.6-

InstructBLIP [16]13B78.91212.8---49.5-25.6
Und. and Gen.DreamLLM [21]7B----72.9--36.6

LaVIT [36]7B----66.046.8--

Emu [75]13B----52.0---

NExT-GPT [84]13B----66.7---
2-11 










Show-o [86]1.3B73.8948.4--59.348.725.1-

Gemini-Nano-1 [78]1.8B----62.7-26.3-

LWM [52]7B75.2---55.844.8-9.6

VILA-U [85]7B85.81401.8-59.079.460.8-33.5

Chameleon [77]7B------22.48.3

Janus (Ours)1.3B87.01338.069.463.777.359.130.534.3

4.2数据准备

本节介绍预训练和监督微调数据集的详细信息。

阶段 I. 我们使用一个包含 1.25 百万个图像-文本配对标题的数据集,这些标题来自 ShareGPT4[10],用于多模态理解,以及大约 1.2 百万个来自 ImageNet-1[18] 的样本,用于视觉生成。 ShareGPT4V 数据的格式为 “<image><text>”。 ImageNet 数据使用类别名称组织成文本到图像的数据格式:“<category_name><image>”。 这里的 “<>” 符号代表占位符。

阶段 II. 我们将数据组织到以下类别。 (1) 纯文本数据。 我们使用来自 DeepSeek-LLM [5] 的预训练文本语料库。 (2) 交错的图像文本数据。 我们使用 WikiHow [39] 和 WIT [72] 数据集。 (3) 图像标题数据。 我们使用来自 [18, 38, 17, 40, 23, 47, 49, 45, 70] 的图像。 在这些图像中,我们使用开源的多模态模型重新为 [17, 40] 中的图像添加标题。 图像标题数据被格式化为问答对,例如,“<image> 详细描述图像。 <caption>”。 (4) 表格和图表数据。 我们使用来自 DeepSeek-VL [55] 的相应表格和图表数据。 数据的格式为“<question><answer>”。 (5) 视觉生成数据。 我们利用来自各种数据集的图像标题对,包括 [38, 17, 40, 70, 57, 58, 63, 60],以及 2M 个内部数据。 For images from [38, 70], we filter based on aesthetic scores and image sizes, resulting in 20% remaining. During training, we randomly use only the first sentence of a caption with a 25% probability to encourage the model to develop strong generation capabilities for short descriptions. ImageNet samples [18] are presented only during the first 120K training steps, while images from other datasets appear in the later 60K steps. 正如 [9] 所建议的,这种方法有助于模型首先学习基本的像素依赖性,然后再进行更复杂的场景理解。 The visual generation data is provided in the format: “<caption><image>”.

第三阶段。 为了理解文本,我们使用来自 [43] 的数据。 为了多模态理解,我们使用来自[43,31,35,69,34,56]的指令调整数据。 For visual generation, we use image-text pairs from [17, 70, 60] (a subset of that in stage II) and 4M in-house data. 我们使用以下格式进行指令调整:“用户:<输入消息> \n助理: <响应>”。 对于多轮对话,我们重复这种格式来构建数据。

4.3评估设置

多模式理解。 为了评估多模态理解能力,我们在广泛认可的基于图像的视觉语言基准上评估我们的模型,其中包括 VQAv2 [31]、GQA [35]、POPE [48]、MME [25]、SEED [42]、MMB [54]、MM-Vet [90] 和 MMMU [91]

视觉生成。 为了评估视觉生成能力,我们使用了 MSCOCO-30[11]、MJHQ-30[44] 和 GenEval [30] 基准。 MSCOCO-30K 和 MJHQ-30K 使用 Fréchet Inception Distance (FID) 度量来比较生成的图像与 30K 高质量图像,这表明了图像生成的整体效率。 GenEval 是一个具有挑战性的图像到文本生成的基准,旨在通过对视觉生成模型的组合能力进行详细的实例级分析,来反映其全面的生成能力。

表 3: 对 GenEval 基准上文本到图像生成能力的评估。 “Und.” 和 “Gen.” 分别表示“理解”和“生成”。 使用外部预训练扩散模型的模型用  表示。
TypeMethod# ParamsSingle Obj.Two Obj.CountingColorsPositionColor Attri.Overall
Gen. OnlyLlamaGen [73]0.8B0.710.340.210.580.070.040.32
LDM [67] 1.4B0.920.290.230.700.020.050.37
SDv1.5 [67] 0.9B0.970.380.350.760.040.060.43
PixArt-α [9] 0.6B0.980.500.440.800.080.070.48
SDv2.1 [67] 0.9B0.980.510.440.850.070.170.50
DALL-E 2 [66] 6.5B0.940.660.490.770.100.190.52
Emu3-Gen  [83] 8B0.980.710.340.810.170.210.54
SDXL [62] 2.6B0.980.740.390.850.150.230.55
Und. and Gen.SEED-X [29]17B0.970.580.260.800.190.140.49
2-10 Show-o [86]1.3B0.950.520.490.820.110.280.53

LWM [52]7B0.930.410.460.790.090.150.47

Chameleon [77]34B------0.39

Janus (Ours)1.3B0.970.680.300.840.460.420.61

4.4与最先进技术的比较

多模态理解性能。 我们在表 2 中将提出的方法与最先进的统一模型和仅理解模型进行了比较。 Janus 在同等规模的模型中取得了最佳的整体效果。 具体来说,与之前最好的统一模型 Show-o [86] 相比,我们在 MME 和 GQA 数据集上分别取得了 41% (9491338) 和 30% (48.759.1) 的性能提升。 这可以归因于 Janus 解耦了用于多模态理解和生成的视觉编码,从而减轻了这两个任务之间的冲突。 与规模明显更大的模型相比,Janus 仍然具有很强的竞争力。 例如,Janus 在多个数据集上优于 LLaVA-v1.5 (7B),包括 POPE、MMbench、SEED Bench 和 MM-Vet。

视觉生成性能。 我们报告了 Janus 在 GenEval、COCO-30K 和 MJHQ-30K 基准上的视觉生成性能。 如表 3 所示,我们的 Janus 在 GenEval 上获得了 61% 的整体准确率,这超过了之前的最佳统一模型 Show-o (53%) 和一些流行的仅生成方法,例如 SDXL (55%) 和 DALL-E 2 (52%)。 这表明我们的方法具有更好的指令遵循能力。 如表 4 所示,Janus 在 COCO-30K 和 MJHQ-30K 基准上分别实现了 8.53 和 10.10 的 FID,超过了统一模型 Show-o 和 LWM,并展示了与一些知名仅生成方法相比的竞争性能。 这表明 Janus 生成的图像质量良好,并突出了其在视觉生成方面的潜力。

表 4: 在 MSCOCO-30K 和 MJHQ-30K 基准上评估文本到图像生成能力。 “Und.” 和 “Gen.” 分别表示 “理解” 和 “生成”。 使用外部预训练扩散模型的模型用  标记。
TypeModel# ParamsCOCO-30KMJHQ-30K
Gen. OnlyDALL·E [65]12B27.50-
GLIDE [59] 5B12.24-
LDM [67] 1.4B12.64-
DALL·E 2 [66] 6.5B10.39-
SDv1.5 [67] 0.9B9.62-
GigaGAN [37] 0.9B9.09-
PixArt-α [9] 0.6B7.32-
Imagen [68] 34B7.27-
RAPHAEL [87] 3B6.61-
Und. and Gen.Emu [75]13B11.66-
NExT-GPT  [84] 13B11.28-
SEED-X [29] 17B14.99-
2-5 Show-o [86]1.3B9.2415.18

LWM [52]7B12.6817.77

VILA-U (256[85]7B-12.81

VILA-U (384[85]7B-7.69

Janus (Ours)1.3B8.5310.10
表 5: 消融研究。 我们验证了解耦视觉编码的有效性,并将统一训练与特定任务训练进行了比较。 “Und.”、 “Gen.” 和 “SE. Tokenizer” 分别表示 “理解”、 “生成” 和 “语义标记器”。
Exp IDVisual EncoderTraining TaskPOPEMMBSEEDMMMUCOCO-FID
AVQ TokenizerUnd. + Gen.60.135.034.924.78.72
BSE. TokenizerUnd. + Gen.82.452.754.926.67.11
CSE. TokenizerUnd.83.962.160.827.5-
DSigLIP + VQ (Ours)Und. + Gen.87.069.463.730.58.53
ESigLIPUnd.85.970.664.828.8-
FVQ TokenizerGen.----8.92

4.5消融研究

我们精心设计了消融研究,以验证 Janus 设计理念的有效性。 首先,我们设计了实验来验证解耦视觉编码的重要性及其带来的益处。 其次,我们研究了统一训练对多模态理解或视觉生成等各个任务的影响。 结果列在表 5 中。

基线构建。 遵循之前的工作 [77],我们选择 VQ 分词器 [73] 来为多模态理解和生成任务编码图像,作为基线 (Exp-A)。 考虑到 Exp-A 中的 VQ 分词器在提取语义信息方面可能较弱,使其在多模态理解方面效率较低,我们还构建了一个更强的基线 Exp-B。 我们采用 SigLIP 来提炼一个增强的语义分词器  3 它可以从图像中提取高级语义信息,同时还具有将图像转换为离散 ID 的能力,这与 [85] 中的类似。 语义分词器的详细信息可以在附录 A.1 中找到。

解耦视觉编码的影响。 (1) 从 Exp-A 的结果中,我们发现该模型在视觉生成基准测试 (8.72 COCO 上的 FID) 中取得了令人满意的性能。 然而,在理解基准测试方面,Exp-A 和我们的模型 (Exp-D) 之间存在显著差距。 (2) 当将 Exp-B 与 Exp-A 进行比较时,结果表明多模态理解方面有明显改善,尽管与我们的方法相比仍存在相当大的差距。 在视觉生成方面,Exp-B 的表现优于 Exp-D。我们推测了两种可能的原因。 首先,语义分词器生成离散的 ID,这些 ID 在语义上更连贯,为 LLM 提供了更合理的预测目标。 其次,Exp-B 中的视觉编码器参数明显多于 Exp-D 中的 Gen. 编码器。(3) 为了研究使用单个视觉编码器是否会导致多模态理解和生成之间的权衡,我们进一步设计了基于 Exp-B 的 Exp-C,它完全专注于多模态理解训练。 Exp-C 的多模态理解能力明显优于 Exp-B。 这表明 Exp-B 中的视觉编码器在多模态理解和生成之间进行了权衡,最终牺牲了其多模态理解能力。 上述实验说明了解耦视觉编码的重要性。

统一模型与 纯理解和纯生成。 我们比较了统一训练(Exp-D)与纯理解(Exp-E)和纯生成(Exp-F)训练的性能。 对于纯理解,我们省略视觉生成数据。 对于纯生成,我们排除了理解数据。 请注意,统一训练和纯理解训练在理解部分经过相同的步骤。 同样,统一训练和纯生成训练在视觉生成部分经过相同的步骤。 实验结果表明,统一训练的性能与仅针对理解或仅针对视觉生成进行训练的性能相当。 这表明我们的模型 Janus 能够在最大限度地不影响多模态理解性能的情况下,融入强大的生成能力。

图 4: 用 LlamaGen 和 SDXL 进行视觉生成定性比较. Janus 生成的图像与用户的提示更加一致。 SDXL、LlamaGen 和我们的模型的图像分辨率分别为 1024×1024512×512 和 384×384。 最好在屏幕上查看。

4.6定性结果

图 5: 对幽默表情包的多模态理解定性结果. 我们将响应与 Chameleon-7[77] 和 Show-o [86] 进行比较。 我们强调响应中的关键点。 最好在屏幕上查看。

视觉生成的可视化。 图 4 提供了我们模型与基于扩散的模型(如 SDXL [62])和自回归模型 LlamaGen [73] 之间的定性比较。 结果表明,我们的模型在视觉生成方面展现出更强的指令遵循能力,准确地捕捉到用户提示中的大部分细节。 这表明统一模型在视觉生成领域的潜力。 更多可视化内容可以在附录 B 中找到。

表情包图像的多模态理解。 图 5 展示了 Janus 的多模态理解能力的定性结果,与 Chameleon [77] 和 Show-o [86] 相比。 Janus 准确地解释了文本标题并捕捉到了表情包中传达的情绪。 相反,Chameleon 和 Show-o 都难以准确识别图像中的文本。 此外,Chameleon 无法识别表情包中的物体,而 Show-o 错误地解释了狗的颜色。 这些例子突出了解耦视觉编码器与 Chameleon 和 Show-o 使用的共享编码器相比,显着增强了 Janus 的细粒度多模态理解能力。 更多多模态理解示例可以在附录 B 中找到。

5结论

在本文中,我们介绍了 Janus,一个简单、统一且可扩展的多模态理解和生成模型。 Janus 的核心思想是解耦视觉编码,用于多模态理解和生成,这可以缓解理解和生成对视觉编码器提出的不同需求而产生的冲突。 大量的实验已经证明了 Janus 的有效性和领先性能。 值得注意的是,Janus 灵活且易于扩展。 除了在多模态理解和生成方面具有巨大的改进潜力外,Janus 还易于扩展,以整合更多输入模态。 以上优势表明,Janus 可能成为下一代多模态通用模型开发的灵感来源。

附录

附录 A消融研究中提到的语义标记器的详细信息

A.1语义标记器的架构

图 6: 语义分词器的架构和用法。 (a) 语义分词器训练期间使用的架构。 我们使用预训练的 SigLIP [92] 来监督语义信息的重建,同时使用原始图像来监督 RGB 值的重建。 (b) 将 LLM 与语义解码器集成。 语义解码器输出具有高级语义的连续特征,这些特征通过一个适配器传递,然后用作 LLM 的输入。 请注意,语义分词器仅在消融研究中使用,不在主要实验中使用。

我们基于 [73] 中提出的分词器架构构建语义分词器,其降采样率为 16。 除了原始的 CNN 像素解码器之外,我们在矢量量化之后添加了一个额外的语义解码器分支,如图 6 (a) 所示。 语义解码器是一个 12-层 ViT [22],具有 12 个注意力头,隐藏维度为 768。 对于语义解码器,我们使用因果注意力掩码来促进与 LLM 集成时的下一个符元预测。

A.2训练

训练过程。 语义分词器以两阶段方式从头开始训练。 在第一阶段,我们在 ImageNet-1[18] 数据集上训练模型 40 个时期。 在第二阶段,我们在 50 百万张图像上对模型微调 1 个时期。 这些图像来自 Janus 预训练过程中使用的视觉生成数据。 我们使用 1e4 的恒定学习率和 128 的批次大小。

训练损失。 语义词元化的训练损失包括两个部分。 一方面,我们使用 [73] 中描述的 RGB 重建损失。 另一方面,我们使用 SigLIP-Large-Patch16-384 作为教师来监督语义解码器对语义特征重建结果的监督。 我们采用了 BEiT-v2 [61] 中的损失。 具体来说,我们最大化语义解码器预测的语义特征与 SigLIP 输出之间的余弦相似度。 语义重建损失的权重设置为 0.25

A.3与 LLM 整合

我们在图 6 (b) 中展示了语义词元化器和 LLM 的整合。 图像首先通过 CNN 编码器、向量量化和语义解码器转换为连续特征。 然后,LLM 处理这些特征并生成图像 ID 的预测。 最后,像素解码器将这些离散 ID 转换为 RGB 值。

附录 B其他定性结果

文本到图像生成的更多可视化。 我们在图7中展示了更多文本到图像生成的結果。 很明显,Janus 能够生成高质量的图像,这些图像与给定的提示紧密相符。 我们进一步探索了模型的多语言文本到图像能力,如图8所示。 我们惊喜地发现,尽管我们的训练数据仅包含英语文本到图像数据,但 Janus 仍然可以处理其他语言的文本到图像任务。 我们将这种多语言能力归因于原始大型语言模型的固有特性。 LLM 最初将各种语言翻译成统一的语义空间,使 Janus 能够在没有额外训练的情况下自然地执行文本到图像任务。

更多多模态理解结果。 9中展示了多模态理解的其他结果。 Janus 在处理来自各种语境的输入时展现出令人印象深刻的理解能力,展示了其强大的功能。

图 7: 更多文本到图像生成结果。 我们将图像上采样到1024×1024以更好地可视化。


图 8: 与 LlamaGen [73] 相比的多语言文本到图像生成样本。 请注意,我们在训练中只使用英语文本到图像数据,这是我们模型的涌现能力。 提示中使用的语言,从左到右分别是:英语、中文、法语、日语和带表情符号的英语。


图 9: 更多多模态理解结果。 Janus 具有强大的多模态理解能力,可以处理来自不同上下文的输入,例如科学图表、艺术品图像、LaTeX 公式图像等等。



FightingCV
一个专注于解析计算机视觉、多模态方向前沿论文,解答科研问题,分享科研时事的公众号!
 最新文章