DeepSeek多模态能力起底!一探究竟Janus 系列模型:解耦统一多模态理解和生成模型的视觉编码

↑ 点击蓝字 关注极市平台
作者丨科技猛兽
编辑丨极市平台

极市导读

DeepSeek 团队生成理解统一架构代表作 Janus 以及后续扩大版本 Janus-Pro。>>加入极市CV技术交流群,走在计算机视觉的最前沿

太长不看版

DeepSeek 团队生成理解统一架构代表作 Janus 以及后续扩大版本 Janus-Pro。

本文介绍 DeepSeek 团队的 Janus 系列模型 (Janus 和 Janus-Pro)。Janus 系列是 DeepSeek 多模态团队的作品,是一种既能做图像理解,又可以做图像生成任务的 Transformer 模型。这类模型存在的问题之一是:由于多模态理解和生成所需的信息粒度不同,这种方法可能会导致次优的性能。

为了解决这个问题,Janus 仍利用单个统一的 Transformer,但是将视觉编码解耦为单独的路径。这种解耦不仅缓解了视觉编码器在理解和生成中的作用之间的冲突,而且增强了框架的灵活性。比如多模态理解和生成组件都可以独立选择最合适的编码方法。

Janus-Pro 是先前工作 Janus 的高级版本。Janus-Pro 具体特点:(1) 优化的训练策略;(2) 扩展训练数据;(3) 更大的模型大小。通过这些改进,Janus-Pro 在多模态理解和文本到图像指令跟踪能力方面都取得了显著进步,同时还提高了文生图任务的稳定性。

图1:Janus Benchmark Performance
图2:Janus-Pro 的多模态理解和生成结果

下面是对本文的详细介绍。

本文目录

1 Janus 系列模型:解耦统一多模态理解和生成模型的视觉编码
(来自 DeepSeek)
1 Janus 论文解读
1.1 Janus 模型架构
1.2 Janus 训练策略
1.3 Janus 训练目标
1.4 Janus 推理过程
1.5 Janus 实验设置
1.6 Janus 评测

2 Janus-Pro 论文解读
2.1 Janus-Pro 模型
2.2 Janus-Pro 模型架构
2.3 Janus-Pro 训练策略
2.4 Janus-Pro 数据缩放
2.5 Janus-Pro 模型缩放
2.6 Janus-Pro 实验设置
2.7 Janus-Pro 评测

1 Janus:解耦统一多模态理解和生成模型的视觉编码

论文名称:Janus: Decoupling Visual Encoding for Unified Multimodal Understanding and Generation

论文地址:

http://arxiv.org/pdf/2410.13848

项目主页:

http://github.com/deepseek-ai/Janus

1.1 Janus 模型

Janus 是使用一个统一的 Transformer 架构来统一多模态图像理解和多模态图像生成任务的模型。这种方法通常使用单个视觉编码器来处理这 2 个任务的输入。然而,多模态理解和生成任务所需的表征差异很大多模态理解任务中,视觉编码器的目的是提取高级语义信息。理解任务的输出不仅涉及从图像中提取信息,还涉及复杂的语义推理。因此,视觉编码器表示的粒度往往主要集中在高维语义的表征上。相比之下,视觉生成任务中,主要关注点是生成局部细节并保持图像中的全局一致性。在这种情况下,表征需要表示出细粒度的空间结构,以及纹理细节。在同一空间中统一这两个任务的表示将导致冲突。因此,现有的多模态理解和生成的统一模型通常会影响多模态理解性能,明显低于最先进的多模态理解模型。

Janus 作为一个类似的统一多模态模型,为了解决这个问题,将视觉编码进行解耦来进行多模态理解和生成。Janus 引入了 2 个独立的视觉编码路径:一个用于多模态理解,一个用于多模态生成,由相同的 Transformer 架构统一。

这有两个主要好处:

  1. Janus 减轻了源自多模态理解和生成的不同粒度需求的冲突,并消除了在选择视觉编码器时需要在 2 个任务之间进行权衡的需要。
  2. Janus 灵活且可扩展。在解耦后,理解和生成任务都可以采用各自领域里最先进的编码技术。

如图 3 所示是 Janus 的架构。对于纯文本理解、多模态理解和视觉生成,Janus 应用独立的编码方法将原始输入转换为特征,然后由统一的 Autoregressive Transformer 处理。

  • 文本理解: 使用 LLM 内置的 tokenizer 将文本转换为离散的 ID,并获得与每个 ID 对应的特征表征。
  • 多模态理解: 使用 SigLIP[1]Encoder 从图像中提取高维语义特征。这些特征从二维网格 flattened 为一维序列,利用 Understanding Adaptor 将这些图像特征映射到 LLM 的输入空间。
  • 图像生成: 使用 LLamaGen[2]中的 VQ tokenizer 将图像转换为离散的 ID。在 ID 序列被 flattened 为一维之后,使用 Generation Adaptor 将每个 ID 对应的 codebook embedding 映射到 LLM 的输入空间。
图3:Janus 架构。不同于以往通常假设视觉理解和生成的方法需要相同的视觉编码器,Janus 将视觉编码解耦为视觉理解和视觉生成。Und. Encoder 和 Gen. Decoder 分别是 Understanding Encoder 和 Generation Decoder 的缩写

然后,将这些特征序列 Concatenate 起来形成一个多模态特征序列,然后将其输入到 LLM 进行处理。LLM 内置的预测头用于纯文本理解和多模态理解任务中的文本预测,而随机初始化的预测头用于生成任务中的图像预测。

整个模型遵循自回归框架,无需专门设计 Attention Mask。

1.2 Janus 训练策略

Janus 的训练分为 3 个阶段,如图 4 所示。

第 1 阶段:训练 Adaptors 和 Image Head。

这一阶段的主要目标是在嵌入空间中创建视觉和语言元素之间的概念联系,使 LLM 能够理解图像中显示的实体,并具有初步的视觉生成能力。作者在这个阶段保持 Vision Encoder (SigLIP) 和 LLM 完全冻结,只允许更新 Understanding Adaptor、Generation Adaptor 和 Image Head 中的可训练参数。

第 2 阶段:联合预训练,除了理解编码器和生成编码器之外的所有组件都更新参数。

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

第 3 阶段:有监督微调,进一步解锁理解编码器的参数。

这个阶段作者使用 instruction tuning 数据,增强其指令跟随和对话能力。作者微调除生成编码器之外的所有参数。作者只微调答案,mask 掉系统和用户的提示。为了确保 Janus 在多模态理解和生成方面的熟练程度,作者不会为特定任务微调单独的模型。相反,作者使用纯文本对话数据、多模态理解数据和视觉生成数据的混合,确保跨各种场景的多功能性。

1.3 Janus 训练目标

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

这里, 表示由 Janus 的权重建模的条件概率。对于纯文本理解和多模态理解任务,作者计算纯文本序列的 loss。对于视觉生成任务,作者仅在图像序列上计算 loss。为了使设计简单,没有为不同的任务分配不同的权重。

1.4 Janus 推理过程

在推理过程中,Janus 模型采用 next-token prediction 方法。对于纯文本理解和多模态理解,作者遵循从预测分布顺序采样 token 的标准实践。对于图像生成,利用 classifier-free guidance (CFG),类似于先前的工作 Muse[4],LLamaGen。具体来说,对于每个 token,logit 的计算如下: ,其中  是条件 logit, 是无条件 logit, 是无分类器指导的尺度。以下评估的默认数量为 5 。

1.5 实验设置

Janus 利用最大支持序列长度为 4096 的 DeepSeek-LLM  (1.3B)[5]作为基础语言模型。对于理解任务中使用的视觉编码器,选择 SigLIP-Large-Patch16-384。generation encoder 有一个大小为 16,384 的 codebook,并将图像下采样 16 倍。Understanding Adaptor 和 Generation Adaptor 都是两层 MLP。所有图像都被调整为 384×384 像素。对于多模态理解数据,调整图像的长边,并用背景颜色 (RGB: 127, 127, 127) 填充短边,达到 384。对于视觉生成数据,短边被调整为 384,长边裁剪为 384。

训练数据

阶段1:

作者使用包含来自 ShareGPT4V 的 1.25 million 个图文配对字幕的数据集做多模式理解,以及来自 ImageNet-1K 的大约 1.2 million 样本用于视觉生成。ShareGPT4V 数据格式化为 ““。ImageNet 数据使用类别名称组织成文本到图像数据格式:”<category_name>”。

阶段2: 将数据组织成以下类别。

  1. 纯文本数据:使用来自 DeepSeek-LLM 的预训练文本 copus。
  2. 交错图像文本数据:使用 WikiHow 和 WIT 数据集。
  3. Image caption 数据。
  4. 表和图表数据:使用来自 DeepSeek-VL 的相应表格和图表数据。
  5. 视觉生成数据:利用图像标题对 (包括 2M 内部数据)。视觉生成数据格式:””。

在训练期间,以 25% 的概率只使用标题的第 1 句,鼓励模型为短描述开发强大的生成能力。ImageNet 数据只在前 120K 训练步骤中提出,而其他数据集的图像出现在后面的 60K 步。这种方法帮助模型首先学习基本像素依赖关系,然后再发展到更复杂的场景理解。

阶段3:

对于文本理解,使用来自[6]的数据。对于多模态理解,使用来自[7]等的指令微调数据。对于视觉生成,使用来自 [8]等以及 4M 内部数据图像-文本对。利用以下格式进行指令微调“用户:<Input Message>\n Assistant:<Response>”。

1.6 Janus 评测

多模态理解

如图 4 所示,比较了 Janus 与最先进的 Unified 模型以及 Understanding-only 模型。 Janus 在类似规模的模型中取得了最好的结果。具体来说,与之前的最佳统一模型 Show-o 相比,Janus 在 MME 和 GQA 数据集上分别实现了 41% (949 → 1338) 和 30% (48.7 → 59.1) 的性能改进。这可以归因于 Janus 将视觉编码解耦以进行多模态理解和生成,减轻了这两个任务之间的冲突。与尺寸明显较大的模型相比,Janus 仍然具有很强的竞争力。例如,Janus 在多个数据集上优于 LLaVA-v1.5 (7B),包括 POPE、MMbench、SEED Bench 和 MM-Vet。

图4:多模态理解基准比较

(多模态) 视觉生成

图5:GenEval Benchmark 上文生图能力的评估

作者报告了 GenEval、COCO30K 和 MJHQ-30K 基准上的视觉生成性能,如图 5 所示。Janus 在 GenEval 上获得了 61% 的整体精度,优于之前最好的统一模型 Show-o (53%) 和一些流行的生成模型,例如 SDXL (55%) 和 DALL-E 2 (52%)。这表明本文方法具有更好的指令跟随能力。

图6:MSCOCO-30K 和 MJHQ-30K Benchmark 上文生图能力评估

如表 4 所示,Janus 在 COCO-30K 和 MJHQ-30K Benchmark 上分别实现了 8.53 和 10.10 的 FID,超过了统一模型 Show-o 和 LWM,并且与一些众所周知的仅生成方法相比表现出具有竞争力的性能方法。这表明 Janus 生成的图像具有良好的质量,并突出了其在视觉生成方面的潜力。

有一个消融实验的细节值得注意,即如图 7 所示。Exp-D 为 Unified Training,Exp-E 相当于是训练了一个纯理解模型,Exp-F 相当于是训练了一个纯生成模型。对于纯理解模型,作者省略了视觉生成数据;对于纯生成模型,作者省略了理解数据。注意,统一训练和纯理解训练对于理解部分遵循相同的步骤,统一训练和纯生成训练对于生成部分遵循相同的步骤。实验结果表明,Unified Training 的性能与 Pure Understanding 或 Pure Generation 的训练相当。这表明 Janus 能够结合强大的生成能力,同时最低限度地影响多模态理解性能。

图7:消融实验结果

视觉生成可视化

图 8 显示了 Janus 多模态理解能力的定性结果,与 Chameleton 和 Show-o 相比。Janus 准确地解释文本标题并捕获记忆中传达的情感。相比之下,Chameleon 和 Show-o 都难以准确识别图像中的文本。此外,Chameleon 无法识别 meme 中的对象,而 Show-o 误解了狗的颜色。这些示例强调,与 Chameleon 和 Show-o 使用的共享编码器相比,解耦视觉编码器显着提高了 Janus 的细粒度多模态理解能力。

图8:多模态理解幽默记忆的定性结果

2 Janus-Pro:解耦统一多模态理解和生成模型的视觉编码

论文名称:Janus-Pro: Unified Multimodal Understanding and Generation with Data and Model Scaling

论文地址:

http://arxiv.org/pdf/2501.17811

项目主页:

http://github.com/deepseek-ai/Janus

2.1 Janus-Pro 模型

Janus 在 1B 参数量级上得到验证。然而,由于训练数据量有限,模型容量相对较小,存在一定的不足,例如:在短提示图像生成的性能次优,文生图质量不稳定。

Janus-Pro 是一种增强的 Janus 版本,结合了 3 个维度的改进:训练策略、数据和模型大小。Janus-Pro 系列包括两个模型大小:1B 和 7B,展示了视觉编码解码方法的可扩展性。

作者在多个基准上评估了 Janus-Pro,结果揭示了其优越的多模态理解能力,并显着提高了文生图的指令跟随性能。Janus-Pro-7B 在多模态理解基准 MMBench 上得分为 79.2,超过了最先进的统一多模态模型,例如 Janus (69.4)、TokenFlow (68.9) 和 MetaMorph (75.2)。此外,在文生图指令跟随排行榜 GenEval 中,Janus-Pro-7B 得分为 0.80,优于 Janus (0.61)、DALL-E 3 (0.67) 和 SD-3 Medium (0.74)。

图9:Janus-Pro 与其前身 Janus 之间的文生图的比较。Janus-Pro 为短 Prompt 提供了更稳定的输出,提高了视觉质量、更丰富的细节和生成简单文本的能力。图像分辨率为 384×384

2.2 Janus-Pro 模型架构

Janus-Pro 的模型架构如图 3 所示,与 Janus 完全相同。整体架构的核心设计原则是将视觉编码解耦以进行多模态理解和生成。

作者应用独立的编码方法将原始输入转换为特征,然后由 Unified Autoregressive Transformer 来处理。

对于多模态理解,使用 SigLIP Encoder 从图像中提取高维语义特征 (和 Janus 一致)。这些特征从二维网格 flattened 为一维序列,利用 Understanding Adaptor 将这些图像特征映射到 LLM 输入空间。

对于视觉生成任务,使用 LLamaGen[2]中的 VQ tokenizer 将图像转换为离散的 ID (和 Janus 一致)。在 ID 序列被 flattened 为 1D 之后,使用 Generation Adaptor 将每个ID 对应的 codebook 嵌入映射到 LLM 输入空间。

然后,作者将这些特征序列连接起来形成一个多模态特征序列,然后将其输入到 LLM 进行处理。除了 LLM 的内置预测头外,作者还利用随机初始化的预测头进行视觉生成任务中的图像预测 (和 Janus 一致)。整个模型遵循 Autoregressive 框架。

2.3 Janus-Pro 训练策略

Janus 的训练分为 3 个阶段,如 1.2 节所示。

第 1 阶段:训练 Adaptors 和 Image Head。

第 2 阶段:联合预训练,除了理解编码器和生成编码器之外的所有组件都更新参数。

第 3 阶段:有监督微调,进一步解锁理解编码器的参数。

但是 Janus 的训练策略有问题:

在第 2 阶段,Janus 按照 PixArt 将文生图的训练分为 2 部分。第 1 部分在 ImageNet 数据上进行训练,使用图像类别名称作为文生图的提示,目标是对像素依赖进行建模。第 2 部分在正常的文生图数据上训练。实施过程中,第 2 阶段的文本-图像训练步骤中有 66.67% 被分配给第 1 部分。

但是通过进一步的实验,作者发现这种策略是次优的,并导致计算效率显著低下。

第 1 阶段较长训练: 在第 1 阶段增加训练步骤,允许在 ImageNet 数据集上进行足够的训练。本文的研究结果表明,即使 LLM 参数固定,该模型也能有效建模像素依赖性,并根据类别名称生成合理的图像。

第 2 阶段集中训练: 在第 2 阶段丢弃 ImageNet 数据,直接利用正常的文生图数据训练模型,根据密集描述生成图像。这种重新设计的方法使第 2 阶段能够更有效地利用文生图数据,提高训练效率和整体性能。

作者还调整了第 3 阶段监督微调过程在不同类型数据集上的数据比率,将多模态数据、纯文本数据和文本图像数据的比例从 7:3:10 更改为 5:1:4。通过略微降低文生图数据的比例,作者观察到这种调整允许我们保持强大的视觉生成能力,同时实现改进的多模态理解性能。

2.4 Janus-Pro 数据缩放

作者在多模态理解和视觉生成方面扩展了用于 Janus 的训练数据。

  • 多模态理解:对于第 2 阶段的预训练数据,参考 DeepSeekVL2 并添加大约 90 万个样本。这些包括图像标题数据集 (例如 YFCC),以及表、图表和文档理解的数据 (例如,Docmatix)。对于第 3 阶段的监督微调数据,作者还结合了 DeepSeek-VL2 的附加数据集,例如 MEME 理解、中文会话数据和旨在增强对话体验的数据集。这些添加显着扩展了模型的能力,丰富了它在提高整体对话体验的同时处理各种任务的能力。
  • 视觉生成:作者观察到,先前版本的 Janus 中使用的真实世界数据缺乏质量并且包含显著的噪声,通常会导致文生图的不稳定性,从而导致美学上较差的输出。在 Janus-Pro 中,作者结合了大约 7200 万个合成美学数据,在统一的预训练阶段将真实数据与合成数据的比率提高到 1:1。这些合成数据样本的提示是公开的。实验表明,该模型在对合成数据进行训练时收敛速度更快,得到的文生图不仅更稳定,而且显著提高了审美质量。

2.5 Janus-Pro 模型缩放

先前版本的 Janus 使用 1.5B LLM 验证了视觉编码解耦的有效性。在 Janus-Pro 中,作者将模型缩放到 7B,1.5B 和 7B LLM 的超参数如图 10 所示。作者观察到,当使用更大规模的 LLM 时,与较小的模型相比,多模态理解和视觉生成的损失收敛速度显著提高。这一发现进一步验证了这种方法的强大可扩展性。

图10:Janus-Pro 1.5B 和 7B 版本的超参数

2.6 Janus-Pro 实验设置

作者利用最大支持序列长度为 4096 的 DeepSeek-LLM (1.5B 和 7B) 作为基础语言模型。对于理解任务中使用的视觉编码器,选择 SigLIP-Large-Patch16-384。生成编码器有一个大小为 16,384 的 codebook,并将图像下采样 16 倍。Understanding Adaptor 和 Generation Adaptor 都是 2 层的 MLP。每个阶段的详细超参数如图 11 所示。所有图像都被调整为 384×384 像素。

对于多模态理解数据,作者调整图像的长边,并用背景颜色 (RGB: 127, 127, 127) 填充短边,达到 384。

对于视觉生成数据,短边被调整为 384,长边裁剪为 384。

在训练期间使用序列打包来提高训练效率。Janus 使用 HAI-LLM (幻方-深度求索研发的深度学习训练工具) 训练和评估,这是一个建立在 PyTorch 之上的轻量级且高效的分布式训练框架。对于 1.5B/7B 的模型,整个训练过程在 16/32 个 mode 的集群上大约需要 7/14 天,每个模型配备 8 个 Nvidia A100 (40GB) GPU。

图11:Janus-Pro 的超参数

2.7 Janus-Pro 评测

多模态理解

为了评估多模态理解能力,作者在广泛认可的基于图像的视觉语言基准上评估我们的模型,其中包括 GQA,POPE,MME,SEED,MMB,MM-Vet,和 MMMU。

图 12 比较了 Janus-Pro 和最先进的 Unified Model 和 Pure Understanding Model。 Janus-Pro 取得了最好的结果。这可以归因于解耦视觉编码以进行多模态理解和生成,减轻了这两个任务之间的冲突。与尺寸明显较大的模型相比,Janus-Pro 仍然具有很强的竞争力。例如,除了 GQA 之外,Janus-Pro-7B 在所有基准测试中都优于 TokenFlow-XL (13B)。

图12:多模态理解基准与最新技术的比较

视觉生成

为了评估视觉生成能力,作者使用 GenEval 和 DPG-Bench。GenEval 是文生图的一个具有挑战性的基准,旨在通过对其组合能力进行详细的实例级分析来反映视觉生成模型的综合生成能力。DPG-Bench (Dense Prompt Graph Benchmark) 是一个由 1065 个冗长的密集提示组成的综合数据集,旨在评估文生图模型的复杂语义对齐能力。

作者报告了 GenEval 和 DPG-Bench 上的视觉生成性能。如图 13 所示,Janus-Pro-7B 在 GenEval 上获得了 80% 的整体准确率,优于所有其他统一或仅生成的方法,例如 Transfusion (63%) SD3-Medium (74%) 和 DALL-E 3 (67%)。这表明本文方法具有更好的指令跟随能力。如图 14 所示,Janus-Pro 在 DPG-Bench 上得分为 84.19,超过了所有其他方法。这表明 Janus-Pro 擅长遵循文生图的密集指令。

图13:GenEval benchmark 上文生图能力评估
图14:DPG-Bench 性能。此表中的方法是除 Janus 和 Janus-Pro 之外的所有特定于生成的模型

定性结果

作者在图 15 中展示了多模态理解的结果。 Janus-Pro 在处理来自不同上下文的输入时表现出令人印象深刻的理解能力,展示了其强大的能力。作者还在图 15 的下半部分展示了一些文生图的结果。 Janus-Pro-7B 生成的图像是高度现实的,尽管分辨率只有 384×384,但它们仍然包含大量细节。对于富有想象力和创造性的场景,Janus-Pro7B 准确地从提示中捕获语义信息,产生合理和连贯的图像。

图15:多模态理解和视觉生成能力的定性结果。模型为 Janus-Pro-7B,视觉生成的图像输出分辨率为 384×384

参考

1.^Sigmoid loss for language image pretraining

2.^abAutoregressive model beats diffusion: Llama for scalable image generation

3.^Pixart-𝑎𝑙 𝑝ℎ𝑎: Fast training of diffusion transformer for photorealistic text-to-image synthesis

4.^Muse: Text-To-Image Generation via Masked Generative Transformers

5.^Deepseek llm: Scaling open-source language models with longtermism

6.^Llava-onevision: Easy visual task transfer

7.^Llava-onevision: Easy visual task transfer

8.^Laion-aesthetics-umap.



(文:极市干货)

发表评论

×

下载每时AI手机APP

 

和大家一起交流AI最新资讯!

立即前往