apple/starflow · Hugging Face
요약
상세 내용
핵심 방법론 (Core Methodology)
STARFlow의 핵심은 "transformer autoregressive flow" 아키텍처에 있습니다. 이는 다음과 같은 요소들을 통합합니다:
STARFlow는 이러한 두 가지 패러다임을 결합하여, 트랜스포머(Transformer) 기반의 오토레그레시브한 방식으로 잠재 공간(latent space) 내에서 플로우 변환(flow transformations)을 순차적으로 수행합니다. 이는 특히 잠재 정규화 플로우(Latent Normalizing Flows) 개념을 스케일링(scaling)하여 고해상도 이미지 및 비디오 합성을 가능하게 합니다. 즉, 이미지를 직접 픽셀 단위로 생성하는 대신, VAE(Variational AutoEncoder)와 같은 모델을 통해 얻은 압축된 잠재 표현(latent representations) 상에서 플로우를 적용합니다. 이 잠재 공간에서의 오토레그레시브 플로우는 데이터의 복잡한 구조를 효율적으로 학습하고, 순차적인 생성 과정을 통해 높은 일관성(consistency)과 품질(quality)을 유지합니다.
STARFlow 모델 세부 사항
* STARFlow (텍스트-투-이미지):
* 파라미터 수: 30억 (3B) 개.
* 해상도: 256x256 픽셀 이미지 생성.
* 아키텍처: 6-블록(block)의 "deep-shallow architecture"를 사용합니다. 이는 모델의 깊이와 폭을 조절하여 효율적인 학습과 추론을 가능하게 합니다.
* 텍스트 인코더: T5-XL을 사용하여 텍스트 프롬프트(text prompt)를 인코딩합니다.
* VAE: Stable Diffusion에서 사용되는 VAE를 활용하여 이미지의 잠재 표현을 압축하고 복원합니다.
* 특징: RoPE(Rotary Positional Encoding)를 통해 위치 정보를 인코딩하며, 혼합 정밀도 학습(mixed precision training)을 지원하여 학습 효율을 높입니다.
* STARFlow-V (텍스트-투-비디오):
* 파라미터 수: 70억 (7B) 개.
* 해상도: 최대 640x480 (480p) 비디오 프레임 생성.
* 시간 차원(Temporal): 기본적으로 81프레임(frames)을 지원하며, 이는 16 FPS에서 약 5초에 해당합니다.
* 아키텍처: STARFlow와 유사하게 6-블록 "deep-shallow architecture"를 사용하지만, 전체 시퀀스(full sequence)에 걸쳐 적용됩니다.
* 텍스트 인코더: T5-XL을 사용합니다.
* VAE: WAN2.2-VAE를 사용합니다.
* 특징: 시간적 인과성(causal attention)을 고려하여 이전 프레임에만 의존하여 다음 프레임을 생성하는 오토레그레시브 생성을 수행합니다. 또한, 가변 길이(variable length) 비디오 생성을 지원합니다.
주요 특징 (Key Features)
* 고품질 생성: Diffusion Models과 경쟁할 만한 FID(Fréchet Inception Distance) 점수와 시각적 품질을 제공합니다.
* 유연한 해상도: 다양한 종횡비(aspect ratios)와 해상도를 지원합니다.
* 효율적인 학습: FSDP(Fully Sharded Data Parallel)를 통해 대규모 모델의 분산 학습을 효율적으로 지원합니다.
* 빠른 샘플링: 블록-와이즈 야코비 반복(Block-wise Jacobi iteration) 방법을 사용하여 추론 속도를 가속화합니다. 이는 병렬 처리를 통해 오토레그레시브 생성 과정의 반복을 줄여줍니다.
* 텍스트 조건부 생성: 텍스트 프롬프트에 기반한 정교한 이미지/비디오 생성이 가능합니다.
* 비디오 생성: 비디오의 시간적 일관성(temporal consistency)과 부드러운 움직임(smooth motion)을 보장합니다.
구성 및 파라미터(Configuration & Parameters)
* Classifier-free Guidance Scale (cfg): 프롬프트 준수도(prompt adherence)를 조절하는 파라미터입니다. 높은 값은 프롬프트에 더 충실한 생성을 유도합니다.
* Flow Noise Standard Deviation (noise_std): 플로우 모델의 노이즈 강도를 제어합니다.
* Jacobi Iteration (jacobi, jacobi_th, jacobi_block_size): 빠른 샘플링을 위해 야코비 반복을 활성화하고, 수렴 임계값(jacobi_th)과 블록 크기(jacobi_block_size)를 설정합니다. 이는 오토레그레시브 디코딩 과정에서 여러 단계를 병렬로 추론하여 생성 시간을 단축합니다.
* target_length: 비디오 생성 시 목표 길이를 지정하여 학습된 길이보다 긴 비디오도 생성할 수 있습니다.
STARFlow는 오토레그레시브 모델의 구조적 강점과 정규화 플로우의 역변환 가능한 특성을 결합하여, 잠재 공간에서 효율적이고 고품질의 생성 작업을 수행하는 새로운 접근 방식을 제시합니다.