MM-DiT — 두 모달리티를 동등하게 다루는 Diffusion Transformer
이전 노트에서 남긴 찝찝함 — 이미지/오디오가 주(主), 텍스트가 부(副)인 구조 — 을 정면으로 다루는 MM-DiT 정리. Stable Diffusion 3 논문(Esser et al., Scaling Rectified Flow Transformers for High-Resolution Image Synthesis, 2024)에서 제안됐다.
기존의 DiT 구조는 2가지의 모달리티에 계층이 존재했다.
- 이미지, 오디오를 메인으로 두고,
- 텍스트를 보조 힌트로 사용.
이렇게 되면 2개의 모달리티의 깊이가 달라서, Deeper Level의 Alignment가 잘 안 되는 문제가 생긴다.
그러나 MM-DiT는 2개의 모달리티를 완벽하게 동등한 비중으로 다루게 된다.
Architecture
- Stream을 2개로 쪼개자!
- Track A: Noise Token이 지나가는 길 (이미지/오디오)
- Track B: Text Token이 지나가는 길 (텍스트)
- 이때 텍스트는 힌트로 쓰이고 버려지지 않고, 이미지랑 똑같이 블록을 통과할 때마다 스스로 update된다.
- Joint Attention: 서로 다른 도로를 달리는 2개를 합치자!
- 이미지/텍스트는 성질이 달라서, 독립적인 Linear 신경망을 거쳐 QKV 제작
- 이미지 QKV와 텍스트 QKV를 Sequential하게 이어붙이기 (매우 큰 공간)
→ 이 공간 안에서 토큰들이 서로 Attention (픽셀, 텍스트와의 관계 학습)
“사람들 4000명을 앉혀놓고, 전부 떠들게 만들기” - 정보를 가지게 된 토큰들을 다시 2개의 갈래로 나누기
- 분리된 토큰들이 독립적인 MLP를 거쳐 최종적인 결과를 내리고, 다음 블럭으로 넘어가기

한 블록의 흐름. 두 트랙은 가중치(adaLN, QKV, MLP)를 따로 갖고, attention 한 번만 같은 방에서 한다.
Problems
뭔가 데이터가 엄청나게 커지게 되면, Joint Attention이 엄청나게 느려질 것 같은 예감.
- Transformer Attention 연산은 \(\mathcal{O}(N^2)\), 즉 데이터 길이의 제곱에 비례해 계산량이 늘어난다.
- 기존 방식은 Noise Token이 Text를 참고만 하니까, \(\mathcal{O}(N^2)\).
- MM-DiT는 전부 다 몰아넣고 Attention을 실행하니까, \(\mathcal{O}((N_{text}+N_{image})^2)\)
- 계산량이 매우매우 커진다.
- Attention 계산에서 OOM 에러
- Modality Imbalance하면 효율이 떨어진다.
ex. 텍스트 100개, 이미지 4만 개 → 이미지-이미지 간의 상호작용만 여러 개.
아직까지도 안 풀린 숙제로 남아 있다.
- Flash Attention 같은 최적화 기술을 영끌해서 적용하거나,
- 3개의 블럭에서만 Joint Attention하고, 나머지는 분리해서 연산하는 등…
참고 자료
- P. Esser et al., Scaling Rectified Flow Transformers for High-Resolution Image Synthesis, 2024 — MM-DiT 원 논문(Stable Diffusion 3).
- W. Peebles, S. Xie, Scalable Diffusion Models with Transformers, ICCV 2023 — 출발점인 DiT.
- H. K. Cheng et al., MMAudio: Taming Multimodal Joint Training for High-Quality Video-to-Audio Synthesis, 2024 — 오디오에서의 multimodal joint attention.
- black-forest-labs/flux — double/single-stream 블록 구현.