Janus是DeepSeek开源的多模式自回归框架,统一了多模态理解和生成,既可以理解图片内容又可以生成图片。
1.简介
Janus 是一种新颖的自回归框架,它将多模态理解和生成统一起来。它通过将视觉编码解耦为单独的路径来解决以前方法的局限性,同时仍然使用单一、统一的转换器架构进行处理。这种解耦不仅缓解了视觉编码器在理解和生成中的角色冲突,而且还增强了框架的灵活性。Janus 超越了之前的统一模型,并且达到或超过了特定任务模型的性能。Janus 的简单性、高灵活性和有效性使其成为下一代统一多模态模型的有力候选者。
机构: DeepSeek-AI、香港大学和北京大学
Github地址:https://github.com/deepseek-ai/Janus
论文地址:https://arxiv.org/abs/2410.13848
模型下载地址:https://huggingface.co/deepseek-ai/Janus-1.3B
2.模型摘要
Janus 是一种统一理解和生成的 MLLM,它将视觉编码解耦,以实现多模态理解和生成。Janus 基于 DeepSeek-LLM-1.3b-base 构建,该库在大约 500B 个文本标记的语料库上进行训练。对于多模态理解,它使用 SigLIP -L作为视觉编码器,支持 384 x 384 图像输入。对于图像生成,Janus 使用此处的标记器,下采样率为 16。
3.训练过程
Janus的训练分为三个阶段,如图所示。详细信息如下:
第一阶段: 训练适配器和图像头。该阶段的主要目标是在嵌入空间内创建视觉和语言元素之间的概念联系,使LLM能够理解图像中显示的实体并具有初步的视觉生成能力。在此阶段,保持视觉编码器和 LLM 冻结,只允许更新理解适配器、生成适配器和图像头中的可训练参数。
第二阶段: 统一预训练。在这个阶段,使用多模态语料库进行统一预训练,使 Janus 能够学习多模态理解和生成。解冻 LLM 并利用所有类型的训练数据:纯文本数据、多模态理解数据和视觉生成数据。受 Pixart 的启发,首先使用 ImageNet-1k 进行简单的视觉生成训练,以帮助模型掌握基本的像素依赖性。随后,使用通用文本到图像数据增强了模型的开放域视觉生成能力。
第三阶段: 监督微调。在此阶段,使用指令调整数据对预训练模型进行微调,以增强其指令跟随和对话能力。微调除生成编码器之外的所有参数。专注于监督答案,同时屏蔽系统和用户提示。为了确保 Janus 精通多模态理解和生成,不会针对特定任务微调单独的模型。相反,混合使用纯文本对话数据、多模态理解数据和视觉生成数据,确保跨各种场景的多功能性。
4.模型扩展
值得注意的是,本文的设计具有用于理解和生成的单独编码器,非常简单且易于扩展。
多模式理解:
(1)对于多模态理解组件,可以选择更强的视觉编码器,而不必担心编码器是否能够处理视觉生成任务,例如EVA-CLIP、InternViT等。
(2)处理高分辨率图像,可以使用动态高分辨率技术。这允许模型缩放到任何分辨率,而无需对 ViT 执行位置嵌入插值。可以进一步压缩令牌以节省计算成本,例如使用像素洗牌操作。
视觉生成:
(1)对于视觉生成,可以选择更细粒度的编码器,以便在编码后保留更多的图像细节,例如MoVQGan 。
(2)可以采用专门为视觉生成设计的损失函数,例如扩散损失。
(3)在视觉生成过程中可以结合AR(因果注意力)和并行(双向注意力)方法来减少视觉生成过程中的累积误差。
支持附加模式:
Janus 的简单架构允许轻松与其他编码器集成,适应各种模式,例如 3D 点云、Tactile 和 EEG。这使 Janus 有潜力成为更强大的多模式通才模型。
5.实验
使用最大支持序列长度为 4096 的 DeepSeek-LLM (1.3B) 作为基础语言模型。对于理解任务中使用的视觉编码器,选择SigLIP-Large-Patch16-384 。生成编码器具有大小为 16、384 的码本,并将图像下采样 16 倍。理解适配器和生成适配器都是两层 MLP。
所有图像的大小均调整为 384 × 384 像素。对于多模态理解数据,调整图像长边的大小并用背景颜色(RGB:127,127,127)填充短边以达到384。对于视觉生成数据,将短边调整为384,并且将短边调整为384。长边被裁剪为384。在训练过程中使用序列打包来提高训练效率。在单个训练步骤中根据指定的比率混合所有数据类型。Janus 使用 HAI-LLM [32] 进行训练和评估,这是一个构建在 PyTorch 之上的轻量级且高效的分布式训练框架。整个训练过程在 16 个节点的集群上花费了 7 天,每个节点配备 8 个 Nvidia A100 (40GB) GPU。
与多模态理解基准的最先进技术进行比较:
多模式理解性能: 将所提出的方法与表 2 中最先进的统一模型和仅理解模型进行了比较。Janus 在类似规模的模型中取得了总体最佳结果。具体来说,与之前最好的统一模型 Show-o 相比,在 MME 和 GQA 数据集上分别实现了 41% (949 → 1338) 和 30% (48.7 → 59.1) 的性能提升。这可以归因于 Janus 解耦了多模态理解和生成的视觉编码,减轻了这两个任务之间的冲突。与尺寸明显更大的型号相比,Janus 仍然具有很强的竞争力。例如,Janus 在多个数据集上的性能优于 LLaVA-v1.5 (7B),包括 POPE、MMbench、SEED Bench 和 MM-Vet。
视觉生成性能: 报告了 GenEval、COCO30K 和 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 生成的图像具有良好的质量,并凸显了其在视觉生成方面的潜力。
6.结论
在本文中,介绍了 Janus,一个简单、统一且可扩展的多模态理解和生成模型。 Janus的核心思想是解耦视觉编码以实现多模态理解和生成,这可以缓解由于理解和生成对视觉编码器的不同需求而产生的冲突。大量的实验证明了Janus的有效性和领先性能。还值得注意的是,Janus 非常灵活且易于扩展。除了在多模式理解和生成方面具有巨大的改进潜力之外,Janus 还可以轻松扩展以纳入更多输入模式。上述优点表明,Janus 可以为下一代多模式通用模型的开发提供灵感。