Paper Card
论文标题:Janus-Pro: Unified Multimodal Understanding and Generation with Data and Model Scaling
论文作者:Xiaokang Chen, Zhiyu Wu, Xingchao Liu, Zizheng Pan, Wen Liu, Zhenda Xie, Xingkai Yu, Chong Ruan
论文链接:https://arxiv.org/abs/2501.17811v1
项目主页:https://github.com/deepseek-ai/Janus
论文出处:/
论文被引:/
Abstract
本文介绍了Janus-Pro,它融合了:1) 优化的训练策略,2) 扩展的训练数据,3) 更大模型参数。Janus-Pro在多模态理解和文本到图像(T2I)指令遵从能力提升显著,同时还增强了文本到图像生成的稳定性。
Summary
研究背景
统一多模态理解和生成模型的最新进展进展迅速。这些方法已被证明可以增强视觉生成任务中的指令遵从能力,同时减少模型冗余。 这些方法大多数都使用相同的视觉编码器来处理多模态理解和生成任务的输入。由于这两个任务所需的表示不同,通常会导致多模态理解性能欠佳。为了解决这个问题,Janus 提出了解耦视觉编码,减轻了多模态理解和生成任务之间的冲突,在两个任务中都取得了优异的性能。
方法介绍
Janus 在 1B 参数规模上得到了验证。然而,由于训练数据有限且模型容量相对较小,缺点是在较短提示图像生成的性能欠佳以及文本到图像生成质量不稳定 。本文介绍了Janus 的增强版本 Janus-Pro,在三个方面进行了改进:训练策略、数据和模型大小。Janus-Pro 系列包 1B 和 7B 参数版本,证明了视觉编码解码方法的可扩展性。
在多个基准测试集上评估了Janus-Pro,结果显示其具有优越的多模态理解能力,并且文本到图像指令遵从性能得到了显著提升。具体而言,Janus-Pro-7B 在多模态理解基准测试MMBench上取得了79.2分,超过了Janus(69.4分)、等最先进的统一多模态模型。此外,在文本到图像指令遵从排行榜GenEval上,Janus-Pro-7B得分0.80,优于Janus(0.61分)、DALL-E 3(0.67分)和Stable Diffusion 3 Medium(0.74分)。
模型架构
Janus-Pro的架构如图 3所示,与Janus相同。整体架构的核心设计原则是将用于多模态理解和生成的视觉编码解耦 。应用独立的编码方法将原始输入转换为特征,然后由统一的自回归Transformer处理这些特征。
- 对于多模态理解,使用SigLIP编码器从图像中提取高维语义特征。这些特征从2维网格被扁平化为1维序列,并使用一个理解适配器将这些图像特征映射到LLM的输入空间。
- 对于视觉生成任务,使用[38]的VQ Tokenizer将图像转换为离散ID。将ID序列扁平化为1维后,使用一个生成适配器将对应于每个ID的码本嵌入映射到LLM的输入空间。
将这些特征序列连接起来,形成一个多模态特征序列,随后输入到LLM进行处理。除了LLM中内置的预测头之外,还利用一个随机初始化的预测头来进行视觉生成任务中的图像预测 。整个模型遵循自回归框架。
模型规模
Janus使用15亿参数的大语言模型(LLM)验证了视觉编码解耦的有效性。 在Janus-Pro将模型规模扩大到70亿参数,15亿参数和70亿参数LLM的超参数详细信息见表1。当使用更大规模的LLM时,多模态理解和视觉生成的损失收敛速度显著提高 。这一发现进一步验证了这种方法的强大可扩展性。
训练策略
Janus采用三阶段训练过程:
- 第一阶段:训练适配器和图像头
- 第二阶段:统一预训练,除了理解编码器和生成编码器之外的所有组件的参数都会更新
- 第三阶段:有监督微调,在第二阶段基础上,解冻理解编码器的参数
这种训练策略存在问题:在第二阶段,Janus遵循PixArt将文本到图像的能力的训练分为两部分。第一部分使用ImageNet数据进行训练,使用图像类别名称作为文本到图像生成的提示,目标是模拟像素依赖性。第二部分使用正常的文本到图像数据进行训练。然而,第二阶段中 66.67% 的文本到图像训练步骤分配给第一部分。这种策略并非最优,计算效率低下。
为了解决这个问题,做了两处修改:
- 第一阶段更长的训练:增加了第一阶段的训练步骤,允许在ImageNet数据集上进行充分的训练。研究结果表明,即使LLM参数固定,模型也能有效地模拟像素依赖性,并根据类别名称生成合理的图像。
- 第二阶段的重点训练:放弃ImageNet数据,直接利用正常的文本到图像数据来训练模型,使其能够根据密集描述生成图像。这种方案使第二阶段能够更有效地利用文本到图像数据,从而提高了训练效率和整体性能。
还在第三阶段调整了不同类型数据集的数据比例,将多模态数据、纯文本数据和文本到图像数据的比例从7:3:10调整为5:1:4。通过减少文本到图像数据的比例,使模型保持强大的视觉生成能力的同时提高多模态理解性能。
数据构建
在多模态理解和视觉生成方面都扩大了Janus使用的训练数据。
多模态理解 。对于第二阶段,参考DeepSeek-VL2 并增加了大约9000万个样本。这些包括图像描述数据集,表格、图表和文档理解的数据。对于第三阶段,整合了DeepSeek-VL2的额外数据集,例如MEME理解、中文对话数据以及旨在增强对话体验的数据集。这些补充显著扩展了模型的能力,丰富了其处理各种任务的能力,同时改善了整体的对话体验。
视觉生成 。Janus中使用的数据质量差且包含大量噪声,导致文本到图像生成的稳定性下降,美学效果较差。在Janus-Pro中,整合了大约7200万个合成美学数据样本,使统一预训练阶段真实数据与合成数据的比例达到1:1 。 这些合成数据样本的提示词是公开可用的,例如[43]中的那些。实验表明,使用合成数据训练模型收敛速度更快,生成的文本到图像输出不仅更稳定,而且美学质量也显著提高。
消融实验
使用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[15]进行训练和评估,HAI-LLM是一个基于PyTorch构建的轻量级高效分布式训练框架。整个训练过程在一个由16/32个节点组成的集群上大约花费了9/14天,用于1.5B/7B模型,每个节点8个Nvidia A100-40GB GPU。
评估设置
多模态理解:GQA [17]、POPE [23]、MME [12]、SEED [21]、MMB [29]、MM-Vet [51] 和 MMMU [52]。
视觉生成:GenEval [14] 和 DPG-Bench [16]。GenEval 评估T2I模型的综合生成能力。DPG-Bench 评估T2I模型复杂的语义对齐能力。
多模态理解性能。表 3 中,Janus-Pro 取得了总体最佳结果。这可以归因于解耦用于多模态理解和生成的视觉编码,从而减轻了这两个任务之间的冲突。
视觉生成性能。表 4 种,Janus-Pro-7B 在 GenEval 上获得了 80% 的总体准确率,优于所有其他统一或仅生成方法,例如 Transfusion (63%)、SD3-Medium (74%) 和 DALL-E 3 (67%)。 这表明 Janus-Pro 具有更好的指令遵从能力 。如表 5 所示,Janus-Pro 在 DPG-Bench 上获得了 84.19 的分数,超过了所有其他方法。这表明 Janus-Pro 在遵循文本到图像生成的密集指令方面表现出色。
图 4 展示了多模态理解的结果。Janus-Pro 在处理来自各种上下文输入时表现出令人印象深刻的理解能力,展现了其强大的功能。图 4 的下半部分展示了一些文本到图像生成的成果。Janus-Pro-7B生成的图像非常逼真,尽管分辨率只有384×384,但仍然包含大量细节。对于富有想象力和创造性的场景,Janus-Pro-7B能够准确捕捉提示中的语义信息,生成合理且连贯的图像。
实验结论
本文从训练策略、数据和模型大小三个方面介绍了对Janus的改进。这些改进显著提升了多模态理解和文本到图像指令遵从能力。 然而,Janus-Pro仍然存在一些局限性。在多模态理解方面,输入分辨率限制为384 × 384,这影响了其在 OCR 等细粒度任务中的性能。对于文本到图像生成,低分辨率加上视觉分词器引入的重建损失,导致生成的图像虽然语义内容丰富,但仍然缺乏精细细节。例如,占据图像空间有限的小型面部区域可能细节不足。提高图像分辨率可以减轻这些问题。