본문 바로가기
  • 책상 밖 세상을 경험할 수 있는 Playground를 제공하고, 수동적 학습에서 창조의 삶으로의 전환을 위한 새로운 라이프 스타일을 제시합니다.
Multi-Modal

[2025-1] 황징아이 - GOKU : Flow Based Video Generative Foundation Models

by yujacs 2025. 3. 22.

링크 : https://saiyan-world.github.io/goku/   

 

 

 

1. GOKU 소개

최근에는 여러 분야에서 비디오 생성이 중요해지면서 효율적으로 비디오 생성을 개발하는 연구가 활발히 진행되고 있다.

  • 본 논문에서 Goku를 소개. Goku는 Rectified Flow Transformer를 기반으로 하는 이미지와 영상을 통합적으로 생성할 수 있는 모델이다
  • Goku는 단순히 텍스트-이미지 생성(Text-to-Image, T2I)에 그치지 않고, 텍스트-영상 생성(Text-to-Video, T2V)까지 통합하는 형태로 설계되었다.  기존 생성 모델들이 겪던 여러 문제점들을 해결하기 위해 데이터 품질 향상, 모델 구조 최적화, 효율적인 학습 전략, 그리고 대규모 병렬 학습 인프라 구축에 초점을 맞추어 설계했다.
  • Goku는 Text-to-image Generation GenEval(0.76), Text-to-image Generation DPG-Bench(83.65), Text-to-Vidoe VBench(84.85) 등의 주요 벤치마크에서 기존 모델들을 능가하는 성능을 보였다.

 

2. GOKU 모델 구조

3D VAE → GenTron based Transformer → Rectified Flow

2.1 이미지-영상 통합 VAE (Image-Video Joint VAE)

  • 이전 연구들에서는 Variational Auto-Encoder (VAE)를 사용해서 이미지나 영상을 Latent space으로 압축하면 diffusion 기반 모델들의 효율성과 성능이 크게 향상될 수 있다는 결과가 나왔다
  • Sora에 영감을 받아서 Goku는 이미지와 영상를 동시에 처리할 수 있는 3D Joint Image-Video VAE를 사용하게 된다. (CogVideoX 3D Casual VAE: Yang et al., 2024c)
  • 영상 Compression Stride : 8×8×4, 이미지 Compression Stride : 8×8

2.2 Transformer 기반 아키텍처 설계

  • Goku는 GenTron 아키텍처를 확장하여 이미지와 비디오 데이터를 통합적으로 학습하는 Transformer기반으로 설계되었다. (GenTron : Chen et al, 2024a)
  • Goku가 개선한 Transformer의 주요 요소들은 다음과 같다
    • Full Attention Mechanism 도입: 기존의 텍스트-비디오 생성 모델들은 시간적 Attention과 공간적 Attention을 별도로 계산하여 효율성을 높이는 전략을 사용했는데 프레임 간의 일관성을 떨어뜨리는 문제가 발생해서 Goku는 Full Attention Mechanism을 도입했다. 비디오 내 모든 프레임간의 연속성을 보장하게 된다
    • Patch n’ Pack 기법: 비디오 데이터를 학습할 때 길이(프레임 수) 가 서로 다르는 문제가 발생해서 Goku는 NaViT (Nested Vision Transformer)에서 영감을 얻은 Patch n' Pack 기법을 사용했다. 비디오와 이미지를 동일한 시퀀스 데이터로 변환하여 하나의 미니배치에서 동시에 학습할 수 있게 된다. 다양한 크기의 이미지 및 비디오 데이터를 별도로 그룹핑할 필요 없이, 하나의 통합된 데이터셋으로 학습할 수 있게 된다.
    • 3D RoPE (Rotary Position Embedding): Goku는 3D RoPE 기법을 도입하여 시간축까지 포함된 위치 정보를 반영하고 더 다양한 해상도와 프레임 속도(framerate)를 처리할 수 있도록 최적화하였다.
    • Q-K Normalization: Transformer 기반 대형 모델에서는 학습 과정 중 손실(loss)이 급격히 변하는 경우가 많다. 특히 비디오 생성 모델은 이미지 생성보다 훨씬 더 복잡한 데이터를 학습해야 하기 때문에 모델이 제대로 학습되지 않는 현상이 발생할 수 있다. 이를 방지하기 위해 Goku는 Q-K Normalization (Query-Key Normalization) 기법을 도입하여 Self-Attention 과정에서 입력 벡터들의 크기를 정규화하여 안정적인 학습을 유도한다.

2.3 Rectified Flow 기반 학습

Goku 모델은 기존의 Denoising Diffusion Probabilistic Models (DDPM) 또는 Score-Based Generative Models와 같은 확률적 방법론이 아닌, Rectified Flow (RF)를 기반으로 학습이 됩니다. 두 데이터 집합 간을 이동할 때 가장 짧고 직선 경로를 따라 이동하도록 학습하는 방법으로, 데이터 생성 및 변환을 더 효율적으로 할 수 있다.

  1. 노이즈 샘플 $x_0$ 을 표준 정규 분포에서 샘플링:  $x_0∼N(0,I)$
  2. 실제 데이터 $x_1$ 와 노이즈 $x_0$ 사이의 중간 상태 $x_t$ 는 다음과 같이 정의됩니다. 여기서 t 는 0에서 $1$까지 변하는 보간(interpolation) 계수입니다:
    $x_t=t⋅x_1+(1−t)⋅x_0$
  3. 모델이 데이터 변화율을 예측하도록 학습: 네트워크는 $x_t$ 에서 $x_1$ 으로 이동하는 속도를 학습하는 역할을 수행합니다.
  4. 추론(Inference) 시, 단일 통합 경로를 통해 샘플을 생성: 일반적인 Diffusion 모델이 여러 번의 스텝을 반복해야 하는 것과 달리, RF는 더 적은 연산으로 좋은 품질의 비디오 및 이미지를 생성할 수 있다.

 

결과적으로 Goku는 기존 Diffusion 모델에 비해 최대 2배 이상 빠른 학습 속도를 기록했고 더 적은 스텝으로도 동일하거나 더 나은 품질의 비디오 및 이미지 생성할 수 있게 되었다. ( 400k step에서의 Rectified Flow는 FID, Recall에서 DDPM이 1000k step까지 학습해야 얻는 성능 보다 더 좋은 성능을 보였다.) 

 

2.4 Multi-stage Training

Goku의 학습 과정은 크게 세 가지 주요 단계로 구성 :

  • Stage 1. 텍스트-이미지 관계 학습 (Text-to-Image Pretraining)
    • Goku 모델이 텍스트와 이미지 간의 관계를 먼저 학습하여 문장과 시각적 특성들을 이해하게 된다
  • Stage 2. 이미지-비디오 통합 학습 (Joint Image-Video Training)
    • Goku는 이미지와 비디오를 공통된 token 시퀀스로 구성해 하나의 네트워크에서 함께 학습한다.
    • 이미지와 비디오 모두에서 동작하는 글로벌 attention 메커니즘을 사용하여, 프레임 수나 해상도가 서로 다른 입력들도 유연하게 처리할 수 있도록 설계되어 있다.
    • Cascaded Resolution Training을 적용. 처음에는 낮은 해상도의 이미지 및 비디오 데이터로 학습을 시작한 뒤, 모델이 기본적인 시맨틱-모션 관계를 학습하면 점차적으로 해상도를 높여가며 디테일 학습으로 이어지는 방식이다. 
  • Stage 3. 이미지 및 비디오 개별 최적화 (Modality-Specific Fine-tuning)
    • 마지막 단계에서는 각 모달리티에 특화된 파인튜닝을 진행한다 : 
    • 텍스트-이미지 생성(Task: T2I)에서는 이미지를 미세하게 조정하여 품질을 향상 시키는 작업을 한다.
    • 텍스트-비디오 생성(Task: T2V)에서는 영상의 시간적 부드러움(temporal smoothness), 모션 일관성, 프레임 간 안정성 등을 높이기 위한 조정해서 영상의 동작과 움직임이 훨씬 자연스럽고 현실감 있게 표현된다.

*Image to Video

Goku는 Text to video와 더불어서 이미지에서 비디오를 생성하는 Image-to-Video 기능도 제공한다. 모델은 참조 이미지(Reference Image)를 활용하여 특정 스타일이나 구도를 유지하면서도 비디오로 확장할 수 있도록 학습을 했다.

 

3. 인프라 최적화

Goku는 AI 모델을 효율적으로 학습시키기 위해 다양한 최적화 기법을 적용했다. 대량의 이미지 및 비디오 데이터를 처리할 수 있도록 병렬 연산과 GPU 클러스터에서 발생할 수 있는 오류를 자동으로 감지하고 복구하는 기술을 도입했다.

  • Parallelism Strategies : Goku는 긴 입력시퀀스를 처리하는 Large모델의 학습 효율을 향상하기 위해 입력 시퀀스, 데이터, 파라미터를 기준으로 3D 병렬화를 사용한다
    • Sequence Parallelism (SP) : 시퀀스 병렬화는 Ulysses 구조 (Jabos et al. 2023)를 사용했다. 학습 루프 초반부터 시퀀스를 병렬 그룹에 나누어 할당하며, attention 계산 시 Query(Q), Key(K), Value(V)를 서로 다른 worker에 분산해 연산을 수행한다. 이후에는 attention head들을 다시 병합하여 원래의 시퀀스를 복원한다. 학습 효율성을 높이고 메모리 사용량을 줄일 수 있어 긴 시퀀스를 다루는 데 유리하다.
    • Fully Sharded Data Parallelism (FSDP) : FSDP(Zhao et al., 2023) 는 모델 파라미터를 여러 GPU에 분산(shard)해 저장하는 방식이다. 기존 Distributed Data Parallelism(DDP)에서는 각 GPU가 서로 다른 데이터 샘플을 받아 동일한 전체 모델을 기준으로 각자의 gradient(A, B, C, D 등)를 계산했다면, FSDP에서는 모델 자체가 여러 GPU에 나누어 저장되어 있다. Forward propogation할때 필요한 파라미터를 해당 GPU로부터 불러오고, 사용하고 메모리에서 제거하는 방식으로 작동한다.
  • Activation Checkpointing : Goku는 Selective Activation Checkpointing를 적용하여 메모리 사용량을 최소화하면서 Communication Overhead를 줄일 수 있다. 일반적으로 순전파 단계에서 모든 활성화 값(Activation)을 저장한 후, 역전파 단계에서 이를 재사용하는 방식으로 학습이 진행이 된다. 그러나 이 방식은 대규모 모델에서는 GPU 메모리 사용량을 과도하게 증가시키는 원인이 되기 때문에, Goku 모델은 활성화 값 중 일부만 저장하고 나머지는 필요할 때 다시 계산하는 Activation Checkpointing을 적용했다
  • Cluster Fault Tolerance : 대규모 GPU 클러스터에서 발생할 수 있는 장애를 감지하고 자동으로 복구하는 Fault Tolerance(장애 복구 시스템) 을 구축했다. MegaScale (Jiang et al., 2024) 기반의 자가 진단 시스템을 통해 GPU 장애를 실시간으로 감지하고, 문제가 발생하면 자동으로 롤백(Auto-Rollback)하여 가장 최근의 체크포인트에서 재시작할 수 있도록 설계했다.

4. Data Curation Pipeline

Goku 모델의 성능을 극대화하기 위해서는 고품질의 이미지 및 비디오 데이터셋을 확보하는 것이 필수적이다. 이를 위해 Goku는 약 160M의 텍스트-이미지 샘플과 36M 개의 텍스트-비디오 샘플로 구성된 대규모 데이터셋을 구축하였다. 생성 모델 학습에 최적화될 수 있도록 5단계 데이터 큐레이션 과정을 거치게 된다.

 

 

  • 이미지 및 비디오 수집 (Collection)
    데이터 수집 단계에서는 다양한 오픈소스 및 내부 데이터셋을 결합하여 방대한 이미지 및 비디오 데이터를 확보하였다. 공개 이미지 1억 개는 LAION에서 수집되었고 고품질 내부 이미지 6천만 개는 파인튜닝에 활용되었다. 텍스트-비디오 데이터는 공개 데이터셋(Panda-70M, InternVid, OpenVid-1M, Pexels 등)에서 1,100만 개, 내부 수집 데이터를 통해 2,500만 개를 추가 확보하였다. 
  • 비디오 추출 및 클리핑 (Video Extraction & Clipping)
    RawVideo를 추출하기 위해 2단계 클리핑 방식을 사용한다. PySecene Detect를 사용해 장면 전환하는 부분을 감지해서 영상을 나누고 아래 테이블에 나오는 것 처럼 영상을 나눈다. 

  • 캡셔닝 (Captioning)
    텍스트-이미지 및 텍스트-비디오 매칭을 하기 위해 다양한 언어 모델(LLM, Large Language Model)을 활용하여 캡션을 자동 생성하고 보정하는 작업을 수행했다.
    이미지는 InternVL 2.0을 활용해 자동으로 자막을 생성하였고, 비디오는 keyframe에 InternVL 2.0을 적용하고 전체 시퀀스에는 Tarsier 2를 사용하여 카메라 움직임, 장면의 정보 등을 설명하는 자막을 생성하였다.
    Qwen2를 사용해 keyframe 자막과 시퀀스 자막을 합쳤다.
    특히, RAFT( 프레임 사이의 픽셀 움직임)를 통해 계산한 Motion Score를 자막에 포함시키면, 사용자 프롬프트에 동작 강도(motion intensity)를 명시적으로 포함시킬 수 있어 더 다양한 움직임을 표현한 영상을 생성할 수 있다는 것을 발견하게 되었다. 
  • 데이터 필터링 및 품질 보정 (Filtering)
    시각적인 품질 필터링, OCR필터링, 모션 필터링 등을 적용하여 노이즈를 제거한다
  • 데이터 분포 균형 조정 (Balancing)
    Goku의 성능은 데이터 분포에 민감하기 때문에, 내부 영상 분류 모델을 활용해 수집된 데이터를 카테고리별로 분석하고 균형 있게 분포시키는 작업을 수행하였다. 예를 들어, 인간(Human), 동물(Animals), 풍경(Scenery), 도시(Urban) 등 주요 카테고리별로 샘플 수를 맞추었다.
    사람을 포함한 데이터는 학습이 어려워서 이를 보완하기 위해 데이터 증강 기법을 활용하여 인간 관련 데이터 샘플을 처리했다.

 

5. Goku성능

Goku 모델이 기존의 생성 모델들과 비교했을 때 이미지 품질, 텍스트-비주얼 정합성(Text-Visual Alignment), 비디오 모션 일관성(Motion Consistency) 등에서 뛰어난 성능을 보였다는 점이 확인되었다.

  • 이미지 생성 (Text2Image) : Goku-T2I 모델은 GenEval과 T2I-CompBench에서 최고 수준의 성능을 기록했다. 복잡한 프롬프트에서의 이미지 생성능력이 DALL-E 3보다 좋은 성능을 보였다.

  • 비디오 생성 (Text2Video) : (1) 영상을 생성하는 Goku-T2V 모델은 FVD(Frechet Video Distance)와 IS(Inception Score) 로 평가 되었고 기존 모델들보다 뛰어난 성능을 기록했다. 모든 해상도에서 기존 모델 대비 가장 낮은 FVD 점수를 기록하여 최고 수준의 비디오 품질을 보였다. (2) VBench는 AI 비디오 생성 모델을 평가하는 가장 종합적인 벤치마크 중 하나로 Goku-T2V는 VBench에서 84.85점으로 다른 모델에 비해 비디오 내 객체 표현과 동작 표현이 가장 자연스럽고 정교한 것으로 평가되었다

  • 이미지에서 비디오 생성 (Image2Video) : Goku-I2V는 기존 T2V 모델을 기반으로 파인튜닝하여 개발된 모델이다. 약 1만 스텝(finetuning steps)만으로도 입력 이미지를 자연스럽게 움직이는 영상으로 생성하며 텍스트 프롬프트의 의미도 잘 반영한다

 

  • 모델 크기와 Joint Training의 영향 : 파라미터 수가 더 많은 8B 모델은 2B 모델보다 왜곡 없이 더 정확한 영상을 생성한다. 이미지와 비디오를 따로 학습하는 것보다 공동 학습(Joint Training) 을 진행했을 때 더 높은 화질과 자연스러운 결과를 얻을 수 있다.

6. 결론 (Contribution)

  • 본 논문에서 Goku 이미지 및 비디오 생성을 통합적으로 수행할 수 있는 새로운 AI 생성 모델를 소개
  • 트랜스포머 아키텍처 개선, 영상 데이터 처리, 대규모 병렬 학습 및 인프라 최적화를 통해 고품질의 이미지와 영상을 출력할 수 있게 되었다
  • 주요 벤치마크에서 기존 SOTA모델을 뛰어넘는 성능을 보여줬다
  • 멀티모달 생성 모델로서 향후 활용 가능성이 높다