Files
note_sync/大模型/deepseek/05-多模态/07-JanusFlow-2411.07975_abstract.md
T

144 lines
12 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# JanusFlow:以整流流调和自回归,统一多模态理解与生成
> **原文标题**:JanusFlow: Harmonizing Autoregression and Rectified Flow for Unified Multimodal Understanding and Generation
> **arXiv**:[2411.07975](https://arxiv.org/abs/2411.07975) | **发布**:12 Nov 2024(最后修订 24 Mar 2025)
> **作者/机构**:Yiyang Ma、Xingchao Liu、Xiaokang Chen、Wen Liu、Chengyue Wu 等;DeepSeek-AI(深度求索),并联合北京大学、香港大学、清华大学
> **原文 PDF**:[07-JanusFlow-2411.07975.pdf](./07-JanusFlow-2411.07975.pdf)
## 一、摘要(全文翻译)
我们提出 JanusFlow,一个强大的框架,它在单一模型中统一了图像理解与图像生成。JanusFlow 引入了一种极简的架构,将自回归语言模型与整流流(rectified flow)——生成建模领域的最先进方法——集成在一起。我们的关键发现是:整流流可以直接在大型语言模型框架内训练,无需任何复杂的架构改动。为了进一步提升统一模型的性能,我们采用了两项关键策略:(i)解耦理解编码器与生成编码器;(ii)在统一训练过程中对齐二者的表示。大量实验表明,JanusFlow 在各自领域内达到了与专用模型相当甚至更优的性能,同时在标准基准上显著优于现有的统一方法。这项工作朝着更高效、更通用的视觉-语言模型迈出了一步。
## 二、核心贡献
1. **极简的「LLM + 整流流」架构**:仅用轻量生成编解码器把 SDXL-VAE 隐空间接入 LLM,LLM 本身即速度场网络;由此证明整流流无需架构改造即可在 LLM 内训练,也避免了「LLM 只出条件、扩散模型画图」的能力割裂。
2. **解耦理解与生成编码器**:理解侧用预训练 SigLIP-Large-Patch/16,生成侧用随机初始化的 ConvNeXt 编解码器以消除任务干扰;改用共享编码器后,POPE 由 84.73 降至 78.13、VQAv2 由 69.20 降至 53.94。
3. **表示对齐正则化(REPA)**:把理解编码器对真实图像的特征与 LLM 中间层特征做余弦相似度对齐,同时提升图像质量与语义一致性(FID 19.84→17.61,CLIP 24.94→26.40)。
4. **三阶段训练与数据配比**:先适配新模块,再统一预训练(前期偏理解、后期加重生成),最后 SFT 并解冻 SigLIP。
5. **1.3B 规模上的强结果**:GenEval 0.63、DPG-Bench 80.09%、MJHQ FID-30k 9.51 超过 SDXL、DALL-E 2;MMBench 74.9、SEED 70.5、GQA 60.3 超过 LLaVA-v1.5。
## 三、方法与技术要点
### 3.1 背景
**多模态 LLM**:对离散 token 序列 $x=(x_1,\cdots,x_\ell)$ 按最大似然自回归建模
$$
\log P_{\theta_{LLM}}(x)=\sum_{i=0}^{\ell-1}\log P_{\theta_{LLM}}(x_{i+1}\mid x_1,\dots,x_i)
$$
处理视觉输入时外接视觉编码器与投影层,把图像特征映射进词嵌入空间(如 LLaVA 用 CLIP 编码器)。
**整流流**:对来自未知分布 $\pi_1$ 的连续数据点,学习定义在 $t\in[0,1]$ 上的常微分方程 $\frac{{\rm d}z_t}{{\rm d}t}=v_{\theta_{NN}}(z_t,t),\ z_0\sim\pi_0$($\pi_0$ 为标准高斯噪声),训练时让速度场拟合两分布采样点间的线性路径方向:
$$
\min_\theta \mathbb{E}_{t\sim P(t),z_0\sim\pi_0,x\sim\pi_1}\left[\left\|v_{\theta_{NN}}(z_t,t)-(x-z_0)\right\|^2\right],\quad z_t=tx+(1-t)z_0
$$
容量足够且目标最优时,速度场把基分布输运到 $\pi_1$;相比扩散,它概念更简洁、采样更快、经验性能更好。
### 3.2 统一框架:同一 LLM 内的两条路径
**理解路径**:图像经编码器 $f_{enc}$ 得特征图,展平后由线性层投为嵌入序列,与文本 token 嵌入拼接后送入 LLM 做下一 token 预测;图像前后加 `|BOI|`/`|EOI|` 以便定位。
**生成路径**:以文本为条件在 SDXL-VAE 隐空间生成:噪声 $z_0$ 经生成编码器 $g_{enc}$ 变为嵌入序列并拼接时间嵌入 $t$,LLM 输出的速度经生成解码器 $g_{dec}$ 还原为隐空间速度,用标准欧拉求解器迭代
$$
z_{t+{\rm d}t}=z_t+v(z_t,t)\,{\rm d}t
$$
把输入中的 $z_0$ 换成 $z_{{\rm d}t}$ 迭代至 $z_1$,再由 VAE 解码出图像;质量由无分类器引导(CFG)提升:$v(z_t,t)=w\,v(z_t,t\mid x^{con})+(1-w)\,v(z_t,t\mid\varnothing)$。与采用各种注意力掩码策略的前作不同,作者发现**因果注意力已经足够**,替代掩码在初步实验中并无收益。
### 3.3 解耦视觉编码器
此前统一工作让两任务共用编码器(Transfusion 共享 U-Net/线性编码器,Show-o 用 MAGVIT-v2 离散 token),但共享设计已被证明次优。JanusFlow 因此解耦:理解侧 $f_{enc}$ 用预训练 SigLIP-Large-Patch/16 取语义特征;生成侧 $g_{enc}$(2×2 patchify + 两个 ConvNeXt 块 + 线性层)与 $g_{dec}$(两个 ConvNeXt 块 + pixel-shuffle 上采样 + 线性层)从零初始化,其间加长跳跃连接,新增模块共约 70M 参数。
### 3.4 三阶段训练
1. **阶段一·适配新模块**:只训线性层与生成编解码器,使其与预训练 LLM、SigLIP 对齐,为新模块做初始化。
2. **阶段二·统一预训练**:除视觉编码器外全网训练,混合理解、生成与纯文本数据;先给理解更高比例,再提高生成占比以满足扩散式模型的收敛需求。
3. **阶段三·SFT**:用对话、任务型问答与高质量文生图样本做指令微调,并解冻 SigLIP。
超参数:学习率 $1.0\times10^{-4}$/$1\times10^{-4}$/$2.0\times10^{-5}$,常数调度与 AdamW($\beta_1=0.9,\beta_2=0.95$),梯度裁剪 1.0;步数 10,000/390,000/26,000,批大小 512/512/256;数据配比(理解:生成:纯文本)50:50:0、14:80:6、21:70:9,阶段二前 10,000 步先用 30:50:20。
### 3.5 训练目标
数据统一写成 $x=(x^{con},x^{res})$(条件与响应)。理解任务只用响应 token 算自回归损失:
$$
\mathcal{L}_{AR}(\theta)=-\mathbb{E}_{x\sim\mathcal{D}_{und}}\left[\sum_{i=\ell_{con}}^{\ell-1}\log P_\theta(x_{i+1}\mid x_1,\dots,x_i)\right]
$$
生成任务用整流流损失,时间分布沿用 Stable Diffusion 3 的 logit-normal,并随机丢弃 10% 文本提示以支持 CFG:
$$
\mathcal{L}_{RF}(\theta)=\mathbb{E}_{x\sim\mathcal{D}_{gen},t\sim P(t),z_0\sim\mathcal{N}(0,I)}\left[\left\|v_\theta(z_t,t\mid x^{con})-(x^{res}-z_0)\right\|^2\right],\quad z_t=tx^{res}+(1-t)z_0
$$
**表示对齐正则项**把理解编码器对真实图像的特征与 LLM 中间表示对齐:
$$
\mathcal{L}_{REPA}(\theta,\varphi)=-\mathbb{E}_{x\sim\mathcal{D}_{gen}}\left[\mathrm{sim}\left(\mathrm{stop\_grad}(f_{enc}(x^{res})),\;h_\varphi(q_\theta(z_t))\right)\right]
$$
其中 $q_\theta(z_t)$ 取 LLM 第 6 个 block 之后、输入为带噪 $z_t$ 时的特征,$h_\varphi$ 为三层 MLP,相似度取逐元素余弦相似度均值,梯度不回传理解编码器;作者令 $H_{gen}=H_{im}$、$W_{gen}=W_{im}$ 以便与特征图对齐。其动机是让 LLM 面对噪声输入时的内部特征空间贴近语义特征空间,使推理时从新噪声也能生成语义正确的图像。汇总:理解用 $\mathcal{L}_{AR}$,生成用 $\mathcal{L}_{RF}+\mathcal{L}_{REPA}$,贯穿各训练阶段。
### 3.6 实现与数据
骨干为增强版 DeepSeek-LLM(1.3B、24 层、序列长 4096),理解与生成均为 384 分辨率;训练时把多条序列打包到 4096。理解数据缩放长边后补边成正方形以保留信息,生成数据缩放短边后随机方形裁剪以规避补边伪影;对齐正则用 EMA(0.99)保稳定。基于 HAI-LLM 与 PyTorch,用 NVIDIA A100 训练,每个模型约需 1,600 A100 GPU 天。数据见附录 B:理解侧用 DetailedCaption、SAM、arXivQA、DenseFusion-1M、MMSci、PixelProse、重标注 LAION-Aesthetics 与 Open Images V4、ShareGPT4V、WikiHow、WIT 等;生成侧用重标注 LAION-Aesthetics、DALL-E 3 1M、SAM、Open Images V4、Megalith-10M、YFCC-15M、PixelProse、JourneyDB 及 200 万自有数据(25% 为单句描述)。
## 四、主要实验结果
| 基准 / 任务 | JanusFlow(1.3B) | 对比对象 | 说明 |
|---|---|---|---|
| GenEval 总体 ↑ | 0.63 | SDXL 0.55、Janus 0.61、Show-o 0.53、Transfusion 0.63、DALL-E 3 0.67 | 超过 DALL-E 2(0.52)与既往统一模型;Pos. 0.53、Color Attri. 0.42 突出 |
| DPG-Bench 总体 ↑ | 80.09 | PixArt-Σ 80.54、Emu3-Gen 80.60、SDXL 74.65 | 表中唯一统一模型;Global 87.03、Other 88.10 领先 |
| MJHQ FID-30k ↓ | 9.51 | Janus 10.10、Show-o 15.18、VILA-U 384 7.69 | 1.3B 规模内最佳,优于自回归式的 Janus |
| MMBench dev ↑ | 74.9 | Janus 69.4、LLaVA-v1.5 64.3、Qwen-VL-Chat 60.6 | 同规模及更大规模理解专用模型中领先 |
| SEED ↑ | 70.5 | Janus 63.7、Emu3-Chat 68.2 | 同上 |
| GQA ↑ | 60.3 | Janus 59.1、LLaVA-v1.5 62.0 | 略低于 7B 的 LLaVA-v1.5 |
| POPE ↑ | 88.0 | Janus 87.0、MobileVLM-V2 84.7 | 最高 |
| VQAv2 test ↑ | 79.8 | Janus 77.3、LLaVA-v1.5 78.5 | 超过 7B 的 LLaVA-v1.5 |
| MME-P ↑ | 1333.1 | Janus 1338.0、LLaVA-v1.5 1510.7 | 略低于 Janus 与 7B 模型 |
| MMMU ↑ / MM-Vet ↑ | 29.3 / 30.9 | Janus 30.5 / 34.3、Qwen2-VL 54.1 / 62.0 | 均未超 Janus,复杂推理与开放对话是短板 |
| ChartQA ↑ / TextVQA ↑ | 64.6 / 55.5 | Qwen-VL-Chat 66.3 / 61.5、Emu3-Chat 68.6 / 64.7 | 图表与文字识别落后于更大模型 |
消融实验(256×256、统一预训练 50,000 步;FID 为 MJHQ FID-10k,CFG $w=7.5$、30 步;† 表示冻结):
| Exp. | 设置 | POPE ↑ | VQAv2 ↑ | GQA ↑ | FID ↓ | CLIP ↑ |
|---|---|---|---|---|---|---|
| A | 无 REPA,SigLIP 理解 + VAE†+ConvNeXt 生成 | 82.40 | 69.62 | 54.43 | 19.84 | 24.94 |
| B | 有 REPA,两任务共享 VAE†+ConvNeXt | 78.13 | 53.94 | 44.04 | 18.05 | 26.38 |
| C | 有 REPA,独立 VAE+ConvNeXt 理解 + VAE†+ConvNeXt 生成 | 75.30 | 55.41 | 44.44 | 17.53 | 26.32 |
| D | 仅理解(SigLIP) | 85.03 | 69.10 | 54.23 | — | — |
| E | 仅生成(VAE†+ConvNeXt) | — | — | — | 16.69 | 26.89 |
| F | **最终配置**:有 REPA,SigLIP + VAE†+ConvNeXt | 84.73 | 69.20 | 54.83 | 17.61 | 26.40 |
生成侧几乎全面领先:GenEval 0.63 与 7.3B 的 Transfusion 持平并超过 SDXL,MJHQ FID-30k 9.51 为 1.3B 规模最优;理解侧 MMBench、SEED、GQA、POPE、VQAv2 均为同规模最优,并超过若干 7B 级专用模型。差距集中在复杂推理与开放对话(MMMU、MM-Vet)及高分辨率细节任务(MME-P、ChartQA、TextVQA)。消融显示 REPA 同时提升 FID 与 CLIP,共享编码器明显变差,而最终配置与任务专用模型(Exp. D/E)差距很小。附录补充:256 分辨率模型理解指标略低,但 GenEval(0.70 对 0.63)与 DPG-Bench(81.23 对 80.09)反而更好,作者归因于低分辨率下语义操控更精确。
## 五、结论、局限与影响
- **结论**:JanusFlow 在统一框架内调和了自回归与整流流,用于多模态理解与生成,性能与任务专用模型相当;作者认为两种异构架构的成功整合为统一模型研究开辟了新可能。
- **局限性**:论文未明确说明(正文与结论均无专门的局限讨论)。可观察到:复杂推理基准(MMMU 29.3、MM-Vet 30.9)未超过前代 Janus;训练成本约 1,600 A100 GPU 天;256 与 384 分辨率在理解与指令遵循之间存在权衡。
- **影响**:给出「整流流可在 LLM 框架内直接训练、无需架构改动」的结论,把实现门槛降到「轻量编解码器 + LLM」,解耦编码器与表示对齐成为可复用的设计配方。
## 六、关键术语对照表
| English | 中文 |
|---|---|
| Rectified Flow | 整流流 |
| Autoregressive (AR) | 自回归 |
| Unified Multimodal Understanding and Generation | 统一多模态理解与生成 |
| Multimodal Large Language Model (MLLM) | 多模态大语言模型 |
| Decoupled Encoders | 解耦编码器 |
| Representation Alignment Regularization (REPA) | 表示对齐正则化 |
| Classifier-Free Guidance (CFG) | 无分类器引导 |
| Velocity Field / Velocity Vector | 速度场 / 速度向量 |
| Latent Space | 隐空间 |
| VAE (Variational Autoencoder) | 变分自编码器 |
| Long Skip Connection | 长跳跃连接 |
| Causal Attention | 因果注意力 |
| Exponential Moving Average (EMA) | 指数滑动平均 |
| Supervised Fine-Tuning (SFT) | 有监督微调 |
| Fréchet Inception Distance (FID) | 弗雷歇初始距离 |