转载本文请注明出处:https://yudonglee.me/deepseek-janus-explained/ | 作者:yudonglee

本文是 DeepSeek 论文专题系列的第 10 篇,详解 DeepSeek 公司 2024 年 10 月发表的 Janus: Decoupling Visual Encoding for Unified Multimodal Understanding and Generation (arXiv:2410.13848) 与 2025 年 1 月发表的 Janus-Pro: Unified Multimodal Understanding and Generation with Data and Model Scaling (arXiv:2501.17811)。这两篇论文是 DeepSeek 多模态主线的另一条独立分支,与 W6 的 DeepSeek-VL 并行存在。Janus 的核心创新是把视觉理解(understanding)与视觉生成(generation)的编码路径完全解耦——用 SigLIP 抽取语义特征服务于理解,用 VQ tokenizer 离散化像素细节服务于生成,两条路径汇入同一个统一 Transformer。这种”双路径 + 单主干”的设计让一个 7B 模型在 GenEval 上拿到 80%、超过 DALL-E 3 (67%) 与 SD3 (74%),同时在多模态理解 benchmark 上也保持竞争力。Janus 的设计哲学呼应了 W10 Aux-Loss-Free 的”关注点分离(separation of concerns)”——当两个目标天然冲突时,不要试图用一个机制同时满足,而要用结构性解耦让它们各自走最优路径

📚 DeepSeek 论文专题系列 · 全 18 篇
通用 LLM 主线LLM · V2 (MLA) · V3 · V3.2 (DSA) · V4 · 收官
Reasoning 主线Math (GRPO) · Prover · R1 · GRM · Math-V2
代码主线Coder
多模态主线VL · Janus ●
MoE 架构与工程MoE · ESFT · Aux-Loss-Free
Attention 演化NSA

一、为什么”统一多模态”听起来美好却难做

1.1 多模态主线上的两个独立任务

视觉与语言模型的核心任务可以分为两大类:

  1. 多模态理解(multimodal understanding):输入图像 + 文本 → 输出文本(VQA、image captioning、OCR、文档理解)
  2. 多模态生成(multimodal generation):输入文本 → 输出图像(text-to-image、conditional image gen)

业界过去几年发展出两类专门模型:

  • 理解类:LLaVA、Qwen-VL、InternVL、DeepSeek-VL(W6 详解)——用 LLM 处理 vision token 输出文本
  • 生成类:Stable Diffusion、DALL-E 3、SDXL——用 diffusion model 从文本生成图像

这两条线分别都很成熟。但用户最理想的状态是一个模型同时承担两种能力——就像 ChatGPT 既能看图又能画图。GPT-4o(OpenAI, 2024-05)就是这种”端到端统一多模态”的代表。

1.2 统一多模态的两个学派

在开源社区,统一多模态主要有两派技术路线:

学派 A:双模型拼接

把一个理解类模型和一个生成类模型简单拼起来——用户问”画一只猫”时模型路由到 DALL-E,问”图里有什么”时路由到 LLaVA。

  • 优点:实现简单,复用现有模型
  • 缺点:不是真正的统一模型,两个能力之间无法相互增强;两个模型独立训练,能力分布割裂

学派 B:单一架构、单一 encoder(Chameleon-style)

Meta 的 Chameleon (2024-05) 是这条路线的代表——用一个统一的 vision encoder 既处理理解又处理生成。图像被 tokenize 成一系列 visual token,文本和图像 token 在同一序列里混合,整个序列由一个统一的 autoregressive Transformer 处理。

  • 优点:架构干净统一,理解与生成可以共享表征
  • 缺点:单一 encoder 必须同时满足理解所需的”高层语义”和生成所需的”低层像素细节”——两个需求天然冲突,常常顾此失彼

Chameleon 论文里报告,在多模态理解 benchmark 上 Chameleon 显著弱于专门的理解模型(LLaVA)。这就是单 encoder 方案的”双面诅咒”:为了能生成,模型必须保留低层细节;为了能理解,模型必须抽取高层语义;一个 encoder 难以兼顾两者

1.3 Janus 的解法:双 encoder + 单主干

Janus 给出的方案是一个非常优雅的折中:

视觉编码路径解耦——理解走一条 encoder 路径,生成走另一条 encoder 路径。两条路径汇入同一个统一 Transformer。

这相当于让两个目标各走各的最优路径,最后在一个共享的 LLM 主干上汇合。下面我们详细看这套设计如何实现。


二、Chameleon 单 encoder 的根本问题

要理解 Janus 的设计动机,必须先理解 Chameleon 为什么会失败。

2.1 理解任务需要什么样的视觉特征

对于”图里有什么”这类理解任务,模型需要的视觉特征是:

  • 高层语义:识别物体类别、场景类型、活动
  • 抽象表征:对纹理、颜色、视角变化不敏感
  • 与语言空间对齐:能与文本 embedding 做有意义的相似度计算

这种特征通常由 contrastive learning 训练的 encoder(如 CLIP、SigLIP)产生——它们学习”图文匹配”任务,输出的特征天然与语言对齐。

2.2 生成任务需要什么样的视觉特征

对于”画一只猫”这类生成任务,模型需要的视觉特征是:

  • 低层细节:纹理、颜色、阴影、像素级别的信息
  • 可逆:从特征能完整恢复出图像
  • 离散化:autoregressive 生成需要把图像离散成 token 序列

这种特征通常由 VQ-VAE 或 VQ-tokenizer(如 VQGAN、LlamaGen tokenizer)产生——它们把图像压缩成 8000-16384 个离散 codebook entries,可以无损或近无损还原。

单 encoder(Chameleon)vs 双 encoder(Janus):单 encoder 在理解任务上严重退化(MMBench 35.7 vs Janus 79.2),双 encoder 让两种能力同时达到 top-tier

2.3 两种特征的根本冲突

CLIP 类语义特征与 VQ 类像素特征是完全不同的数学对象

维度CLIP/SigLIP 特征VQ tokenizer 特征
训练目标image-text contrastivereconstruction (VQ-VAE)
表征性质continuous, semanticdiscrete, pixel-level
与语言对齐强(直接训练目标)弱(无对齐约束)
重构图像弱(高层抽象,丢细节)强(设计就是为了重构)
维度1024-2048离散 16384 词表

Chameleon 选择用 VQ tokenizer 作为单一 encoder——这样可以生成,但理解能力会因为缺少语义对齐而下降。Janus 论文展示了这个 trade-off 的具体数字:

  • Chameleon 7B 在 MMBench 上得分 35.7
  • 同等规模 LLaVA-1.5 7B 得分 64.3
  • 两者差距 28.6 个百分点——足以说明单 encoder 在理解任务上的损失

这就是 Chameleon 范式的根本局限——架构干净的代价是某一项能力大幅退化


三、Janus 核心设计:双路径视觉编码

3.1 整体架构

Janus 的架构由三部分组成:

  1. 理解路径(Understanding Encoder):用 SigLIP-L 处理输入图像,输出 576 个语义 token,经 MLP adapter 投影到 LLM embedding 空间
  2. 生成路径(Generation Encoder/Tokenizer):用 VQ tokenizer(基于 LlamaGen 训练的 VQ-VAE)把图像编码成离散 token 序列(典型 256 或 576 个 token)
  3. 统一 Transformer 主干:基于 DeepSeek-LLM 1.3B 的 decoder-only Transformer,同时接收文本 token、理解视觉 token、生成视觉 token

3.2 数据流

不同任务的数据流:

任务 A:图像理解(image → text)

  1. 图像 → SigLIP-L encoder → 576 个连续语义 token
  2. MLP adapter 投影到 LLM embedding 维度
  3. 文本 prompt token 与 vision token 拼接,送入 LLM
  4. LLM 自回归生成文本回答

任务 B:图像生成(text → image)

  1. 文本 prompt token 送入 LLM
  2. LLM 自回归生成 image VQ token 序列(典型 256 个)
  3. VQ tokenizer 的 decoder 把 image token 反编码为像素图像

任务 C:混合输入(看图说话生成新图、image-conditioned image gen 等)

  1. 输入图像 → SigLIP-L → 理解 token
  2. 文本 prompt + 理解 token → LLM
  3. LLM 输出文本与生成 token 混合序列
  4. 生成 token 部分 → VQ decoder → 图像输出
Janus 双路径架构:理解走 SigLIP 语义路径(576 连续 token),生成走 VQ tokenizer 离散路径(256 codebook indices),两条路径汇入同一个统一 Transformer

3.3 关键设计巧思

巧思 1:理解与生成使用不同的视觉 token 格式

  • 理解视觉 token 是连续的(直接是 SigLIP encoder 的输出特征)
  • 生成视觉 token 是离散的(VQ tokenizer 的 codebook index)

LLM 内部用不同的 embedding lookup 处理这两种 token:

  • 连续 token:通过 MLP adapter 直接映射到 LLM embedding 空间
  • 离散 token:通过专门的 image embedding table 映射

这相当于 LLM 有三种 token 类型:text token、understanding visual token(连续)、generation visual token(离散)。三种类型在同一个序列里混合处理,但 LLM 知道每种 token 的来源与去向。

巧思 2:理解路径与生成路径完全独立训练

SigLIP-L encoder 与 VQ tokenizer 是独立预训练的——前者用图文对比训练,后者用 VAE reconstruction 训练。两者之间没有共享参数,互不影响。

这保证了:

  • 理解能力受 SigLIP 的语义表征质量决定
  • 生成能力受 VQ tokenizer 的重构质量决定
  • 两者解耦,不会互相拖累

巧思 3:LLM 主干承担”模态对齐”工作

虽然两个 encoder 的输出特征空间完全不同,但都通过 adapter 投影到同一 LLM 的 embedding 空间。LLM 在训练中自然学到”如何使用这两种视觉信息”——它不需要知道它们的几何性质,只需要知道每种 token 对应什么任务。

这是一种很高级的关注点分离——视觉路径只负责”提取最适合下游任务的特征”,模态对齐工作完全交给 LLM。


四、训练策略:三阶段

Janus 沿用了 W6 DeepSeek-VL 的”三阶段渐进训练”思路,但具体配置不同:

4.1 Stage 1: Adapter 训练(visual ↔ language alignment)

  • 可训练:MLP adapter(理解路径)+ image embedding table(生成路径)
  • 冻结:SigLIP-L、VQ tokenizer、LLM 主干
  • 数据:~1M 图文对(理解)+ ~1M 文本-图像对(生成)
  • 目标:让两个 adapter 学会把视觉信息投影到 LLM 能理解的 token 空间

4.2 Stage 2: 统一预训练(unified pretraining)

  • 可训练:MLP adapter + image embedding + LLM 主干
  • 冻结:SigLIP-L、VQ tokenizer
  • 数据混合:50% 理解数据 + 30% 生成数据 + 20% 纯文本(保持语言能力)
  • 目标:让 LLM 同时学会”处理理解 token”与”产生生成 token”两种能力

4.3 Stage 3: SFT(监督微调)

  • 可训练:MLP adapter + image embedding + LLM 主干
  • 冻结:SigLIP-L、VQ tokenizer
  • 数据:精细整理的指令数据,涵盖 image captioning、VQA、text-to-image 各种任务
  • 目标:让模型适应具体下游任务的指令格式

4.4 三个阶段的训练成本分配

  • Stage 1:~1% 总训练计算(轻量、快速)
  • Stage 2:~85% 总训练计算(主要训练阶段)
  • Stage 3:~14% 总训练计算(精细调整)

这种”Stage 2 占大头”的配比与 W6 DeepSeek-VL 类似——保 LLM 能力的核心阶段是 unified pretraining,而非 SFT。


五、Janus-Pro:数据 + 模型 scaling

Janus V1 的 1.3B 模型在小规模上验证了双 encoder 设计的可行性。2025 年 1 月发布的 Janus-Pro(arXiv:2501.17811)在两个维度上做了系统升级:

5.1 模型规模升级

Janus-Pro 提供两个版本:

  • Janus-Pro 1B:与 V1 相同的 1.3B backbone(实际 1B 量级)
  • Janus-Pro 7B:升级到 7B backbone(基于更强的 DeepSeek-LLM 7B)

5.2 训练数据升级

V1 vs Pro 的数据规模对比:

数据类别Janus V1Janus-Pro
多模态理解数据~10M~80M(8× 扩展)
文本生图数据(真实图像)~25M~72M(3× 扩展)
文本生图数据(合成图像)0~72M(新增)

关键新增:Janus-Pro 引入了大规模合成图像数据——用现有 SOTA 生成模型(如 SD3、DALL-E 3)产出的高质量图文对作为训练数据。这种”用生成模型增强生成模型”的 bootstrap 思路与 W7 DeepSeek-Math 的合成证明数据、W8 DeepSeek-Prover 的 autoformalization 数据是同一种方法论。

5.3 训练策略优化

Janus-Pro 还做了一些 Stage 2 训练的微调:

  • 更长的 Stage 2 训练:从 V1 的 200B tokens 增加到 700B
  • 更精细的损失权重平衡:理解 loss 与生成 loss 的相对权重经过专门搜索
  • 加入 classifier-free guidance training:在生成路径上加入 CFG 训练样本,提升 text-to-image alignment

六、评测结果

6.1 Text-to-Image 生成 benchmark

Janus-Pro-7B 在文本生图主流 benchmark 上的成绩:

模型GenEvalDPG-Bench
Stable Diffusion 1.50.43
SDXL0.5574.65
DALL-E 3 (OpenAI)0.6783.50
SD3-Medium0.7484.08
Janus-Pro 1B0.7382.63
Janus-Pro 7B0.8084.19

关键观察:

  • GenEval 上 Janus-Pro-7B 拿到 80%,明显超过 DALL-E 3 的 67% 与 SD3 的 74%——这是开源统一多模态模型在文本生图任务上第一次明确跑赢专门的 diffusion 生成模型
  • Janus-Pro 1B 已经接近 SD3-Medium——小模型也有竞争力
  • DPG-Bench 上 Janus-Pro-7B 超过所有对比模型——长 prompt 跟随能力最强

6.2 多模态理解 benchmark

Janus-Pro-7B 在理解任务上的表现:

模型MMBenchMMMUPOPEMM-Vet
Chameleon 7B35.722.48.3
LLaVA-1.5 7B64.336.486.131.1
Qwen2-VL 7B80.554.162.0
Janus-Pro 7B79.241.087.450.0

关键观察:

  • MMBench 上 Janus-Pro-7B (79.2) 几乎与 Qwen2-VL 7B (80.5) 持平——这是”统一多模态” 第一次在理解任务上追平专门的理解模型
  • 大幅领先 Chameleon 7B(35.7 → 79.2)——说明双 encoder 解耦比单 encoder 强 2× 以上
  • POPE 上 87.4 是开源最佳之一——hallucination 控制能力强

6.3 综合评估

Janus-Pro-7B 是目前开源唯一一个在理解与生成两方面都达到 top-tier 水平的统一模型。其他对比:

  • Chameleon:架构统一,理解能力差
  • DeepSeek-VL(W6)/LLaVA:理解强,无生成能力
  • DALL-E 3/SD3:生成强,无理解能力
  • Janus-Pro:双 top-tier

这是双 encoder 解耦设计的最直接价值——用结构性解耦同时获得两种能力的”专门级”水平,而非妥协式融合。


七、与系列其他论文的”解耦”主线呼应

Janus 的”解耦”设计哲学不是孤例——回顾 DeepSeek 系列前几篇 paper,”识别隐性 trade-off → 用结构性解耦消除”是反复出现的主线:

论文隐性 trade-off解耦方案
W3 DeepSeekMoEexpert 容量 vs 路由组合空间fine-grained expert(专精)+ shared expert(通用)
W6 DeepSeek-VL全局语义 vs 局部细节SigLIP-L(语义)+ SAM-B(细节)
W7 V2/MLAattention 表达力 vs KV cachecontent 部分(latent 压缩)+ RoPE 部分(小维度)
W10 Aux-Loss-Freebalance vs specializationbias(balance)+ affinity(specialization)
W11 Janus(本文)理解 vs 生成SigLIP 路径(理解)+ VQ 路径(生成)

可以看到这是 DeepSeek 团队最稳定的工程哲学——当观察到一个组件需要同时承担多个目标且这些目标天然冲突时,不要试图用单一机制妥协,而要把不同目标拆到不同组件上各自优化。

这种哲学的本质是结构上的关注点分离(separation of concerns)——一个非常古老的软件工程原则,但在深度学习架构设计中并不总是被显式遵循。DeepSeek 团队反复用它作为破解性能瓶颈的工具,得到的累积效果是非常可观的。


八、局限与未来方向

Janus / Janus-Pro 是一项里程碑式的工作,但仍有几个明显局限:

  1. 训练成本较高:双 encoder + 大数据让 Janus-Pro-7B 的训练成本约为同规模 DeepSeek-VL 的 2-3 倍
  2. VQ tokenizer 限制图像质量上限:当前 VQ tokenizer 的重构 PSNR 约 21-25dB,仍低于 diffusion model 的连续表征。这导致 Janus 生成的图像在极精细细节(小字符、人脸)上不如 SD3
  3. 生成分辨率较低:V1 / Pro 都在 384×384 分辨率训练,输出图像质感受限。未来需要 dynamic tiling 或 patch 分级以支持更高分辨率
  4. 视频与 3D 生成未涉及:当前仅支持静态图像,扩展到视频需要额外的 temporal modeling

后续方向:JanusFlow 与统一生成

DeepSeek 在 2024-11 还发布了 JanusFlow(arXiv:2411.07975)——把 Janus 的 autoregressive 生成 head 替换为 rectified flow 生成 head。Rectified flow 是 diffusion 的简化版,理论上能产出更高质量的图像。JanusFlow 验证了”双 encoder 解耦 + 任意 generation head”的灵活性——理解路径不变,生成路径可以从 AR 换成 flow、换成 diffusion,模块化非常清晰。

这种”主干稳定 + 头部可替换”的设计是 Janus 系列后续演化的重要方向。可以预期未来会出现 Janus + better tokenizer、Janus + diffusion head、Janus + video generation 等多种变体,但双 encoder 解耦的核心设计会保持不变


写在最后

Janus 是 DeepSeek 多模态主线上最具方法论意义的一篇 paper。它不是单点性能突破(虽然 GenEval 80% 确实是突破),而是给出了一个统一多模态模型应该如何设计的清晰范式

  1. 不要追求架构的”绝对统一”:单一 encoder 听起来优雅,但面对天然冲突的两个任务(理解 vs 生成)会顾此失彼
  2. 解耦视觉编码路径:理解走语义 encoder,生成走 VQ tokenizer,两条路径互不干扰
  3. 保留主干统一:所有视觉信息最终汇入同一个 LLM,让模态对齐工作交给 LLM 主干自然学习

这套设计让 Janus-Pro-7B 在理解 benchmark 上接近 Qwen2-VL、在生成 benchmark 上超过 DALL-E 3——这是开源统一多模态模型的第一次”双向 top-tier”。

回到序言里 DeepSeek 论文四条主线,Janus 与 W6 DeepSeek-VL 并行存在——前者负责”理解 + 生成统一”,后者负责”纯理解优化”。两条路线分工明确,互相支撑。可以预期未来 DeepSeek 的多模态产品会逐步收敛到 Janus 的统一架构上,因为这是更通用的形态。

下一篇 W12 我们详解 DeepSeek-V3(arXiv:2412.19437)——这是 DeepSeek 通用 LLM 主线上的旗舰之作,把 W3 DeepSeekMoE、W7 MLA、W10 Aux-Loss-Free 三项支柱设计放大到 671B 总参 / 37B 激活的规模,同时引入 FP8 训练DualPipe 调度MTP (Multi-Token Prediction) 等多项硬件级与算法级工程优化,把训练成本压到震惊整个行业的 558 万美元水位。V3 是 DeepSeek 系列中工程深度最高、影响力最大的单篇 paper——下一篇我们会系统梳理它的每一项创新。


参考资料

  1. Wu et al., Janus: Decoupling Visual Encoding for Unified Multimodal Understanding and Generation, arXiv:2410.13848, 2024.
  2. Chen et al., Janus-Pro: Unified Multimodal Understanding and Generation with Data and Model Scaling, arXiv:2501.17811, 2025.
  3. JanusFlow: Harmonizing Autoregression and Rectified Flow for Unified Multimodal Understanding and Generation, arXiv:2411.07975, 2024.
  4. Janus GitHub repository:
  5. Chameleon Team, Chameleon: Mixed-Modal Early-Fusion Foundation Models, arXiv:2405.09818, 2024.
  6. Zhai et al., Sigmoid Loss for Language Image Pre-Training (SigLIP), arXiv:2303.15343, 2023.
  7. Sun et al., Autoregressive Model Beats Diffusion: LlamaGen (VQ Tokenizer), arXiv:2406.06525, 2024.
  8. Lu et al., DeepSeek-VL: Towards Real-World Vision-Language Understanding, arXiv:2403.05525, 2024.

Loading