Diffusers에서의 오픈 비디오 생성 모델 현황
Hugging Face는 소비자 하드웨어에서 이러한 리소스 집약적인 모델에 접근할 수 있도록 Diffusers 라이브러리에서 제공되는 오픈 비디오 생성 모델의 현재 상황과 기술적 최적화를詳しく 설명했습니다. 주요 내용은 고품질 비디오 생성은 여전히 계산 비용이 많이 들지만, 양자화, 오프로딩, 청크 추론의 조합을 통해 속도에 심각한 타협 없이 VRAM 요구 사항을 크게 줄일 수 있다는 점입니다.
비디오 생성 모델의 현황
폐쇄형 모델
- OpenAI: Sora
- Google: Veo 2
- Meta: MovieGen
- RunwayML: Gen 3 Alpha
- Pika Labs: Pika 2.0
- KlingAI: Kling
- Haliluo: MiniMax
오픈소스 모델
- Tencent: Hunyuan Video
- Genmo: Mochi-1
- RhymesAI: Allegro
- Lightricks: LTX Video
- THUDM: CogVideoX
기술적 도전과 제한
비디오 생성은 프레임 간 시공간적 일관성과 일관성을 유지해야 하며, 여기에 현실감, 미학, 입력 조건 준수도 더해져 이미지 생성보다 훨씬 복잡합니다.
주요 제한 사항
- 높은 리소스 요구 사항: 데이터셋 수집, 하드웨어, 훈련 반복의 비용으로 인해 오픈소스 개발이 비용이 많이 듭니다.
- 일반화 능력: 일부 오픈 모델은 분포 외 데이터에서 어려움을 겪거나 고품질 결과를 얻기 위해 예를 들어 LTX-Video와 같이 매우 구체적이고 상세한 프롬프트가 필요할 수 있습니다.
- 지연 시간: 높은 계산 및 메모리 요구로 인해 상당한 생성 지연이 발생하며, 이는 종종 로컬 배포의 장벽으로 작용합니다.
오픈 비디오 모델의 아키텍처
현대 오픈 비디오 생성 모델은 일반적으로 텍스트-이미지 모델과 유사한 구조를 따르지만 3D 처리 기능을 갖추고 있습니다:
- 텍스트 인코더: 대부분의 모델은 T5를 선호하지만, HunYuan은 CLIP-L과 LLaMa 3를 모두 사용합니다.
- 디노이징 네트워크: PixArt의 요소를 포함한 DiT(확산 트랜스포머) 아키텍처를 기반으로 하며, 공간 및 시간 데이터를 모두 포착하는 3D 비디오 토큰을 처리합니다.
- 인코더-디코더: 픽셀과 잠재 공간 간 변환을 위해 공간 및 시간 압축을 모두 사용하며, 프레임별 디코딩을 자주 사용하여 메모리를 관리합니다.
- 스케줄러: 비파라메트릭 스케줄러가 타임스텝 계산과 디노이징 프로세스를 관리합니다.
Diffusers에서의 메모리 최적화
최첨단 비디오 모델을 실행하는 데는 종종 엄청난 양의 VRAM이 필요합니다. 예를 들어, $121 imes 512 imes 768$ 해상도 비디오에 표준 torch.bfloat16 설정을 사용할 때, 기본 메모리 요구 사항은 다음과 같습니다:
- HunyuanVideo: 60.09 GB
- CogVideoX (1.5 5B): 36.51 GB
- LTX-Video: 17.75 GB
최적화 스위트
소비자 하드웨어에서 이러한 모델을 실행하기 위해 Diffusers는 여러 가지 선택적 최적화 카테고리를 제공합니다:
- 양자화:
bitsandbytes,torchao,GGUF와 같은 백엔드를 통해 가중치 정밀도를 줄입니다. - 오프로딩: 활성 계산이 아닌 경우 레이어를 CPU로 이동시키기 위해
enable_model_cpu_offload()또는enable_sequential_cpu_offload()를 사용합니다. - 청크 추론: 피드 포워드 청킹, 디코더 타일링/슬라이싱, 분할 어텐션 추론을 통해 활성화 상태 오버헤드를 줄입니다.
- 상태 재사용: 과거 어텐션과 MLP 상태를 재사용하여 특정 디노이징 단계를 건너뜁니다.
HunyuanVideo에 대한 최적화의 영향
Hugging Face는 이러한 기술을 연결하여 HunyuanVideo의 VRAM 요구 사항을 **60.10 GB (BF16 Base)**에서 6.56 GB로 줄일 수 있음을 보여주었습니다. FP8 Upcasting, Group offload (leaf), VAE tiling의 조합을 사용하면 추가로 ~5 GB까지 줄일 수 있으며, Flash Attention과 Optimized Feed-Forward를 사용하면 더욱 줄일 수 있습니다.
훈련 및 파인튜닝
증류 기법
추론 속도를 높이기 위해 두 가지 주요 증류 방법이 사용됩니다:
- 타임스텝 증류: 모델이 더 적은 단계에서 최종 출력을 예측하도록 가르칩니다(예를 들어, Flux.1-Schnell, FastHunyuan).
- 가이던스 증류: Classifier-Free Guidance가 필요한 두 번의 순전파를 한 번으로 줄여 생성 시간을 절반으로 줄입니다(예를 들어, HunyuanVideo, Flux.1-Dev).
finetrainers를 사용한 파인튜닝
Hugging Face는 오픈 비디오 모델의 파인튜닝을 간소화하기 위해 finetrainers 저장소를 도입했습니다. 이를 통해 사용자는 CogVideoX와 같은 특정 모델에 LoRA와 같은 기법을 적용하여 "용해" 효과와 같은 특정 시각 효과를 모방할 수 있습니다.