01
60 秒回答模板
可以从先分开、再交互、最后只回到图像去噪目标来回答。MMDiT 面对文本和图像时,一般会把文本编码器输出的语义 token 与 VAE/latent patch 得到的图像 token 分成两路处理:文本路和图像路有各自的线性投影、QKV 投影、归一化、AdaLN/门控调制以及 MLP,这样不会把离散语义序列和连续空间 latent 强行塞进同一套参数里。真正的融合发生在注意力层:两路先分别算出 Q、K、V,然后在序列维度上拼接,做一次联合 self-attention,注意力矩阵里同时包含文本到文本、图像到图像、文本到图像、图像到文本四类关系。计算完再把输出拆回文本流和图像流,各自经过残差和前馈更新。所谓单流阶段,是指在若干双流 block 后,把文本 token 和图像 token 放进同一条 Transformer 主干里用共享参数继续建模;但模型仍会通过位置编码、模态标识、mask 或最终只读取图像 token 来区分谁是条件、谁是生成对象。
考点 总体定位
主线 输入如何组织
易错点 把 MMDiT 说成文本和图像直接拼接后进 Trans…
02
深入解析
01 总体定位
MMDiT 可以理解为把 DiT 从单一图像 latent 建模扩展到文本-图像联合建模的结构。传统 U-Net 文生图常见做法是图像特征作为主干,文本通过 cross-attention 注入;MMDiT 更像是把文本 token 和图像 token 都交给 Transformer 的注意力机制,让两类 token 在同一层中直接建立关系。
02 输入如何组织
文本侧通常来自预训练文本编码器,输出的是一串语义 token,也可能带有 pooled embedding 作为全局条件。图像侧不是原始像素,而是扩散模型当前时间步的 noisy latent,经过 patch embedding 后变成图像 token。两者在维度、长度、语义密度和位置结构上都不同,所以进入主干前会各自做投影。
03 双流如何处理
双流指的是文本流和图像流在每个 block 内保留各自的参数路径。文本 token 用文本侧的 LayerNorm/AdaLN、QKV 投影、输出投影和 MLP;图像 token 用图像侧的对应模块。这样做是因为文本表示偏语义、离散、顺序关系强,图像 latent 偏连续、空间结构强,完全共享参数会让学习难度变高。
04 融合发生在哪里
融合通常发生在 attention 内部。文本流先算出 Q_text、K_text、V_text,图像流算出 Q_img、K_img、V_img,然后把两侧的 Q 拼起来、K 拼起来、V 拼起来,做一次完整的 self-attention。这个注意力矩阵不是单向的 cross-attention,而是包含文本内部关系、图像内部关系、文本关注图像、图像关注文本四类关系。
05 注意力之后如何拆回
联合 attention 得到的输出会按原来的 token 区间拆回文本输出和图像输出。随后两路分别走自己的残差连接、门控和前馈网络。这个设计兼顾了两点:交互时是联合的,参数更新时仍保留模态差异。MMDiT 的 multi-modal 不是完全共享所有参数,而是在注意力交互处打通信息通路。
06 单流阶段的意义
单流阶段指在某些 MMDiT 类架构中,前面若干层先用双流 block 做模态对齐,后面再把文本和图像 token 放入统一 Transformer 主干,用共享参数继续建模。这样可以降低后段结构复杂度,并让已经对齐的 token 在更深层进行全局混合。即便进入单流,模型也仍然保留模态来源和最终输出目标。
07 文本如何控制去噪
在扩散或 rectified flow 生成中,模型每个时间步拿到的是带噪图像 latent、时间步条件和文本条件,目标是预测噪声、速度场或从噪声走向数据的更新方向。文本 token 通过联合 attention 影响图像 token 的上下文表示,时间步和全局文本条件又通过 AdaLN、scale-shift、gate 等方式调制 block 激活。
03
易错点
- 把 MMDiT 说成文本和图像直接拼接后进 Transformer,忽略了模态专属投影、归一化、调制和 MLP。
- 把 MMDiT 的融合理解成传统 cross-attention,漏掉联合 self-attention 中双向信息流的特点。
- 认为单流阶段意味着文本和图像完全没有区别,忽略了位置编码、模态来源、mask 和输出目标仍在保留身份。
- 只讲网络结构,不讲扩散任务本身,导致没有解释文本如何影响图像 latent 的噪声或速度预测。
- 把文本 token 当成最终生成对象。实际输出通常只作用于图像 latent,文本主要是条件约束。
- 没有说明为什么要双流:双流的动机是处理文本语义序列和图像连续空间 latent 的分布差异。
04
面试官追问
MMDiT 和普通 cross-attention 文生图结构最大的区别是什么?
普通 cross-attention 通常以图像特征为主干,文本作为外部条件被图像查询;MMDiT 则把文本 token 和图像 token 放进同一个联合注意力计算中,形成文本-文本、图像-图像、文本-图像、图像-文本的完整交互。区别不只是实现形式,而是信息流从偏单向条件注入变成更充分的双向 token 交互。
为什么文本和图像不直接共享同一套 QKV 和 MLP?
因为两种模态的分布差异很大。文本 token 表达概念、关系、修饰语和语序,图像 latent token 表达空间位置、局部纹理和连续视觉结构。各自保留投影和 MLP 能让模型用专门参数处理不同模态,再在 attention 层对齐语义,这比一开始完全共享更稳定。
联合 attention 后为什么还要拆回双流?
拆回双流是为了让交互结果回到各自模态的更新路径中。attention 负责跨模态信息交换,后续的残差、调制和 MLP 负责模态内的非线性变换。这样既能融合,又不会让文本和图像的表示角色混乱。
单流阶段有什么好处?
单流阶段适合在前面已经完成初步模态对齐之后,用共享 Transformer 继续做全局建模。它能加强深层语义与空间 token 的混合,也能简化后续结构。需要补充的是,单流不是取消模态边界,最终模型仍然知道哪些 token 是文本条件、哪些 token 是图像 latent。
文本条件具体怎样影响图像噪声预测?
图像 token 在联合 attention 中会根据文本 token 的 K/V 获取语义信息,例如对象、属性、风格、位置关系等;时间步和全局条件还会通过 AdaLN 或门控改变 block 的激活强度。最后图像 token 的表示被输出头转换为噪声或速度预测,因此 prompt 会改变每一步去噪的方向。