출처: OpenAI Sora Technical Report
OpenAI의 Sora 개요를 직역하자면 아래와 같다.
우리는 대규모의 비디오 데이터를 활용한 생성형 모델의 학습에 대해 탐구하고자 한다. 구체적으로는 다양한 길이, 해상도, 그리고 영상비의 비디오와 이미지로 text-conditional diffusion model을 학습시킨다. 우리는 영상과 이미지의 latent code의 시공간 패치를 다루는 트랜스포머 구조를 이용한다. 우리의 가장 큰 모델인 Sora는 좋은 퀄리티의 1분 길이 영상을 생성할 수 있다. 우리의 실험 결과는 비디오 생성 모델을 확장해 실제 세계를 시뮬레이션하는 다목적 시뮬레이터로의 사용가능성을 제시한다.
- text-conditional diffusion model: 텍스트로 출력을 조절할 수 있는 diffusion model
- latent code: 데이터가 잠재 공간에서 가지는 숨겨진 의미
OpenAI가 야심차게 소개하는 Sora가 무엇인지는 간략한 기술문서를 읽어보며 확인해보도록 하자.
이 문서는 크게 두 개에 초점을 둔다.
1. 여러 종류의 시각 데이터를 하나의 통일된 표현으로 바꾸어 생성형 인공지능을 거대 데이터로 학습시키는 방법론
2. Sora의 능력과 한계를 평가
기존의 영상 생성형 모델과는 다르게 Sora는 특정 카테고리, 길이, 해상도에 국한되지 않은 범용적인 시각 데이터를 모델링한다. 따라서 Sora는 최대 1분까지 허용되는 HD 영상을 비롯한 다양한 길이, 영상비, 그리고 화질의 영상과 이미지를 만들 수 있다.

Sora는 ViT(Visual Transformer)가 이용하는 패치 형태의 입력을 동일하게 사용한다. OpenAI는 패치를 이용하는 것이 확장성이 좋고 다양한 영상과 이미지를 학습시키는데 효과적이라고 보고 있다. ViT가 패치들을 어떻게 이용하는지는 구글의 공식 블로그 포스트에서 확인할 수 있다. 다만 Sora는 아래의 ViT와는 다르게 이미지에서 바로 패치를 가져오는 것이 아니라 먼저 visual 인코더를 사용해 영상을 상대적으로 작은 차원의 latent 공간으로 압축한 이후에 해당 벡터들을 visual 패치로 나눈다고 한다.
영상을 작은 차원의 latent 공간으로 압축할 때는 시간과 공간 정보가 함께 압축된다. Sora는 이 압축된 latent 공간에서 학습을 진행하고 학습 후 영상을 생성할 때는 인코더와 함께 학습된 디코더를 사용해 압축된 공간을 픽셀 공간으로 바꿔 프레임들을 생성한다. 따라서 이 비디오 압축 신경망의 중요도가 굉장히 크다고 볼 수 있다.
Latent 공간에서 시공간 정보를 학습한 패치들은 트랜스포머의 토큰처럼 사용된다. 이러한 패치들을 이용한 덕분에 Sora는 다양한 길이와 해상도의 영상, 그리고 영상뿐만 아니라 이미지도 만들 수 있다.
생성 시 랜덤하게 초기화된 노이즈 패치들을 원하는 크기의 그리드 형태로 정렬하면 영상의 크기를 조절하는 것이 가능하다.
Sora는 디퓨전 모델이고 더 정확히 말하면 diffusion transformer 모델이다. 이 모델은 영상과 이미지를 생성할 때 노이즈와 텍스트 프롬프트가 입력되면 프롬프트에 대응하는 깨끗한 visual 패치를 예측하려고 한다. 이에 더해 트랜스포머 아키텍쳐는 텍스트, 영상, 음성, 등의 다양한 도메인 데이터를 다루는데 사용되고 있어 모델의 확장성이 좋은 것이 검증되었다.
| Base Compute | 32x Compute |
|---|---|
![]() | ![]() |
같은 시드와 입력을 사용한 환경에서 왼쪽은 base compute 단위로 학습시킨 모델의 결과물이고 오른쪽은 32x compute를 사용한 경우의 결과물이다. 데이터가 많고 모델 구조가 클수록 성능이 좋아지는 것을 알 수 있다.
기존의 영상 생성 모델 연구들은 학습 데이터를 4초 길이의 해상도 영상과 같이 특정 길이와 해상도로 줄였지만 Sora는 소스 데이터를 그대로 사용한다. 거기에서 오는 이점들을 아래에 차례대로 설명한다.
Sora는 가로 방향()과 세로 방향()의 full HD 영상과 그 중간 형태의 모든 영상들을 샘플링한다. 이를 학습하여 여러 기기에 맞는 해상도와 화면비의 영상을 만들 수 있다. 그리고 고해상도의 영상을 만들기 전에 동일한 모델로 저해상도의 영상을 빠르게 만들어 미리 확인해 보는 것도 가능하다.
| 세로형 | 정방형 | 가로형 |
|---|---|---|
![]() | ![]() | ![]() |
훈련데이터를 사전에 정방형 영상으로 자르고 모델을 학습시키면 영상 생성 시 중심이 되어야 하는 피사체의 일부가 잘리거나 나타나지 않는 문제가 발생한다. 원본 데이터를 그대로 사용하는 Sora는 해당 문제가 상대적으로 적은 편에 속한다. 아래처럼 동일한 정방형 영상을 생성하더라도 원본데이터로 학습한 Sora 모델은 그렇지 않은 Sora 모델보다 중심 피사체를 정확하게 생성하는 것을 볼 수 있다.
| 정방형으로 변환 후 학습한 모델 | 변환하지 않고 학습한 모델 |
|---|---|
![]() | ![]() |
DALLE 3에 적용한 re-captioning 방법을 사용하여 훈련 데이터의 각 영상에 대응하는 텍스트를 높은 퀄리티의 캡션으로 바꾼다. 자세한 캡션을 생성하는 모델을 먼저 학습시켜 이 모델로 각 영상에 대응하는 높은 퀄리티의 캡션을 만들어 Sora를 학습시킨다. Sora는 text-to-video 모델이기 때문에 높은 퀄리티의 영상 캡션을 사용할수록 영상 자체의 퀄리티가 올라가고 생성된 영상이 입력된 텍스트에 잘 대응하게 된다.
Sora는 DALLE 3처럼 GPT 모델을 사용하여 단순한 유저 프롬프트를 길고 자세한 캡션으로 바꿔준다. 이 방법으로 유저의 요구를 더 정확하게 받아들인 영상을 만들어준다.
사용자가 제공한 이미지와 영상을 이용해 완벽한 무한 루프 영상을 생성, 이미지를 영상으로 변환, 영상의 앞 혹은 뒤에 내용을 추가하는 등의 기능도 수행할 수 있다.
| 이미지 | 영상 |
|---|---|
![]() | ![]() |
A Shiba Inu dog wearing a beret and black turtleneck.
영상의 특정 시점을 중심으로 앞 혹은 뒤에 영상을 추가적으로 생성하여 붙일 수 있다. 아래의 세 영상은 영상의 앞 시점을 연장하여 생성했기 때문에 마무리가 동일한 것을 확인할 수 있다. 다만 샌프란시스코에서 날아다니는 전차를 보여주는 물리적으로 불가능한 영상을 생성하는 문제가 있다.
| #1 | #2 | #3 |
|---|---|---|
![]() | ![]() | ![]() |
동일한 방법으로 영상의 앞과 뒤를 연장하여 무한 루프 영상을 만드는 것도 가능하다.
SDEdit을 Sora에 적용하여 기존 영상의 스타일이나 배경을 zero-shot으로 바꿀 수 있다.
| 입력 영상 | 배경을 바꾼 영상 |
|---|---|
![]() | ![]() |
영상끼리의 인터폴레이션도 가능하다.
| 입력 #1 | Interpolated Result | 입력 #2 |
|---|---|---|
![]() | ![]() | ![]() |
Temporal extent를 하나의 프레임으로 제한하면 크기의 이미지 생성이 가능하다.
| Close-up portrait shot of a woman in autumn, extreme detail, shallow depth of field | Vibrant coral reef teeming with colorful fish and sea creatures | Digital art of a young tiger under an apple tree in a matte painting style with gorgeous details |
|---|---|---|
![]() | ![]() | ![]() |
A Shiba Inu dog wearing a beret and black turtleneck.
영상 모델은 3D, 사물, 등의 특성을 학습하게 유도하는 bias를 추가하지 않고 대규모의 데이터를 학습하는 것 만으로도 인간, 동물, 그리고 환경의 물리적 특성을 시뮬레이션 할 수 있는 능력을 보여준다.
아래와 같은 다이나믹한 카메라 모션의 영상에서 Sora는 카메라의 움직임과 일관된 3차원 공간에서의 사물과 배경의 움직임을 보여준다.
일반적으로 영상 생성 모델은 긴 영상을 만들면 시간 상의 일관성이 부족하다. 즉, 사물과 배경의 형상이 바뀌거나 사라지는 등의 문제가 발생하는데 Sora는 물체가 가려지거나 프레임에서 벗어난 이후에도 있어야 할 곳에 유지되는 것을 볼 수 있다.
| 예시 #1 | 예시 #2 |
|---|---|
![]() | ![]() |
영상에서 화가가 그림에 물감을 칠하면 이 변화가 영상에서 계속 유지된다.
단순히 프롬프트에 "Minecraft"를 추가하는 것 만으로 Sora는 게임 속 주인공을 조종함과 동시에 게임 속 세계의 다양한 구성 요소들을 높은 퀄리티로 렌더링 할 수 있다.
OpenAI 연구팀은 영상 생성 모델을 계속 확장하는 것이 가상과 실제 세계를 모두 시뮬레이션 할 수 있는 좋은 방향이라고 생각하고 있다.
Sora는 아직 아래와 같이 물리적으로 정확하기 않은 영상들을 만들어내기 때문에 시뮬레이터로 사용하기에는 아직 한계가 있다.
| 예시 #1 | 예시 #2 |
|---|---|
![]() | ![]() |