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介绍
近年来,多模态大型模型在理解和生成领域都取得了重大进展 [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 (
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:一个简单、统一且灵活的多模态框架
3.1架构
Janus 的架构如图 2 所示。 对于纯文本理解、多模态理解和视觉生成,我们应用独立的编码方法将原始输入转换为特征,然后由一个统一的自回归 Transformer 处理这些特征。 具体来说,对于文本理解,我们使用 LLM 的内置分词器将文本转换为离散 ID 并获得与每个 ID 对应的特征表示。 对于多模态理解,我们使用 SigLIP [92] 编码器从图像中提取高维语义特征。 这些特征从
3.2训练过程
Janus 的训练分为三个阶段,如图 3 所示。 详细信息如下。
阶段 I:训练适配器和图像头部。 此阶段的主要目标是在嵌入空间内建立视觉元素和语言元素之间的概念联系,使 LLM 能够理解图像中显示的实体,并具备初步的视觉生成能力。 在此阶段,我们将视觉编码器和 LLM 保持冻结状态,只允许理解适配器、生成适配器和图像头部中的可训练参数进行更新。
阶段 II:统一预训练。 在此阶段,我们使用多模态语料库进行统一预训练,使 Janus 能够学习多模态理解和生成。 我们解冻 LLM 并利用所有类型的训练数据:纯文本数据、多模态理解数据和视觉生成数据。 受 Pixart [9] 的启发,我们首先使用 ImageNet-
阶段 III:监督微调。 在此阶段,我们使用指令调优数据对预训练模型进行微调,以增强其指令遵循和对话能力。 我们对所有参数进行微调,除了生成编码器。 我们专注于监督答案,同时屏蔽系统和用户提示。 为了确保 Janus 在多模态理解和生成方面的熟练程度,我们不会为特定任务微调单独的模型。 相反,我们使用纯文本对话数据、多模态理解数据和视觉生成数据的混合,确保在各种场景中的通用性。
3.3训练目标
Janus 是一个自回归模型,我们在训练期间简单地采用交叉熵损失:
(1) |
这里,
3.4推理
在推理期间,我们的模型采用下一个符元预测方法。 对于纯文本理解和多模态理解,我们遵循从预测分布中顺序采样符元的标准做法。 对于图像生成,我们利用无分类器引导 (CFG) 2 ,类似于之前的工作 [26, 73, 8]。 具体来说,对于每个符元,logit
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 (
Hyperparameters | Stage 1 | Stage 2 | Stage 3 |
---|---|---|---|
Learning rate | |||
LR scheduler | Cosine | Constant | Constant |
Weight decay | |||
Gradient clip | |||
Optimizer | AdamW ( | ||
Warm-up steps | |||
Training steps | |||
Batch size | |||
Data Ratio |
Type | Model | # LLM Params | POPE | MME-P | MMB | SEED | VQAv2(test) | GQA | MMMU | MM-Vet |
Und. Only | LLaVA-v | - | - | - | ||||||
MobileVLM [14] | - | - | - | - | ||||||
MobileVLM-V2 [15] | - | - | - | - | ||||||
MobileVLM [14] | - | - | - | - | ||||||
MobileVLM-V2 [15] | - | - | - | - | ||||||
LLaVA-Phi [96] | - | - | - | |||||||
LLaVA [51] | - | - | - | |||||||
LLaVA-v | ||||||||||
InstructBLIP [16] | - | - | - | - | ||||||
Qwen-VL-Chat [3] | - | - | - | |||||||
IDEFICS- | - | - | - | - | - | |||||
Emu | - | - | ||||||||
InstructBLIP [16] | - | - | - | - | ||||||
Und. and Gen. | DreamLLM† [21] | - | - | - | - | - | - | |||
LaVIT† [36] | - | - | - | - | - | - | ||||
Emu† [75] | - | - | - | - | - | - | - | |||
NExT-GPT† [84] | - | - | - | - | - | - | - | |||
2-11 | ||||||||||
Show-o [86] | - | - | - | |||||||
Gemini-Nano-1 [78] | - | - | - | - | - | - | ||||
LWM [52] | - | - | - | - | ||||||
VILA-U [85] | - | - | ||||||||
Chameleon [77] | - | - | - | - | - | - | ||||
Janus (Ours) |
4.2数据准备
本节介绍预训练和监督微调数据集的详细信息。
阶段 I. 我们使用一个包含
阶段 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],以及
第三阶段。 为了理解文本,我们使用来自 [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
4.3评估设置
多模式理解。 为了评估多模态理解能力,我们在广泛认可的基于图像的视觉语言基准上评估我们的模型,其中包括 VQAv2 [31]、GQA [35]、POPE [48]、MME [25]、SEED [42]、MMB [54]、MM-Vet [90] 和 MMMU [91]。
视觉生成。 为了评估视觉生成能力,我们使用了 MSCOCO-
Type | Method | # Params | Single Obj. | Two Obj. | Counting | Colors | Position | Color Attri. | Overall |
---|---|---|---|---|---|---|---|---|---|
Gen. Only | LlamaGen [73] | ||||||||
LDM [67] | |||||||||
SDv | |||||||||
PixArt- | |||||||||
SDv | |||||||||
DALL-E | |||||||||
Emu | |||||||||
SDXL [62] | |||||||||
Und. and Gen. | SEED-X† [29] | ||||||||
2-10 | Show-o [86] | ||||||||
LWM [52] | |||||||||
Chameleon [77] | - | - | - | - | - | - | |||
Janus (Ours) |
4.4与最先进技术的比较
多模态理解性能。 我们在表 2 中将提出的方法与最先进的统一模型和仅理解模型进行了比较。 Janus 在同等规模的模型中取得了最佳的整体效果。 具体来说,与之前最好的统一模型 Show-o [86] 相比,我们在 MME 和 GQA 数据集上分别取得了
视觉生成性能。 我们报告了 Janus 在 GenEval、COCO-
Type | Model | # Params | COCO-30K | MJHQ-30K |
Gen. Only | DALL·E [65] | - | ||
GLIDE [59] | - | |||
LDM [67] | - | |||
DALL·E 2 [66] | - | |||
SDv1.5 [67] | - | |||
GigaGAN [37] | - | |||
PixArt- | - | |||
Imagen [68] | - | |||
RAPHAEL [87] | - | |||
Und. and Gen. | Emu† [75] | - | ||
NExT-GPT† [84] | - | |||
SEED-X† [29] | - | |||
2-5 | Show-o [86] | |||
LWM [52] | ||||
VILA-U ( | - | |||
VILA-U ( | - | |||
Janus (Ours) |
Exp ID | Visual Encoder | Training Task | POPE | MMB | SEED | MMMU | COCO-FID |
A | VQ Tokenizer | Und. + Gen. | |||||
B | SE. Tokenizer | Und. + Gen. | |||||
C | SE. Tokenizer | Und. | - | ||||
D | SigLIP + VQ (Ours) | Und. + Gen. | |||||
E | SigLIP | Und. | - | ||||
F | VQ Tokenizer | Gen. | - | - | - | - |
4.5消融研究
我们精心设计了消融研究,以验证 Janus 设计理念的有效性。 首先,我们设计了实验来验证解耦视觉编码的重要性及其带来的益处。 其次,我们研究了统一训练对多模态理解或视觉生成等各个任务的影响。 结果列在表 5 中。
基线构建。 遵循之前的工作 [77],我们选择 VQ 分词器 [73] 来为多模态理解和生成任务编码图像,作为基线 (Exp-A)。 考虑到 Exp-A 中的 VQ 分词器在提取语义信息方面可能较弱,使其在多模态理解方面效率较低,我们还构建了一个更强的基线 Exp-B。 我们采用 SigLIP 来提炼一个增强的语义分词器 3 它可以从图像中提取高级语义信息,同时还具有将图像转换为离散 ID 的能力,这与 [85] 中的类似。 语义分词器的详细信息可以在附录 A.1 中找到。
解耦视觉编码的影响。 (1) 从 Exp-A 的结果中,我们发现该模型在视觉生成基准测试 (
统一模型与 纯理解和纯生成。 我们比较了统一训练(Exp-D)与纯理解(Exp-E)和纯生成(Exp-F)训练的性能。 对于纯理解,我们省略视觉生成数据。 对于纯生成,我们排除了理解数据。 请注意,统一训练和纯理解训练在理解部分经过相同的步骤。 同样,统一训练和纯生成训练在视觉生成部分经过相同的步骤。 实验结果表明,统一训练的性能与仅针对理解或仅针对视觉生成进行训练的性能相当。 这表明我们的模型 Janus 能够在最大限度地不影响多模态理解性能的情况下,融入强大的生成能力。
4.6定性结果
视觉生成的可视化。 图 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语义标记器的架构
我们基于 [73] 中提出的分词器架构构建语义分词器,其降采样率为
A.2训练
训练过程。 语义分词器以两阶段方式从头开始训练。 在第一阶段,我们在 ImageNet-
训练损失。 语义词元化的训练损失包括两个部分。 一方面,我们使用 [73] 中描述的 RGB 重建损失。 另一方面,我们使用 SigLIP-Large-Patch
A.3与 LLM 整合
我们在图 6 (b) 中展示了语义词元化器和 LLM 的整合。 图像首先通过 CNN 编码器、向量量化和语义解码器转换为连续特征。 然后,LLM 处理这些特征并生成图像 ID 的预测。 最后,像素解码器将这些离散 ID 转换为 RGB 值。
附录 B其他定性结果
文本到图像生成的更多可视化。 我们在图7中展示了更多文本到图像生成的結果。 很明显,Janus 能够生成高质量的图像,这些图像与给定的提示紧密相符。 我们进一步探索了模型的多语言文本到图像能力,如图8所示。 我们惊喜地发现,尽管我们的训练数据仅包含英语文本到图像数据,但 Janus 仍然可以处理其他语言的文本到图像任务。 我们将这种多语言能力归因于原始大型语言模型的固有特性。 LLM 最初将各种语言翻译成统一的语义空间,使 Janus 能够在没有额外训练的情况下自然地执行文本到图像任务。
更多多模态理解结果。 图9中展示了多模态理解的其他结果。 Janus 在处理来自各种语境的输入时展现出令人印象深刻的理解能力,展示了其强大的功能。