마이크로소프트에서 내놓은 빙 이미지 크리에이터는 OpenAI에서 제작한 이미지 생성 AI 달리 2(DALL-E 2)를 기반으로 하고 있습니다. 컴퓨터 공학은 잘 모르지만 기반 모델이 어떤 식으로 작동하는 건지 궁금해서 인터넷으로 자료를 찾고 요약한 내용을 공유합니다.
세 단계 요약: 프롬프트 입력, prior(프라이어) 모델, decoder(디코더) 모델
- 텍스트 인코더(text encoder)로 프롬프트 입력되면 텍스트 임베딩이 생성됨
- 생성된 텍스트 임베딩이 프라이어 모델로 입력되어 프롬프트에 담긴 의미있는 정보를 파악한 다음 연관된 이미지 임베딩 생성
- 디코더 모델에서 이미지 임베딩을 가지고 확률적으로 이미지화
프라이어 모델에선 무슨 일이 일어나나?
사용자가 텍스트 프롬프트를 입력하면, 입력된 텍스트 프롬프트를 가지고 유사성이 가장 높은 이미지 임베딩을 생성하게 됩니다. 이 과정에서 CLIP 모델이 사용됩니다.
CLIP은 Contrastive Language-Image Pre-training의 약자로 언어-이미지 대조 사전훈련법으로 해석할 수 있습니다.
이 모델은 사진과 그 사진에 대한 설명 텍스트가 붙은 방대한 양의 데이터를 가지고 사진은 사진대로 인코더를 거치고, 설명 텍스트는 텍스트대로 인코더를 거쳐 벡터로 변환한 다음, 둘 사이 유사도를 학습하는 모델입니다. 이 과정에서 이미지와 설명이 잘못 붙은 쌍은 최소화해 정확성을 높입니다.
디코더 모델에선 무슨 일이 일어나나?
프라이어 모델에서 얻은 이미지 임베딩을 가지고 사용자가 입력한 프롬프트에 따라 창의적인 그림을 내놓게 되는데, 이 과정에서 디퓨전 모델(diffusion model)을 사용합니다.
diffusion은 확산이란 뜻도 있는데, 이미지 임베딩에 계속 노이즈를 주어가며 알아볼 수 없을 지경까지 만드는 건데 이 경우 이미지는 사라지고 오직 픽셀이 확산, 퍼져있는 형태가 됩니다.
또한, 수천, 수만번 노이즈화 하는 과정에서 이미지와 가장 높은 유사성을 보인 텍스트 캡션까지 같이 AI에 학습시킵니다. 그런 다음, 프롬프트에 따라 노이즈 상태에서 다시 이미지로 '복원'하는 과정을 거치는데, 이미지 임베딩에 붙은 캡션의 의미론적 정보에 따라 여러 가지 형태로 결과물이 다르게 나옵니다.
이렇게 작성해보았지만 여전히 알쏭달쏭한 부분은 많습니다. 작성하면서 깨닫게 된 건 방대한 노이즈값으로 학습한 모델이 프롬프트에 따라 역으로 이미지를 구현할 때는 확률적으로 구현하다 보니 늘 결과가 다를 수밖에 없는 것으로 보이네요.
혹시라도 잘못된 정보를 전달했다면 정정 부탁드리며... 포스팅이 도움 되었으면 합니다.
'정보' 카테고리의 다른 글
RAID: Call of the Arbiter 에피소드 1 공개 / 비밀 코드 힌트 정답 / 레이드 그림자의 전설 (10) | 2023.05.18 |
---|---|
RAID: Call of the Arbiter 애니메이션 한정 시리즈 유투브 공개 예정 - 레이드 그림자의 전설 (17) | 2023.04.30 |
빙 이미지 크리에이터 한글 프롬프트로 입력 도전기 - 방법은 바로 채팅 (6) | 2023.04.14 |
빙 이미지 크리에이터 초간단 이미지 제작법 - 짧은 프롬프트만으로도 나도 창작자 (8) | 2023.03.29 |
마테차 효능과 부작용 - 마시면 좋은 점과 주의해야 할 점 (12) | 2023.03.27 |