DeepSeek文生图模型Janus-Pro论文解读 —— 多模态AI的革命?

B站影视 2025-01-30 00:57 2

摘要:整个AI行业仍在适应最近发布的、震惊人工智能领域的 DeepSeek-R1。1月28日除夕当天的凌晨,DeepSeek 又发布了另一款出色的开源模型Janus-Pro。这一次,它是一款能与其他顶级多模态模型相媲美的多模态人工智能模型。

整个AI行业仍在适应最近发布的、震惊人工智能领域的 DeepSeek-R1。1月28日除夕当天的凌晨,DeepSeek 又发布了另一款出色的开源模型 Janus-Pro。这一次,它是一款能与其他顶级多模态模型相媲美的多模态人工智能模型。

在本文中,我们将解读 DeepSeek 的 Janus-Pro 背后的研究论文《JanusPro:通过数据和模型扩展实现统一的多模态理解与生成》。为了理解这篇论文,我们还需要解读 DeepSeek 之前的一篇论文,该论文介绍了 Janus 模型的早期版本,题为《JanusFlow:协调自回归和整流流以实现统一的多模态理解和生成》。阅读本文无需提前了解 Janus 的原始论文。新论文是在之前论文的基础上撰写的,我们将在本文中对两篇论文进行解读。

Janus-Pro paper title and authors

Paper title and authors of the paper preceding Janus-Pro

这两个模型都讨论了统一的多模态理解和生成,所以在深入研究 Janus 模型的方法细节之前,让我们先了解一下它的含义。

Example for image understanding tasks, solved by MLLM

大语言模型(LLMs)在许多任务中都展现出了卓越的能力。在此基础上,诸如 LLaVA 之类的多模态大语言模型应运而生。借助多模态大语言模型,我们可以向模型同时输入文本提示和图像。在上面的例子中,我们向模型提问 “我的猫在做什么?” 并附上一张猫的图片。然后,模型就能理解文本提示和图像,并告诉我们猫在试图抓鱼。

这种方法在图像理解任务中已被证明非常有效,模型可以帮助回答关于输入图像的各种问题。下面我们可以看到 Janus-Pro 论文中一个图像理解任务的示例。向 Janus 展示一张蛋糕的图片,并询问其背景故事。Janus 准确识别出蛋糕的主题是《猫和老鼠》,并讲述了相关背景故事。该模型不仅理解了图像,还利用其基础大语言模型,借助大语言模型中嵌入的通用知识,提供了图像范围之外的信息。

Example for image understanding task

Example for an image generation task

图像生成模型通常基于扩散模型架构或其衍生架构。知名的模型包括 Stable Diffusion、DALL-E 3 等,这些模型在该领域已展现出卓越的能力。这些模型可以接受诸如 “一只可爱的猫” 这样的文本提示,并生成高质量的图像。

我们已经有了在图像理解和图像生成方面能力出色的模型。然而,将这些任务整合到一个模型中有显著的优势。例如,当我们的应用程序需要同时执行这两种任务时,使用一个统一的模型就无需加载不同模型的权重。

我们今天要解读的 Janus 模型在单一架构中统一处理这两种任务。虽然 Janus 不是第一个尝试实现这种整合的模型,但在回顾其架构时,我们将探究是什么方法让 Janus 更成功。
(Janus 对理解和生成任务的统一处理)

Unified handling of understanding and generation tasks with Janus

Janus and Janus-Pro Architecture

原始 Janus 模型和 Janus-Pro 背后的架构相似,我们可以通过论文中的上图来了解。模型的核心是一个自回归 Transformer,它是一个大语言模型。

Janus 架构的主要设计原则是将多模态理解和生成的视觉编码解耦。这是通过为每种任务类型使用不同的编码器来实现的。其他统一处理多模态理解和生成的模型通常使用单个图像编码器。然而,由于每种任务类型所需的编码不同,这种方法往往会受到任务干扰,而 Janus 避免了这一问题。

在图像理解任务中,Janus 使用 SigLIP 对图像进行编码。SigLIP 是 OpenAI 的 CLIP 模型的改进版本,它从图像中提取语义表示,适用于理解任务。这些表示被线性映射到 LLM 的输入空间。

在图像生成方面,Janus 使用来自 LlamaGen(一种自回归图像生成模型)的现有编码器。这是一个矢量量化(VQ)分词器(tokenizer),它将图像转换为 ID 列表,每个 ID 都与一个预定义的矢量相关联。这些矢量通过一个经过训练的模块映射到 LLM 的输入空间。

文本和图像嵌入被连接起来,形成大语言模型的输入序列。图像理解任务的文本输出是使用大语言模型内置的预测头生成的。对于图像生成,在大语言模型上添加另一个头,用于处理其最后一个隐藏状态。

Example for gradually removing noise from an image

图像生成是使用整流流方法(rectified flow method)进行的。在本文中我们不会深入探讨整流流,但为了让大家有直观的理解,可以想想扩散模型的工作原理:从一张噪声图像开始,逐渐去除图像中的噪声,直到得到一张清晰的猫的图像。整流流试图找到捷径,以一种显著减少获得清晰图像所需步骤的方式来降低噪声

Training process illustration from the original Janus paper

上图描述了训练过程,它取自原始 Janus 论文,我们将解释 Janus-Pro 与之不同的地方。Janus 和 Janus-Pro 都分三个阶段进行训练。

第一阶段的目的是使新模块能够与预训练组件正常协同工作。为此,大语言模型和图像编码器的权重被冻结,只训练新引入的组件。这些组件是将编码后的图像映射到 LLM 输入空间的部分以及图像生成头。在这个阶段,模型在 ImageNet 数据集上进行训练,根据图像类别生成图像。在这一阶段,Janus-Pro 在 ImageNet 上的训练步骤有所增加。

在这个阶段,我们继续训练新模块,但现在我们也训练大语言模型及其内置的文本预测头,以便它能更好地处理多模态嵌入序列。这个阶段包含的样本类型有多模态理解、图像生成和纯文本数据。Janus-Pro 与 Janus 相比,在这个阶段不再使用 ImageNet 数据集。在 Janus-Pro 的训练中,直接使用文本到图像的数据,而在原始 Janus 模型中,这个阶段从 ImageNet 数据开始,并逐渐增加文本到图像数据的比例。

值得一提的是,在训练过程中,图像编码器的表示与图像生成的潜在输出对齐,以增强生成过程中的语义连贯性。

第三阶段是在指令调优数据上进行监督微调,这些数据包括对话和高质量的文本到图像样本。在这个阶段,图像理解编码器也会进行训练,Janus 和 Janus-Pro 在这个过程中没有变化。

与 Janus 相比,Janus-Pro 的其他主要变化是在训练中使用的数据量增加,以及模型规模扩大。在模型规模方面,大语言模型的参数从 15 亿增加到了 70 亿。

Comparison between Janus-Pro to top multimodal understanding and image generation models


在上图中,我们可以看到 Janus-Pro 与其他强大模型的性能对比。左侧图表展示了多模态理解的结果,其中 x 轴表示模型的规模,y 轴表示多个基准测试的平均准确率。令人印象深刻的是,Janus-Pro-7B 优于其他顶级模型,如 LLaVA。更令人惊叹的是,这是通过一个统一模型实现的,而 LLaVA 模型并非统一模型。Janus-Pro 也显著优于之前的统一模型,并且在规模几乎只有 TokenFlow-XL 一半的情况下,略微超越了这款统一模型。

右侧图表展示了在两个基准测试中的文本生成图像结果。Janus-Pro 优于顶级的仅图像生成模型,如 DALL-E 3 和 SD3-Medium。它还超越了之前统一模型在图像生成方面的最先进结果,不过该结果未在本图表中显示。

Janus vs Janus-Pro Image Generation Quality

来源:硅基创想家

相关推荐