[EAI-030] DeepSeek 的 Janus,统一的多模态理解和生成模型

ops/2025/2/5 9:23:23/

Paper Card

论文标题:Janus: Decoupling Visual Encoding for Unified Multimodal Understanding and Generation
论文作者:Chengyue Wu, Xiaokang Chen, Zhiyu Wu, Yiyang Ma, Xingchao Liu, Zizheng Pan, Wen Liu, Zhenda Xie, Xingkai Yu, Chong Ruan, Ping Luo
论文链接:https://arxiv.org/abs/2410.13848v1
项目主页:https://github.com/deepseek-ai/Janus
论文出处:/
论文被引:/

Abstract

本文介绍了统一多模态理解和生成的自回归框架 Janus。以前的研究(例如 Chameleon)通常依赖于单个视觉编码器来完成这两个任务。 然而,由于多模态理解和生成所需的信息粒度(information granularity)不同,这种方法会导致性能下降,尤其是在多模态理解。 为了解决这个问题,将视觉编码解耦成独立的路径,同时仍然利用单个统一的 Transformer 架构进行处理。 解耦不仅缓解了视觉编码器在理解和生成中的角色冲突,而且还增强了框架的灵活度。例如,多模态理解和生成组件都可以独立选择最适合的编码方法。 实验表明,Janus 超越了以前统一的模型,并且持平或者超过了任务特定的模型的性能。

Summary

研究背景

在这里插入图片描述

先前的统一多模态理解和生成的模型使用单个视觉编码器处理理解和生成任务的输入,因为两个任务所需的表示差异很大,这种将两个任务的表示统一在用一个空间中会导致任务的冲突,导致理解能力降低。两种任务的差异:

  • 多模态理解任务:视觉编码器的作用是提取高级语义信息(图像中的物体类别或者视觉属性),模型的输出不仅包括图像中提取的信息还包括复杂的语义推理。
  • 多模态生成任务:视觉编码器的作用是低维编码,能够进行细粒度的空间结构和纹理细节表达。主要关注生成局部细节并保持图像的全局一致性。

方法介绍

为了解决上述问题,提出了将多模态理解和生成的视觉编码器解耦的模型 Janus,引入了连个视觉编码器,一个用于理解,一个用于生成。优势是:

  • 1)缓解了多模态理解和生成任务对不同信息粒度需求产生的冲突;
  • 2)理解和生成任务都可以采用特定领域的编码器,未来可以支持诸如点云、脑电信号和音频数据等模态的输入,可扩展性更强。

模型架构

在这里插入图片描述

文本编码器:DeepSeek-LLM (1.3B) 的 LLM tokenizer

多模态理解视觉编码器:

  • 本文配置:SigLIP-Large-Patch 16-384 + Adaptor (2-Layer MLP),所有图像都被缩放为 384×384 像素。如果不足,则缩放图像的长边大小,并使用背景颜色(RGB:127,127,127)填充短边,使其达到 384。
  • 未来扩展:1) 可以选择更强大的视觉编码器,例如 EVA-CLIP、InternViT 等。 2) 为了处理高分辨率图像,可以使用动态高分辨率技术 [50]。3) 可以进一步压缩 token 以节省计算成本,例如使用 pixel shuffle 操作 [12]。

多模态生成视觉编码器:

  • 本文配置:引文 [73] 提出的 VQ tokenizer + Adaptor (2-Layer MLP),codebook 大小为 1638,图像下采样 16 倍。所有图像都被调整为 384×384 像素。如果不足,短边被缩放为 384,长边被裁剪为 384。
  • 未来扩展:1) 可以选择更细粒度的编码器,以在编码后保留更多图像细节,例如 MoVQGan [93] 。2) 可以使用专门为视觉生成设计的损失函数,例如扩散损失 [46] 。3) 在视觉生成过程中,可以使用 AR(因果注意力)和并行(双向注意力)方法的组合来减少视觉生成过程中的累积误差 [79] 。

[12] How far are we to gpt-4v? closing the gap to commercial multimodal models with open-source suites. arXiv:2404.16821
[46] Autoregressive image generation without vector quantization. arXiv:2406.11838
[50] Improved baselines with visual instruction tuning. CVPR2024
[73] Autoregressive model beats diffusion: Llama for scalable image generation. arXiv:2406.06525
[79] Visual autoregressive modeling: Scalable image generation via next-scale prediction. arXiv:2404.02905
[93] Movq: Modulating quantized vectors for high-fidelity image generation. NIPS 2022

训练过程

在这里插入图片描述

在这里插入图片描述

Stage I: Training Adaptors and Image Head.

训练目的:在嵌入空间建立视觉元素和语言元素之间的概念联系,使 LLM 能够理解图像中的实体,并具备初步的视觉生成能力。

训练组件:多模态理解 Adaptor,多模态生成 Adaptor,图像生成 Head,其他组件保持冻结

训练数据:

  • ShareGPT4V 的1.25 M 个图像描述数据集
  • 1.2M 个 ImageNet-1k 的物体名称数据集

Stage II: Unified Pretraining.

训练目的:学习多模态理解和生成。受 Pixart 启发,使用 ImageNet-1k 进行简单的视觉生成训练(该数据仅在前 120k steps 中使用,之后的 60k steps 使用其他数据),使得模型首先掌握基本的像素依赖关系。随后,视同Image2Text数据增强模型的开放域视觉生成能力。

训练组件:进一步解冻LLM和文本理解Head

训练数据:

  • 纯文本对话数据:DeepSeek-LLM 的预训练文本语料库
  • 图文交错数据(多模态理解):WikiHow [39] 和 WIT [72] 数据集
  • 图像描述数据(多模态理解):[18, 38, 17, 40, 23, 47, 49, 45, 70] 的图像,使用开源的多模态模型重新为 [17, 40] 中的图像添加描述
  • 表格和图表数据(多模态理解):DeepSeek-VL 中相应的表格和图表数据
  • 视觉生成数据:[38, 17, 40, 70, 57, 58, 63, 60] 的图像描述数据,以及 2M 条内部数据。对于 [38, 70] 的数据基于 asethetic 分数和图片尺寸进行过滤,最终保留了20%的数据,在训练过程中以25%的概率随机使用 caption 中的第一个句子,以让模型具备从较短描述中生成图像的能力。

Stage III: Supervised Fine-tuning.

训练目的:增强模型的指令遵从和对话能力

训练组件:进一步解冻多模态理解视觉编码器

训练数据:

  • 文本理解:[43] 中的数据
  • 多模态理解:[43,31,35,69,34,56] 中的指令调优数据
  • 视觉生成:[17, 70, 60] 中的数据,4M 条内部数据

训练目标:Janus 是一个自回归模型,在训练期间采用交叉熵损失。对于纯文本理解和多模态理解任务,在文本序列上计算损失。对于视觉生成任务,只在图像序列上计算损失。为了保持设计的简单性,没有对不同的任务分配不同的损失权重。


推理过程:采用NTP方法。对于纯文本理解和多模态理解,遵循从预测分布中顺序采样 token 的标准做法。对于图像生成,利用无分类器引导 (CFG) 。具体来说,对于每个 token,logit lg 计算为: lg=lu+s(lc−lu),其中 lc 是条件 logit,lu 是无条件 logit,s 是无分类器引导的尺度。s 的默认值为 5 。


消融实验

实验设置

使用 HAI-LLM [32] 进行训练和评估,HAI-LLM 是一个构建在 PyTorch 之上的轻量级且高效的分布式训练框架。 整个训练过程在一个包含 16 个节点的集群上进行,每个节点 8 个 Nvidia A100 (40
GB) GPU,共花费 7 天。

定量分析

在这里插入图片描述

多模态理解性能:表 2 所示,与之前最好的统一模型 Show-o 相比,Janus 在 MME 和 GQA 数据集上分别取得了 41% (949→1338) 和 30% (48.7→59.1) 的性能提升。
在这里插入图片描述

视觉生成性能:如表 3 所示,Janus 在 GenEval 上获得了 61% 的整体准确率,这超过了之前的最佳统一模型 Show-o (53%) 和一些流行的仅生成方法,例如 SDXL (55%) 和 DALL-E 2 (52%)。

定性分析

在这里插入图片描述

多模态理解性能: 图 5 展示了 Janus 的多模态理解能力的定性结果,与 Chameleon [77] 和 Show-o [86] 相比。Janus 准确地解释了文本标题并捕捉到了表情包中传达的情绪。相反,Chameleon 和 Show-o 都难以准确识别图像中的文本。Chameleon 无法识别表情包中的物体,Show-o 错误地解释了狗的颜色。
在这里插入图片描述

视觉生成性能:图 4 展示了 Janus 与基于扩散的模型(如 SDXL [62])和自回归模型 LlamaGen [73] 之间的定性比较。结果表明,Janus 在视觉生成方面展现出更强的指令遵从能力,准确地捕捉到用户提示中的大部分细节。这表明统一模型在视觉生成的潜力。

实验结论

本文介绍了 Janus,一个简单、统一且可扩展的多模态理解和生成模型。Janus 的核心思想是解耦用于多模态理解和生成的视觉编码,可以缓解理解和生成对视觉编码器提出的不同需求而产生的冲突。大量的实验已经证明了 Janus 的有效性和领先性能。Janus 还易于扩展,以整合更多输入模态。


http://www.ppmy.cn/ops/155826.html

相关文章

【2025年更新】1000个大数据/人工智能毕设选题推荐

文章目录 前言大数据/人工智能毕设选题:后记 前言 正值毕业季我看到很多同学都在为自己的毕业设计发愁 Maynor在网上搜集了1000个大数据的毕设选题,希望对大家有帮助~ 适合大数据毕业设计的项目,完全可以作为本科生当前较新的毕…

CSS Display属性完全指南

CSS Display属性完全指南 引言核心概念常用display值详解1. block(块级元素)2. inline(行内元素)3. inline-block(行内块级元素)4. flex(弹性布局)5. grid(网格布局&…

图的基本术语——非八股文

我之前只看到了数据结构与算法的冰山一角,感觉这些术语只会让知识越来越难理解,现在来看,他们完美抽象一些概念和知识,非常重要。 本篇概念肯定总结不全,只有遇到的会写上,持续更新,之前文章已经…

《offer 来了:Java 面试核心知识点精讲 -- 框架篇》(附资源)

继上篇文章介绍了《offer 来了:Java 面试核心知识点精讲 -- 原理篇》书后,本文章再给大家推荐兄弟篇 《offer来了:Java面试核心知识点精讲--框架篇》, 简直就是为Java开发者量身定制的面试神器。 本书是对Java程序员面试中常见的…

directx12 3d开发过程中出现的报错 一

报错:“&”要求左值 “& 要求左值” 这个错误通常是因为你在尝试获取一个临时对象或者右值的地址,而 & 运算符只能用于左值(即可以放在赋值语句左边的表达式,代表一个可以被引用的内存位置)。 可能出现错…

Java设计模式:行为型模式→状态模式

Java 状态模式详解 1. 定义 状态模式(State Pattern)是一种行为型设计模式,它允许对象在内部状态改变时改变其行为。状态模式通过将状态需要的行为封装在不同的状态类中,实现对象行为的动态改变。该模式的核心思想是分离不同状态…

【C++】C++11

前言 本篇博客我们来看看C11里发展了什么新的东西,跟C98比起来有什么不同 💓 个人主页:小张同学zkf ⏩ 文章专栏:C 若有问题 评论区见📝 🎉欢迎大家点赞👍收藏⭐文章 ​ 目录 1.C11的发展历史 …

Baklib在知识管理领域的优势与五款竞争产品的全方位对比分析

内容概要 在现代企业环境中,知识管理的重要性愈发凸显。随着信息技术的快速发展和市场竞争的加剧,企业面临着海量数据和信息的管理挑战。因此,如何有效地集中和利用这些知识资源,就成为了企业提升竞争力的关键所在。Baklib作为一…