# Janus:解耦视觉编码的统一多模态理解与生成 > **原文标题**:Janus: Decoupling Visual Encoding for Unified Multimodal Understanding and Generation > **arXiv**:[2410.13848](https://arxiv.org/abs/2410.13848) | **发布**:17 Oct 2024 > **作者/机构**:Chengyue Wu、Xiaokang Chen 等,DeepSeek-AI(深度求索),联合香港大学、北京大学 > **原文 PDF**:[02-Janus-2410.13848.pdf](./02-Janus-2410.13848.pdf) ## 一、摘要(全文翻译) 本文提出 Janus,一个统一了多模态理解与生成的自回归框架。以往研究通常让同一个视觉编码器同时承担这两项任务,例如 Chameleon。然而,由于多模态理解与生成所需的信息粒度不同,这种做法会导致性能次优,在多模态理解上尤为突出。为解决这一问题,我们将视觉编码解耦为相互独立的通路,同时仍使用单一、统一的 Transformer 架构进行处理。这种解耦不仅缓解了视觉编码器在理解与生成两种角色之间的冲突,还提升了框架的灵活性。例如,多模态理解组件与生成组件都可以独立选择最适合自身的编码方法。实验表明,Janus 超越了以往的统一模型,并达到或超过了任务专用模型的性能。Janus 的简洁性、高灵活性与有效性,使其成为下一代统一多模态模型的有力候选。 ## 二、核心贡献 1. **解耦视觉编码的统一框架**:把视觉编码拆成理解与生成两条独立通路,再由同一个自回归 Transformer 处理,以解决单一编码器兼顾两任务导致性能次优的问题;模型仅用交叉熵损失,无需特殊注意力掩码。 2. **阐明冲突根源并给出证据**:理解需高层语义表征,生成需细粒度空间与纹理表征,共用同一表征空间必然折中;消融中仅做理解训练的 Exp-C 显著优于同等编码器的统一训练 Exp-B,证明共享编码器牺牲了理解能力。 3. **1.3B 取得领先**:在 MMBench、SEED-Bench、POPE 上得 69.4、63.7、87.0,超过 7B 的 LLaVA-v1.5 与 Qwen-VL-Chat;MSCOCO-30K FID 8.53、GenEval 总体 61%,超过 DALL-E 2 与 SDXL。 4. **统一训练几乎不损害单任务**:统一训练(Exp-D)与纯理解(Exp-E)、纯生成(Exp-F)性能相当;两侧编码器可各自升级,且易扩展到新模态。 ## 三、方法与技术要点 ### 3.1 架构:两条视觉通路 + 一个统一 Transformer 三类输入分别独立编码,再交给同一个自回归 Transformer:文本用 LLM 内置分词器转成离散 ID;多模态理解用 SigLIP-Large-Patch16-384 提取高维语义特征,经理解适配器(两层 MLP)映射进 LLM 输入空间;视觉生成用 LlamaGen 的 VQ 分词器把图像转成离散 ID,由生成适配器把码本嵌入映射进同一空间(两路特征均先展平为一维)。文本预测复用内置预测头,图像预测用随机初始化的预测头,无需专门设计的注意力掩码。 解耦动因:理解需高层语义并做语义推理,生成需细粒度空间结构与纹理,两者共用同一表征空间必然冲突折中,这正是以往统一模型理解能力落后于专用模型的原因。 ### 3.2 训练流程:三阶段 Stage I 冻结视觉编码器与 LLM,只训练两个适配器与图像预测头;Stage II 解冻 LLM 做统一预训练,混用纯文本、理解与生成数据,受 PixArt 启发先用 ImageNet-1k 学基础像素依赖、再用通用文生图数据提升开放域生成;Stage III 监督微调全部参数(生成编码器除外),只监督回答、掩掉 system 与 user 提示,且不按任务分别微调。 各阶段超参见 Table 1: | 超参 | Stage I | Stage II | Stage III | |---|---|---|---| | 学习率 | $1.0\times 10^{-3}$ | $1\times 10^{-4}$ | $2.0\times 10^{-5}$ | | LR 调度 | Cosine | Constant | Constant | | 权重衰减 | 0.0 | 0.0 | 0.1 | | 梯度裁剪 | 1.0 | 1.0 | 1.0 | | 优化器 | AdamW ($\beta_1=0.9,\beta_2=0.95$) | 同左 | 同左 | | Warm-up 步数 | 300 | 5,000 | 0 | | 训练步数 | 10,000 | 180,000 | 24,000 | | 批大小 | 256 | 512 | 256 | | 数据比例(理解:文本:生成) | $1:0:1$ | $2:3:5$ | $7:3:10$ | ### 3.3 训练目标 交叉熵损失: $$ \mathcal{L}=-\sum_{i=1}\log P_{\theta}(x_{i}|x_{