Codings

OpenAI 동영상 생성 기술 - Sora

드리프트2 2024. 2. 19. 20:34

 

OpenAI 동영상 생성 기술 - Sora에 대해 알아보자.

 

최근 OpenAI에서 발표된 새로운 동영상 생성 AI 'Sora’가 많은 화제가 되고 있네요.

 

OpenAI의 새로운 모델인 'Sora’는 텍스트에서 동영상을 생성할 수 있는 기능을 가지고 있습니다.

 

간단하거나 자세한 설명, 또는 정지 이미지를 기반으로 Sora는 1080p의 영화 같은 장면을 여러 캐릭터, 다양한 유형의 움직임 및 배경 세부 사항과 함께 생성할 수 있습니다.

 

Sora는 또한 기존 비디오 클립을 '확장’하여 누락된 세부 사항을 채울 수 있습니다.

 

Sora는 언어를 깊이 이해하여 프롬프트를 정확하게 해석하고 생생한 감정을 표현하는 매력적인 캐릭터를 생성할 수 있다고 합니다.

이 기술은 다양한 지속 시간, 해상도 및 종횡비의 비디오와 이미지에 대해 텍스트 조건부 확산 모델을 공동으로 훈련함으로써, 물리적 세계의 일반적인 목적 시뮬레이터를 구축하는 데 있어 유망한 경로로 간주됩니다.

 

압도적인 일관성 유지와 1분간 지속되는 장시간 동영상 생성이 가능하다는 점에서, 현재의 동영상 생성 기술을 압도적으로 능가하는 성능을 가지고 있는 것 같습니다.

 

Sora의 대단함은 유투브 등 인스타그램의 여러 엔지니어와 인플루언서가 많이 이야기하고 있으니, 그 부분은 그들의 말을 참고하시면 좋을 것 같고, 이 글에서는 Sora를 구성하는 각 기술에 대해 간단히 설명해보려 합니다.

 

Sora의 기술 구성 논문이 공개되어 있는 것은 아니지만, OpenAI가 요소 기술의 해설 페이지를 공개해주고 있어, 그 페이지를 참고로 하겠습니다.

 

원문을 보고 싶으신 분은 여기를 참조하세요.

 

전체 구성

Sora는 다음과 같은 기술 요소로 구성되어 있다고 합니다.

  • 시각 데이터를 패치로 변환
  • 비디오 압축 네트워크
  • 시공간 잠재 패치
  • 비디오 생성을 위한 스케일링 트랜스포머
  • 가변적인 지속 시간, 해상도, 종횡비
  • 샘플링 유연성
  • 개선된 프레이밍과 구성
  • 언어 이해

매우 간단히 요약하자면 다음의 4가지 요소가 주축입니다.

  • 동영상 데이터를 잠재 공간에 압축한 후, 트랜스포머가 토큰으로 사용할 수 있는 '시공간 잠재 패치’로 변환하는 기술
  • 트랜스포머 기반의 비디오 확산 모델
  • DALLE3를 사용한 고정밀 비디오 캡셔닝을 통한 데이터셋 생성

이렇게 보면, 특별히 새로운 기술을 사용하고 있는 것은 아닌 것 같습니다.

 

레벨을 올리고 물리적으로 타격을 가하라.

 

손끝의 기술보다도 레벨(돈, 계산 자원)의 중요성이 잘 드러납니다.

 

각 요소 기술의 참고 논문도 정성껏 제시되어 있으니, 내용을 자세히 살펴보시죠.

 

 

시각 데이터를 패치로 변환하는 과정을 살펴보겠습니다.

 

 

먼저, '시공간 잠재 패치’를 만드는 방법부터 살펴보겠습니다.

 

시공간 잠재 패치를 만드는 전 과정으로, 입력되는 동영상(비디오 데이터)을 잠재 공간에 압축합니다.

이미지 생성에서 VAE에 해당하는 부분이라고 생각하시면 대략 맞습니다. VAE 논문이 인용되어 있기 때문에, 그대로 VAE라고 생각하셔도 됩니다.

이를 통해 계산량이 크게 줄어들며, Sora는 이 압축된 잠재 공간에서 훈련을 진행합니다.

 

이미지 생성에서는 VAE로 변환한 후 바로 훈련에 들어가지만, Sora는 한 단계 더 변환 과정을 거쳐 '시공간 잠재 패치’를 만듭니다.

이는 LLM에서 말하는 텍스트 토큰에 해당하는 것 같습니다.

 

이 패치 생성 기술을 소개하는 논문은 다음과 같습니다:

  • An image is worth 16x16 words: Transformers for image recognition at scale.
    • 유명한 Vision Transformer 논문입니다.
    • 패치화 방법으로는, 이미지를 위치에 기반하여 분할(패치화)하고, 1차원의 벡터로 변환(flatten/평활화)합니다.

 

 

  • Vivit: A video vision transformer.
    • 위의 Vision Transformer를 기반으로, 동영상도 처리할 수 있도록 한 논문입니다.
    • 제안된 패치화 방법은 다음과 같습니다:
      • ViT와 유사하게, 위치에 기반하여 패치화하고, 그것을 프레임 순서대로 연결하는 방법
      • 입력 동영상을 3차원적으로 파악하고, t(프레임 수)×h(패치의 높이)×w(패치의 너비)의 블록(튜브)을 추출하여 1차원으로 압축하는 방법

 

 

  • Masked autoencoders are scalable vision learners.
    • 패치화된 이미지를 효율적으로 학습하기 위한 논문입니다.
    • ViT의 사전 학습으로 유효합니다.
    • 패치화된 토큰의 일부를 마스크화하여 입력하고, 마스크화된 부분을 복원하는 작업을 수행합니다.

 

 

  • Patch n’Pack: NaViT, a Vision Transformer for any Aspect Ratio and Resolution.
    • 입력하는 데이터의 해상도나 종횡비를 자유롭게 변경할 수 있게 하는 논문입니다.
    • ViT가 입력하는 시퀀스의 길이를 변경할 수 있는 것을 활용하여, 시퀀스에 패킹을 수행함으로써 임의의 해상도나 종횡비를 입력할 수 있게 했습니다.
    • 이 기술을 사용함으로써, Sora는 다양한 해상도, 길이, 종횡비의 비디오나 이미지로 훈련할 수 있으며, 추론 시 생성되는 비디오의 크기를 제어할 수 있습니다.

 

 

 

 

비디오 생성을 위한 스케일링 트랜스포머

 

이어서 Sora의 모델 구조에 대해 설명하겠습니다.

 

Sora는 기술 보고서에도 쓰여있듯이 확산 모델 기반으로 만들어졌습니다.

 

여러 논문이 소개되고 있지만, 모두 설명하면 매우 시간이 많이 걸리므로, 이미지 생성에 관한 설명과 겹치는 부분은 생략하고, 가장 중요해 보이는 논문만 소개하겠습니다.

 

확장 가능한 확산 모델과 트랜스포머

 

Diffusion 모델에 Transformer를 사용한 논문입니다.

 

StableDiffusion 등 현재 시장에 나와 있는 latent diffusion 모델과 가장 크게 다른 점이 이 부분이라고 생각됩니다.

 

이 논문에서는 StableDiffusion이 가지고 있는 Unet 구조를 Transformer로 대체한 모델을 소개하고 있습니다.

 

 

 

Sora도 아마 이 논문과 유사하거나 비슷한 구조를 가지고 있을 것으로 보입니다.

 

따라서 LLM과 같은 스케일링 법칙이 적용되며, 초대규모 학습을 통해 압도적인 성능을 실현하고 있다고 생각됩니다.

 

이 논문은 주로 이미지를 다루고 있지만, Sora의 기술 보고서는 이미지뿐만 아니라 동영상에도 확장하여 많은 학습을 진행하면 잘 작동한다는 내용을 시사하고 있습니다.

 

시공간 잠재 패치에 노이즈를 가하고 Diffusion Transformer로 일괄 학습함으로써, 이미지를 생성하는 것처럼 동영상을 일괄 생성하고 있습니다.

 

 

개인적으로 이 부분이 기존의 동영상 생성 모델과 가장 다른 부분이라고 생각합니다.

 

AnimateDiff나 Stable Video Diffusion(이것은 논문을 완전히 읽지 않아서 다를 수도 있습니다)은 기본적으로 이미지 생성을 기반으로 하고 있으며, 여기에 시간 경과(프레임 전환)를 인식할 수 있는 레이어를 추가하여 직전 프레임과 일치하는 이미지를 생성하는 모델이었습니다.

 

반면, Sora는 바로 동영상 생성에 착수하기 때문에, 마치 text2Video 모델에 어울리는 구조입니다.

 

 

 

가변 지속 시간, 해상도, 종횡비

 

일반적인 이미지/동영상 생성은 입력된 데이터를 표준화(예: 256×256×4초)하지 않으면 처리할 수 없지만, Sora는 그런 작업 없이 입력 데이터를 그대로 학습할 수 있는 기술입니다.

 

그러나 이 메커니즘 자체는 앞서 소개한 'Patch n’Pack: NaViT, a Vision Transformer for any Aspect Ratio and Resolution.'의 메커니즘을 그대로 사용하고 있는 것으로 보여서, 특별히 새로 설명할 것은 없어 보입니다.

 

이 기술 덕분에 다양한 해상도로 생성할 수 있어 모든 장치(화면 크기)에 맞는 콘텐츠에 대응하는 동영상을 생성할 수 있으며, 저해상도로 프로토타입을 빠르게 생성하는 등의 작업도 가능합니다.

 

 

언어 이해

 

마지막으로, 고정밀 Text2Video 모델을 만들기 위해서는 고정밀로 캡셔닝된 동영상 데이터셋이 필수적입니다.

 

기계 학습에서 데이터셋의 품질이 매우 중요하기 때문에, 이 부분도 다른 동영상 생성 모델과 큰 품질 차이를 만드는 요소가 됩니다.

 

그러나 이 항목에 대해 기술적으로 설명할 부분은 많지 않습니다.

 

DALLE3를 만들어 그것에 동영상을 읽게 하고 캡셔닝을 시키는 것이 전부입니다.

 

 

마무리

 

이번에는 Sora의 요소 기술 해설을 진행했습니다.

 

이렇게 각 요소를 살펴보면 특별히 새로운 기술을 사용하고 있는 것은 아니며, 지금까지 유효하다고 여겨진 기술을 성실하게 쌓아올리고, 방대한 자본력과 계산력으로 모델을 훈련시키면 강력한 모델을 만들 수 있다는 당연한 결과가 보입니다.