JanusFlow 实现详解

JanusFlow 是一个结合 整流流(Rectified Flow)任务解耦策略 的多模态统一框架,以下是其实现的关键内容。


1. 架构设计

(1) 双任务解耦编码器

image

(2) 整流流生成模块

通过建模时间上的微分方程逐步将高斯噪声转换为目标数据分布:

(3) 轻量化自回归语言模型


2. 训练流程

阶段 1:随机初始化组件的适配

阶段 2:联合预训练

阶段 3:监督微调


3. 训练目标

(1) 自回归损失(理解任务)

[
L_{AR}(\theta) = - \mathbb{E}{x \sim D{und}} \left[ \sum_{i=\ell_{con}}^{\ell-1} \log P_\theta(x_{i+1} | x_1, \ldots, x_i) \right]
]

(2) 整流流损失(生成任务)

[
L_{RF}(\theta) = \mathbb{E}{x \sim D{gen}, t \sim P(t), z_0 \sim \mathcal{N}(0, I)} \left[ | v_\theta(z_t, t | x_{con}) - (x_{res} - z_0) |^2 \right]
]

(3) 表示对齐损失

[
L_{REPA}(\theta, \phi) = - \mathbb{E}{x \sim D{gen}} \left[ \text{sim}(\text{stop_grad}(f_{enc}(x_{res})), h_\phi(q_\theta(z_t))) \right]
]
其中,(\text{sim}(\cdot, \cdot)) 表示余弦相似度。

(4) 总损失

理解任务使用:
[
L_{AR}
]
生成任务使用:
[
L_{RF} + L_{REPA}
]


4. 性能与创新

  1. 生成任务:通过整流流实现高质量的图像生成,性能超越传统扩散模型。
  2. 理解任务:解耦策略避免任务冲突,显著提升了多模态理解性能。
  3. 轻量化设计:仅使用 1.3B 参数即可超越许多更大规模模型。