Sora와 Stable Diffusion 3의 기반, Diffusion Transformer를 소개합니다. # 28 위클리 딥 다이브 | 2024년 2월 28일 에디터 배니 |
|
|
💡 이번주 뉴스레터에는 이런 내용을 담았어요!
- Stable Diffusion 3의 공개 소식와 활용 방법 소식을 전합니다.
- Stable Diffusion 3와 Sora에 활용된 Diffusion Transformer 내용을 정리했습니다.
- Diffusion Transformer를 이해하기 위한 Patchify와 adaLN에 대해서 설명합니다.
|
|
|
Diffusion과 Transformer가 만났다 |
|
|
안녕하세요, 에디터 배니입니다.
벌써 2024년도 2월이 끝나가고 3월을 향해 가고 있습니다. 2024년이 아직 두 달밖에 지나지 않았는데, 그 사이에 놀랄 만한 소식들이 많이 들려옵니다. 지난주에는 OpenAI에서 Sora를 공개하더니, 딱 일주일만에 stability.ai 에서 Stable Diffusion 3를 공개했습니다.
Stable Diffusion은 Midjourney와 함께 양대 산맥을 이루는 Text-to-Image 모델입니다. 생성형 AI(Generative AI)의 신호탄을 쏘아 올린 모델이라고도 할 수 있습니다. stability.ai는 모델의 규모는 800M부터 8B 파라미터를 제공하고 있고 사용자의 요구에 충족할 수 있는 다양한 모델들을 제공하고자 한다고 밝혔습니다. (현재 Stable Diffusion 3을 활용해보기 위해서는 대기자 명단에 등록해야 합니다. 실제로 활용해보고 싶으신 분들이 있다면 🔗여기를 확인해주세요.)
아직 기술 보고서를 공개하지 않은 만큼 Stable Diffusion 3에 대한 구체적인 정보를 알기는 어렵습니다. 지금까지 공개한 바에 따르면, Stable Diffusion은 Diffusion Transformer와 Flow Matching 기법을 결합한 모델입니다. 이중 Diffusion Transformer, 줄여서 DiT라고도 하는데요. 어디서 들어보지 않으셨나요? 지난주 뉴스레터에서 소개한 Sora에서도 짤막하게 언급했던 모델인데, 요즘 생성 모델에서 심심치 않게 보입니다. 이번주 뉴스레터에서는 DiT를 소개합니다. |
|
|
🤔 연구진은 왜 Transformer 구조를 택했을까?
Transformer 모델은 뛰어난 Scalability(확장성)를 가지고 있습니다. Scalability가 뛰어나다는 것은 다양한 종류의 데이터에 대해 적용이 가능하고, 모델의 크기에 따라 성능이 (어느 정도) 비례하게 상승한다는 것을 의미합니다. 즉, 다양한 데이터의 특성을 결합하는 등 모델을 확장하는 데 유리합니다.
이러한 특성 덕분에 Transformer 구조는 분야를 막론하고 현대적인 AI 아키텍처에 성공적으로 녹아들었습니다. 많은 연구가 이뤄진 만큼, 만약 Transformer가 U-Net 구조를 대체한다면 다양한 기반 연구를 활용할 수 있다는 이점도 누릴 수 있을 것입니다. |
|
|
U-Net을 DiT 블록으로 대체한 DiT의 학습 구조
출처: Scalable Diffusion Models with Transformers (Peebles & Xie, 2022)
연구진은 LDM의 구조에 DiT 블록을 추가하여 위와 같이 모델을 수정했습니다. 잠재 공간에 인코딩된 노이즈 데이터(Noised Latent)가 입력값으로 들어오면, Patchify의 과정을 거칩니다. Transformer 구조를 활용하기 위해서는 토큰이 시퀀스처럼 나열된 형태로 입력돼야 합니다. |
|
|
DiT의 입력값을 추가하기 위한 Patchify 과정
출처: Scalable Diffusion Models with Transformers (Peebles & Xie, 2022)
'이미지의 일부 조각인 패치(Patch)를 토큰으로 본다'는 아이디어는 ViT(Vision Transformer)에서 이미 소개한 바 있습니다. 다만, 여기서는 원본 이미지가 아니라 Noised Latent 데이터를 패치화(Patchify)합니다. 정방형 이미지의 경우, 위의 그림과 같이 조각을 내 이어 붙여 DiT 블록의 입력 토큰으로 활용할 수 있습니다. 여기에 이미지의 캡션과 같은 정보들을 조건(Condition)으로 결합하여 학습한다면 텍스트 프롬프트로 이미지를 생성할 수 있게 됩니다.
DiT 구조를 디자인하는 과정에서 연구진은 어떤 방법이 조건을 정보를 결합하기 유리한 지 실험합니다. 앞선 DiT의 학습 구조 이미지에서 볼 수 있듯이, Cross-Attention, In-Context Conditioning 방법을 활용했지만 성능 비교를 통해 최종적으로 Adaptive Layer Normalization(adaLN)을 기본 구조로 선택했습니다. |
|
|
조건화 전략별 FID 비교. FID는 낮을수록 좋은 수치입니다.
출처: Scalable Diffusion Models with Transformers (Peebles & Xie, 2022)
벤치마크로 비교한 지표는 FID입니다. FID(Fréchet Inception Distance)는 생성된 이미지와 실제 이미지 간의 품질과 다양성을 측정하는 생성 분야의 벤치마크로, 두 이미지 집합의 특징 공간(Feature Space) 내 거리를 계산하여 성능을 평가합니다. 즉, FID가 낮을수록 생성된 이미지와 실제 생성해야 하는 이미지가 유사하다는 것을 의미합니다. 조건화 전략에 따라 비교한 결과 adaLN-Zero의 성능이 가장 뛰어나다는 것을 알 수 있습니다. |
|
|
🤔 adaLN-Zero는 무엇이고, adaLN와는 어떻게 다를까?
우선, Adaptive Layer Normalization(adaLN)은 기존의 Layer Normalization(레이어 정규화) 기술을 응용하여, 특정 작업이나 데이터에 더 잘 적응할 수 있도록 설계된 기법입니다.
Layer Normalization은 신경망에서 각 층의 입력을 정규화하여 학습 과정을 안정화시키고 학습 속도를 향상시키는 데 활용됩니다. adaLN은 이러한 정규화 과정을 동적으로 조정(Adaptive)합니다.
DiT Block with adaLN-Zero 부분을 자세히 살펴보면 감마와 베타, 그리고 알파가 레이어에 반영됩니다. 감마(γ)는 입력 토큰의 스케일(Scale)을 조정하고, 베타(β)는 이동(Shift)를 조정합니다. 알파(α)는 Attention Mechanism의 출력 정보의 스케일을 조정하는 역할을 합니다.
adaLN에서는 이 γ과 β 파라미터를 고정된 값으로 두는 대신, t (timestamp)와 c (class labels)에 대한 정보를 합한 임베딩 벡터로부터 동적으로 추론(Regress)합니다.
adaLN-Zero는 잔차 블록을 항등 함수로 초기화하여 대규모 스케일에서의 학습을 빠르게 하고 학습 초기에 안정성을 얻도록 조정한 것입니다. 잔차 블록을 항등함수로 초기화한다는 말은, 잔차 연결 구조에서 F(x)+x 에서 F(x)를 0으로 초기화(Zero-initializing)한다는 의미입니다. |
|
|
원의 크기는 연산량을 의미하는 GFlops, X축은 모델, Y축은 FID 벤치마크를 의미합니다.
DiT-XL/2-G 모델은 기존 LDM 모델과 유사한 연산량을 가지면서 훨씬 더 좋은 성능을 보입니다.
출처: Scalable Diffusion Models with Transformers (Peebles & Xie, 2022)
이렇게 학습된 DiT는 Gflops가 높아질수록 더 낮은 FID 점수를 달성했습니다. Gflops는 연산량을 의미하는데, Trasnformer의 구조의 이점을 활용해 스케일이 커져도 성능을 개선할 수 있다는 점에서 특징적이라고 할 수 있습니다. 또한 DiT는 기존의 다른 생성 모델(LDM, ADM)보다도 낮은 FID를 보인다는 점에서 U-Net 구조를 Transformer로 대체하더라도 성능은 줄어들지 않는다는 것을 보여줍니다. |
|
|
DiT의 학습 구조를 요약해보겠습니다. 우선, LDM 구조의 U-Net을 Transformer로 대체하고 이후 Transformer에 입력하기 위해 이미지를 Patchify했습니다. 그리고 최적의 학습 구조를 선택하기 위해 3가지 방법으로 실험한 뒤 adaLN-Zero를 선택했습니다.
사실, DiT의 제1저자인 William Peebles는 Sora 연구에도 참여했습니다. 그렇기 때문에 해당 구조에 대한 장점을 제대로 활용할 수 있었고, 덕분에 Sora 같은 결과물을 얻을 수 있었다고 생각합니다. 마찬가지로, stability.ai 역시 LDM 구조를 처음 선보였던 만큼, 이번 Stable Diffusion 3를 개발하는 데 있어 DiT를 넘어선 자체적인 기술이 반영됐을 것으로 보입니다.
올해도 어김 없이 AI의 생성 능력은 점차 진화하고 있습니다. 이 배경에는 기반 모델의 구조가 진화하고 있는 데 있습니다. 그리고 이렇게 다른 모델들이 수렴하여 발전한다는 사실 또한 고무적입니다. 과연 AI의 다음 발전은 어디서 어떻게 나타나게 될까요? 아직 우리가 발견하지 못한 모델들의 잠재력은 무엇일까요? |
|
|
인공지능 분야에 몸을 담그고 있다 보면 '대학원'이라는 단어를 심심치 않게 듣게 됩니다. 다른 사람들과는 조금 다른, 학문의 길을 걷기로 한 사람들을 보고 있자면 여러 생각이 듭니다.
대학원을 꿈꿔온 사람이라면 더욱 그렇습니다. 학문에 대한 열정이 깊은 건지, 아니면 학위를 얻기 위한 욕망이 큰 건지, 취업을 위한 한 가지 선택지로 대학원을 택한 건지, 자신에게 끊임없는 질문을 던지게 됩니다. 오늘은 그 질문들 끝에, 통계 데이터사이언스 대학원 진학을 결정한 최동수의 이야기를 전해드립니다. |
|
|
SNS를 팔로우 하면 최신 소식을 가장 빠르게 확인하실 수 있습니다 😆 |
|
|
deep daiv.
manager@deepdaiv.com
|
|
|
|
|