目录
论文总结
摘要
1. 引言
2. 方法
2.1 架构
2.2 优化的训练策略
2.4 模型扩展
3. 实验
3.1 实施细节
3.2 评估设置
3.3 与最新技术的比较
3.4 定性结果
4. 结论
论文总结
Janus-Pro是DeepSeek最新开源的图像理解生成模型,Janus-Pro在多模态理解和文本到图像生成方面进行了显著改进的先进模型。它是之前工作 Janus 的升级版本,主要通过优化训练策略、扩展训练数据和扩大模型规模来提升性能。
Janus-Pro 的架构基于解耦的视觉编码器。具体来说,它使用 SigLIP 编码器 处理多模态理解任务中的图像特征,使用 VQ tokenizer 处理视觉生成任务中的图像特征。这两种编码器分别将图像转换为特征序列,然后将这些特征序列与文本特征序列合并,输入到统一的自回归变换器中进行处理。这种设计有效缓解了多模态理解和生成任务之间的冲突,使得模型在这两项任务上都能表现出色。
Janus-Pro 在以下三个方面进行了关键改进:
1.优化训练策略
Janus-Pro 对训练过程进行了重新设计,增加了第一阶段的训练步骤,专注于在 ImageNet 数据集上训练视觉编码器,以更好地建模像素依赖关系。在第二阶段,直接使用正常的文本到图像数据进行训练,避免了之前版本中对 ImageNet 数据的过度依赖,提高了训练效率。此外,在第三阶段的监督微调中,调整了不同类型数据的比例,进一步平衡了多模态理解和生成任务的训练。
2.扩充数据集
Janus-Pro 在多模态理解和视觉生成方面引入了大量高质量的数据。对于多模态理解,增加了约 9000 万个样本,包括图像字幕数据和表格、图表、文档理解数据。对于视觉生成,引入了约 7200 万个合成审美数据样本,使真实数据与合成数据的比例达到 1:1。这些数据的增加显著提升了模型的泛化能力和生成质量。
3.扩大模型
Janus-Pro 将模型规模从 1.5B 扩展到 7B,显著提高了模型的表达能力和收敛速度。实验表明,更大的模型在多模态理解和视觉生成任务上都表现出了更好的性能。
项目主页:https://github.com/deepseek-ai/Janus
接下来是论文原文的翻译
Janus-Pro:通过数据和模型扩展实现统一的多模态理解和生成
摘要
在本研究中,我们介绍了 Janus-Pro,这是之前工作 Janus 的一个高级版本。具体来说,Janus-Pro 采用了(1)优化的训练策略,(2)扩展的训练数据,以及(3)更大的模型规模。凭借这些改进,Janus-Pro 在多模态理解和文本到图像的指令跟随能力方面取得了显著进展,同时增强了文本到图像生成的稳定性。我们希望这项工作能够激发该领域的进一步探索。代码和模型已公开。
1. 引言
图1 | Janus-Pro 的多模态理解和视觉生成结果。对于多模态理解,我们平均了 POPE、MME-Perception、GQA 和 MMMU 的准确率。MME-Perception 的分数除以 20 以缩放到 [0, 100] 范围。对于视觉生成,我们在两个指令跟随基准测试 GenEval 和 DPG-Bench 上评估性能。总体而言,Janus-Pro 超越了之前的统一多模态模型以及一些特定任务的模型。最好在屏幕上查看。
图2 | Janus-Pro 与前代产品 Janus 在文本到图像生成之间的比较。Janus-Pro 在短提示下能够提供更稳定的输出,具有改进的视觉质量、更丰富的细节,并且能够生成简单文本。图像分辨率为 384×384。
最近在统一多模态理解和生成模型方面的进展已经取得了显著的成果。这些方法已被证明可以增强视觉生成任务中的指令跟随能力,同时减少模型冗余。大多数方法使用相同的视觉编码器来处理多模态理解和生成任务的输入。由于这两个任务所需的表示不同,这通常会导致多模态理解性能不佳。为了解决这一问题,Janus 提出了视觉编码解耦,缓解了多模态理解和生成任务之间的冲突,实现了在两项任务中的出色表现。
作为开创性模型,Janus 在 1B 参数规模上得到了验证。然而,由于训练数据有限,模型容量相对较小,它在短提示图像生成和不稳定文本到图像生成质量方面表现出一定的不足。在本文中,我们介绍了 Janus-Pro,这是 Janus 的一个增强版本,它在训练策略、数据和模型规模三个维度上进行了改进。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)和 Stable Diffusion 3 Medium(0.74)。
2. 方法
2.1 架构
Janus-Pro 的架构如图 3 所示,与 Janus 相同。整体架构的核心设计理念是解耦多模态理解和生成的视觉编码。我们应用独立的编码方法将原始输入转换为特征,然后通过统一的自回归变换器进行处理。对于多模态理解,我们使用 SigLIP 编码器从图像中提取高维语义特征。这些特征从二维网格展平为一维序列,然后通过理解适配器将图像特征映射到 LLM 的输入空间。对于视觉生成任务,我们使用 VQ tokenizer 将图像转换为离散 ID。将 ID 序列展平为一维后,我们使用生成适配器将每个 ID 对应的码本嵌入映射到 LLM 的输入空间。然后我们将这些特征序列连接起来形成多模态特征序列,随后将其输入到 LLM 中进行处理。除了 LLM 内置的预测头外,我们还为视觉生成任务中的图像预测使用了一个随机初始化的预测头。整个模型遵循自回归框架。
图3 | Janus-Pro的架构。我们解耦了用于多模态理解和视觉生成的视觉编码。“Und. Encoder”和“Gen. Encoder”分别是“Understanding Encoder”(理解编码器)和“Generation Encoder”(生成编码器)的缩写。
2.2 优化的训练策略
Janus 的前一个版本采用了一个三阶段训练过程。第一阶段专注于训练适配器和图像头部。第二阶段处理统一预训练,在此期间,除了理解编码器和生成编码器之外的所有组件都会更新其参数。第三阶段是监督微调,在第二阶段的基础上,进一步在训练过程中解锁理解编码器的参数。这种训练策略存在一些问题。在第二阶段,Janus 按照 PixArt 的方式将文本到图像能力的训练分为两部分。第一部分使用 ImageNet 数据,以图像类别名称作为文本到图像生成的提示,目标是建模像素依赖关系。第二部分使用正常的文本到图像数据进行训练。在实施过程中,第二阶段 66.67% 的文本到图像训练步骤分配给了第一部分。然而,通过进一步的实验,我们发现这种策略是次优的,并导致了显著的计算效率低下。
为了解决这一问题,我们进行了两项改进:
-
第一阶段的更长训练:我们增加了第一阶段的训练步骤,以便在 ImageNet 数据集上进行充分的训练。我们的发现表明,即使在 LLM 参数固定的情况下,模型也能够有效地建模像素依赖关系,并根据类别名称生成合理的图像。
-
第二阶段的专注训练:在第二阶段,我们放弃了 ImageNet 数据,直接使用正常的文本到图像数据来训练模型,使其能够根据密集描述生成图像。这种重新设计的方法使得第二阶段能够更高效地利用文本到图像数据,从而提高了训练效率和整体性能。
我们还调整了第三阶段监督微调过程中不同类型数据集的数据比例,将多模态数据、纯文本数据和文本到图像数据的比例从 7:3:10 调整为 5:1:4。通过略微减少文本到图像数据的比例,我们观察到这种调整使我们能够在保持强大的视觉生成能力的同时,实现更好的多模态理解性能。
2.3 数据扩展
我们在多模态理解和视觉生成方面扩展了用于 Janus 的训练数据。
-
多模态理解:对于第二阶段预训练数据,我们参考了 DeepSeekVL2,并增加了大约 9000 万个样本。这些包括图像字幕数据集(例如 YFCC),以及用于表格、图表和文档理解的数据(例如 Docmatix)。对于第三阶段监督微调数据,我们也纳入了 DeepSeek-VL2 的额外数据集,如 MEME 理解、中文对话数据以及旨在增强对话体验的数据集。这些新增内容显著扩展了模型的能力,丰富了其处理多样化任务的能力,同时改善了整体对话体验。
-
视觉生成:我们发现前一个版本的 Janus 所使用的现实世界数据质量欠佳且包含大量噪声,这常常导致文本到图像生成不稳定,产生审美质量较差的输出。在 Janus-Pro 中,我们纳入了大约 7200 万个合成审美数据样本,在统一预训练阶段使真实数据与合成数据的比例达到 1:1。这些合成数据样本的提示是公开可用的,例如 [43] 中的提示。实验表明,模型在合成数据上训练时收敛速度更快,生成的文本到图像输出不仅更加稳定,而且在审美质量上也有显著提升。
2.4 模型扩展
Janus 的前一个版本使用 1.5B LLM 验证了视觉编码解耦的有效性。在 Janus-Pro 中,我们将模型扩展到 7B,1.5B 和 7B LLM 的超参数详细信息见表 1。我们发现,当使用更大规模的 LLM 时,多模态理解和视觉生成的损失收敛速度显著提高,与较小模型相比优势明显。这一发现进一步验证了这种方法的强大可扩展性。
表1 | Janus-Pro 的架构配置。我们列出了架构的超参数。
表2 | Janus-Pro 训练的详细超参数。数据比例是指多模态理解数据、纯文本数据和视觉生成数据的比例。
3. 实验
3.1 实施细节
在我们的实验中,我们使用 DeepSeek-LLM(1.5B 和 7B)作为基础语言模型,最大支持的序列长度为 4096。对于理解任务中使用的视觉编码器,我们选择了 SigLIP-Large-Patch16-384。生成编码器的码本大小为 16,384,图像下采样因子为 16。理解适配器和生成适配器都是两层 MLP。每个阶段的详细超参数见表 2。请注意,在第二阶段,我们采用了提前停止策略,在 270K 步骤时停止训练。所有图像都被调整为 384×384 像素。对于多模态理解数据,我们将图像的长边调整大小,并用背景颜色(RGB:127,127,127)填充短边以达到 384。对于视觉生成数据,将短边调整为 384,长边裁剪为 384。我们在训练中使用序列打包以提高训练效率。我们根据指定的比例在单个训练步骤中混合所有数据类型。我们的 Janus-Pro 使用 HAI-LLM 进行训练和评估,这是一个基于 PyTorch 构建的轻量级高效分布式训练框架。整个训练过程大约花费了 9/14 天,分别在 16/32 个节点的集群上进行,每个节点配备 8 个 Nvidia A100(40GB)GPU。
3.2 评估设置
多模态理解:为了评估多模态理解能力,我们在广泛认可的基于图像的视觉语言基准测试中评估我们的模型,这些测试包括 GQA、POPE、MME、SEED、MMB、MM-Vet 和 MMMU。
视觉生成:为了评估视觉生成能力,我们使用 GenEval 和 DPG-Bench。GenEval 是一个针对文本到图像生成的挑战性基准测试,旨在通过提供详细实例级分析来反映视觉生成模型的综合生成能力。DPG-Bench(密集提示图基准测试)是一个包含 1065 个长且密集提示的综合数据集,旨在评估文本到图像模型的复杂语义对齐能力。
3.3 与最新技术的比较
多模态理解性能:我们将提出的方法与最新统一模型和仅理解模型进行了比较,结果见表 3。Janus-Pro 实现了整体最佳结果。这可以归因于解耦多模态理解和生成的视觉编码,缓解了这两项任务之间的冲突。与规模大得多的模型相比,Janus-Pro 仍然具有很强的竞争力。例如,Janus-Pro-7B 在所有基准测试中(除了 GQA)均超过了 TokenFlow-XL(13B)。
表3 | 与多模态理解基准测试中的最新技术进行比较。“Und.” 和 “Gen.” 分别表示 “理解” 和 “生成”。使用外部预训练扩散模型的模型用†标记。
视觉生成性能:我们在 GenEval 和 DPG-Bench 上报告了视觉生成性能。如表 4 所示,我们的 Janus-Pro-7B 在 GenEval 上获得了 80% 的总体准确率,超过了所有其他统一或仅生成方法,例如 Transfusion(63%)、SD3-Medium(74%)和 DALL-E 3(67%)。这表明我们的方法具有更好的指令跟随能力。如表 5 所示,Janus-Pro 在 DPG-Bench 上得分为 84.19,超过了所有其他方法。这表明 Janus-Pro 在遵循密集指令进行文本到图像生成方面表现出色。
表4 | 在 GenEval 基准测试中对文本到图像生成能力的评估。“Und.” 和 “Gen.” 分别表示 “理解” 和 “生成”。使用外部预训练扩散模型的模型用†标记。
表5 | DPG-Bench 上的性能。本表中的方法均为仅生成模型,除了 Janus 和 Janus-Pro。
3.4 定性结果
我们在图 4 中展示了多模态理解的结果。Janus-Pro 在处理来自各种上下文的输入时表现出令人印象深刻的理解能力,展示了其强大的能力。我们还在图 4 的下半部分展示了一些文本到图像的生成结果。Janus-Pro-7B 生成的图像非常逼真,尽管分辨率仅为 384×384,但仍然包含大量细节。对于富有想象力和创造力的场景,Janus-Pro-7B 准确地从提示中捕捉语义信息,生成了合理且连贯的图像。
图4 | 多模态理解和视觉生成能力的定性结果。模型为 Janus-Pro-7B,视觉生成的图像输出分辨率为 384×384。最好在屏幕上查看。
4. 结论
本文从训练策略、数据和模型规模三个方面对 Janus 进行了改进。这些改进使得多模态理解和文本到图像指令跟随能力都取得了显著进展。然而,Janus-Pro 仍然存在一些限制。在多模态理解方面,输入分辨率限制在 384×384,这影响了其在细粒度任务(如 OCR)中的性能。对于文本到图像生成,低分辨率加上视觉 tokenizer 引入的重建损失,导致生成的图像虽然语义丰富,但在细节上仍然缺乏精细度。例如,占据有限图像空间的小面部区域可能会显得细节不足。提高图像分辨率可能会缓解这些问题。