본문 바로가기

Generative Models/Diffusion

OpenAI SORA Technical Report 분석

반응형

 

 

Sora: Creating video from text

The current model has weaknesses. It may struggle with accurately simulating the physics of a complex scene, and may not understand specific instances of cause and effect. For example, a person might take a bite out of a cookie, but afterward, the cookie m

openai.com


OpenAI에서 발표한 Text-to-Video 모델 SORA가 공개된 이후, 기존 video generation 결과물 대비 격이 다른 품질에 AGI (Artificial Genral Interlligence) 등장의 대한 기대가 점점 높아지고 있습니다. 결과는 정말 놀라운데요, 특히 비디오 품질과 해상도뿐만 아니라 60초라는 긴 시간 동안 프롬프트에 맞게 시간적으로 연속된 장면이 매우 그럴듯하게 뽑힌 것이 충격적입니다.

Generation 분야는 ChatGPT 성공 이후 text나 이미지 등 다양한 데이터를 조건으로 받아 이미지를 생성하는 것까지 성공적으로 확장되어 왔습니다. 따라서 이미지의 확장인 비디오 생성은 어찌 보면 기술 발전의 자연스러운 수순이겠지만, video 생성은 이미지 생성 문제에서 시간이라는 축이 더 추가되기에 시간적 연속성 (temporal consistency)을 학습하기 위한 연산량이 무지막지하게 필요하고 다양한 multi-modality 비디오 데이터의 부재 등으로 한계가 있어 왔습니다. Runway Gen2와 같은 기존 비디오 생성 모델은 SORA 대비해서 비디오 해상도, fps, 시간 등도 짧을 뿐만 아니라 생성된 동영상의 artifact 또한 쉽게 눈에 띕니다. 

 

Gen-2 by Runway

A multimodal AI system that can generate novel videos with text, images or video clips.

research.runwayml.com

  • SORA에 비해서 굉장히 제한적인 비디오 생성 결과를 보여줍니다.

다행히도 OpenAI에서 SORA에 관한 technical report 또한 게재했습니다. 자세한 기술 세부 사항은 개발진이 아닌 이상에야 알 수 없겠지만 대략적으로 어떠한 기술적인 요점이 있는지 어렴풋이 추정해보려 합니다.


Technical Reports (Architecture 측면)

Diffusion Transformer

제가 가장 중요하게 생각하는 부분은 Diffusion Transfromer를 도입한 것입니다.

2017년 "Attention Is All You Need" 논문 이후로 transformer는 대세를 넘어 LLM 학습의 de-factor 모델이 되었고 자연스럽게 vision 분야에까지 확장되었습니다. 하지만 Diffusion 기반의 생성 모델은 이상하리만큼 transformer 적용이 느렸고 지금까지 Cross-Attention 기반 UNet 모델이 기본 모델로 사용되어 왔습니다.

하지만 UNet 모델은 기본적으로 convolution 기반이기에 transformer 대비 scalability 측면 한계가 있고, 특히 한 번에 많은 frame을 만들어야 하는 비디오 생성 문제에서는 forward pass 연산량으로 인해 한 번에 만들어낼 수 있는 frame 수가 제한적입니다. 따라서 Diffusion 생성에서 backbone을 transformer로 교체해 보는 다양한 연구가 발표되었고 (DiT, FiT 등) 아마 SORA에서는 Vision Transformer를 diffusion 생성 문제에 맞게 도입하여 transformer의 강력한 scalability를 극단적으로 활용한 것으로 보입니다.

  • 물론 당연하지만 단순 적용을 넘어 해결해야 할 문제는 많겠죠.
  • 입력으로 받을 수 있는 최대 token 개수는 몇인지, 다양한 condition 조건을 noise token과 어떻게 결합할 것인지.
  • 동영상인 경우 어떠한 positional encoding을 적용할 것인지.

 

Latent Space

Pixel 레벨에서 데이터를 바로 취급하는 것은 연산량이 크기에 차원을 줄이기 위한 compression network를 통해 raw 비디오를 압축된 잠재 공간으로 매핑합니다. 중요한 것은 이미지 압축과 달리 공간적인 부분 (spatial)과 더불어 시간적인 부분 (temporal)까지 잘 압축을 해야겠지요. Diffusion 과정은 바로 이 압축된 latent space 상에서 수행되고, 이것은 decoder를 통해 다시 pixel 레벨로 돌아가 시각적인 요소를 갖추게 됩니다. 이것은 현재 기준인 LDM (Latent Diffusion Model) 이후에 기본으로 적용되기에 기술적으로 특별한 것은 없을 것 같습니다만, spatio-temporal auto-encoder를 얼마나 많은 데이터로 학습했을지가 궁금합니다.

 

Spacetime Latent Patches

이제 잘 압축된 잠재공간 상의 데이터를 transformer 입력으로 바꾸기 위해 패치 형태로 바꿉니다. 요새 고화질 비디오 해상도를 예로 들어 1920x1080 해상도와 30 fps를 가진 1분짜리 동영상을 생각해 보겠습니다. 보통 auto-encoder가 입력 데이터 차원을 8배 줄이니 원본 데이터는 [1920, 1080, 1800] 크기에서 [240, 135, 225] 크기로 잠재공간으로 매핑될 것이고 transformer patch size를 5로 한다면 총 80x27x45=97200 개의 패치가 생성됩니다.

여기가 UNet 대비 transformer 장점이 드러나는 부분 중 하나입니다. UNet 모델로 훈련시키기 위해서는 배치 안의 이미지 크기가 모두 같아야 하기에 모든 이미지를 하나의 해상도와 가로/세로 비율로 만들어줘야 합니다. 이 과정에서 이미지 crop, resize 같은 원본 데이터를 손상시키는 전처리 함수가 동원되니 결과에 좋지 않은 영향을 미치겠죠. 하지만 transformer에서는 이미지의 해상도, aspect ratio 상관없이 배치 안에 있는 데이터들의 패치 개수만 동일하게 맞춰주면 훈련에는 전혀 지장이 없습니다. (각 데이터의 패치 개수는 달라도 최대 패치 개수 (token 길이)를 정한 이후에 padding을 하면 되겠죠)

최종적인 모델 구조는 다음과 같습니다.

 

Technical Reports (데이터 측면)

대부분의 생성 모델은 512x512 (혹은 256x256) 기준으로 정사각형 crop 된 형태로 이미지를 생성합니다. 하지만 대부분의 이미지는 정사각형이 아닐뿐더러 최근에는 고해상도 이미지들도 많기 때문에 UNet 모델 훈련을 위해 구조적으로 데이터 정보 손실을 감수하는 전처리가 당연스럽게 받아들여져 왔습니다. SORA에서는 비디오를 frame 구간을 자르거나 (trimming) 해상도를 줄이지 (cropping) 않고 동영상 원본 그대로를 사용했습니다. 이것 또한 transformer 덕분이죠.

 

특히 이미지를 정사각형 형태로 crop 해 학습에 사용하게 되면 random crop으로 인해 생성된 이미지 상의 객체가 중앙에 위치하지 않게 되는 현상이 발생합니다. 어찌 보면 원본 데이터를 변화시키지 않고 그대로 사용하는 것이 당연한 수순입니다.

 

마지막으로 동영상 caption입니다. SORA가 text-to-video 모델이다 보니 대용량의 비디오와 더불어 비디오에 해당하는 텍스트 라벨이 필요합니다. 특히 텍스트 라벨은 비디오를 최대한 디테일하게 잘 설명해야겠죠. 자사 제품을 사용해서 캡셔닝을 진행했네요. 제 생각엔 비디오 전반을 아우르는 global text와 더불어 frame-wise 한 local text까지 같이 사용해 text 기반 품질을 고도화하지 않았을까 합니다.

 

다양한 기능

생성된 비디오에 대해 시간 앞/뒤로 확장하거나 비디오 차원의 편집도 가능하나 제가 가장 놀란 것은 비디오 합성입니다. 그림에서 왼쪽의 비디오와 오른쪽의 비디오를 합쳐 가운데 비디오를 만들어내는데... 너무 자연스럽습니다.

 

Discussion

공개된 것이 전부는 아니겠지만 놀랍게도 딱히 특별해 보이는 부분은 없습니다. 결국 transformer 구조와 잘 정돈된 대규모의 text-video 데이터셋이겠죠. 더 크게, 더 많이가 transformer를 발판 삼아 이 수준까지 도달했다고 보입니다. 그리고 앞으로 어떤 수준까지 갈 수 있을지 짐작이 잘 가지는 않습니다.

특히 SORA가 생성해 낸 비디오가 기하학적으로도 훌륭하다는 사실도 놀랍습니다. 단순히 시각적인 품질을 넘어서 만들어낸 동영상 안의 다양한 객체의 신뢰도까지 어느 정도 보장할 수 있다면 3차원 모델링에도 또 한 번의 패러다임의 변화가 불가피해 보입니다.

NeRF 저자 Ben Mildenhall 트윗

한 때, back-propagation 기반의 학습 방법으로 AGI를 달성할 수 있을지에 대해 굉장히 회의적이었습니다. 솔직히 한 때라기보다는 SORA가 공개되기 전까지 말이죠. Back-propagation 방법이 결국 데이터를 모델에 담는 도구라 한다면 그 많고 다양한 데이터를 모델에 담는 것이 가능할까? 결국 AGI라는 것은 한 차원 높은 방법론이 나와야 하지 않을까?라는 생각이었습니다. 하지만 기하급수적으로 발전하는 컴퓨팅 파워와 transformer의 scalability를 과소평가한 것 같습니다.

인간의 사고능력과 인류의 발전과정이 결국 수많은 사람들이 겪는 사건과 실험들로부터 귀납적으로 출발하여, 연역적인 사고로 수렴한다고 본다면 귀납 영역의 정복은 시간문제일 것 같습니다. 말도 안 된다고 생각했던 AGI가 진짜 올 수도 있을까요?

 

References

반응형

'Generative Models > Diffusion' 카테고리의 다른 글

Scale is all you need (feat. Richard Sutton)  (0) 2024.03.01