생성 모델
그림·소리·영상을 만들어 내는 모델은 모두 '데이터가 어떻게 퍼져 있는지'를 배워 거기서 새 표본을 뽑는다. VAE와 GAN에서 확산 모델, 잠재 확산과 텍스트-이미지, 비디오와 음성, 그리고 평가와 출처 표시까지 정리한다.
목차 (12)
확산 모델이 노이즈를 걷어 그림을 만든다는 첫 설명과 시드의 뜻은 AI 기초 노트에, 이 노트가 여러 번 기대는 신경망·어텐션·트랜스포머는 딥러닝 노트에 있다. 글을 만드는 LLM도 생성 모델이지만 따로 LLM 노트에서 다룬다.
생성 모델이란
분류 모델은 "이 사진은 고양이인가"처럼 입력에 맞는 답 하나를 낸다. 생성 모델은 데이터 자체의 분포 p(x)를 배운다. 고양이 사진이 어떤 모양으로 흩어져 있는지를 익혀, 그 분포에서 아직 없던 표본을 뽑는 것이 생성이다. 조건이 붙으면 p(x | 글 설명)처럼 "이 설명에 맞는 그림들의 분포"에서 뽑는다.
그림 한 장은 수십만 차원의 점이라 분포를 그대로 적어 둘 수 없다. 그래서 다루기 쉬운 단순한 분포(보통 표준 정규 분포)에서 노이즈를 뽑고, 신경망이 그것을 데이터처럼 보이는 점으로 바꾸게 한다. 아래의 방법들은 이 변환을 어떻게 학습시키느냐가 다르다.
오토인코더와 VAE
오토인코더는 입력을 작은 벡터(잠재 표현 z)로 줄이는 인코더와 다시 펼치는 디코더를 이어, 출력이 입력과 같아지도록 학습한다. 가운데가 좁아 중요한 특징만 남는다. 하지만 보통의 오토인코더는 잠재 공간에 학습 데이터가 놓인 곳 말고는 빈틈투성이라, 아무 z나 뽑아 디코딩하면 의미 없는 그림이 나온다.
VAE(변분 오토인코더)(Kingma, Welling, 2013)는 인코더가 점 하나 대신 분포(평균 μ와 표준편차 σ)를 내게 한다. 손실은 복원 오차에 "이 분포가 표준 정규 분포에서 너무 멀지 않게"라는 KL 항을 더한 것이다. KL 항이 잠재 공간을 원점 근처로 고르게 모아 주므로, 생성할 때는 표준 정규 분포에서 z를 뽑아 디코더에 넣기만 하면 된다. 뽑기는 미분할 수 없어서 z = μ + σ·ε로 바꿔 쓰는 재매개변수화가 이 논문의 핵심 장치다. 무작위는 ε에만 남고 μ와 σ로는 기울기가 흐른다.
VAE 혼자서 만든 그림은 흐릿한 편이다. 픽셀마다 평균에 가까운 값을 내는 복원 손실 탓이다. 대신 "그림을 작고 의미 있는 잠재 공간으로 줄였다 되살리는" 능력이 쓸모가 커서, 지금은 아래 잠재 확산 모델의 앞뒤 단(압축과 복원)으로 주로 쓰인다.
GAN: 위조범과 감정사
GAN(생성적 적대 신경망)(Goodfellow 외, 2014)은 두 신경망을 겨루게 한다. 생성자 G는 노이즈로 가짜를 만들고, 판별자 D는 진짜와 가짜를 가린다. D는 잘 가리도록, G는 D가 속도록 번갈아 학습한다. 분포를 식으로 쓰지 않고 "구별할 수 없게 만들기"라는 목표만으로 배우는 셈이다.
GAN은 한 번의 계산으로 선명한 그림을 내고 빠르다. 얼굴 사진처럼 범위가 좁은 데이터에서는 2010년대 후반에 사진과 구별하기 어려운 수준에 이르렀다. 대신 두 신경망의 균형이 깨지면 학습이 흔들리고, G가 몇 가지 모양만 되풀이하는 모드 붕괴가 생기기 쉽다. 다양한 글 설명을 받는 대규모 텍스트-이미지 생성에서는 학습이 안정적이고 다양성이 좋은 확산 모델에 자리를 내줬다. 다만 판별자를 덧붙인 적대적 손실은 지금도 코덱·VAE 디코더나 확산 모델을 몇 단계로 줄이는 증류에 쓰인다.
확산 모델
확산 모델은 생성을 잘게 나눈다. 정방향은 데이터에 가우스 노이즈를 조금씩 섞어 T단계(보통 1000) 뒤에는 순수한 노이즈가 되게 하는 고정된 과정이다. 학습할 것이 없다. 신경망이 배우는 것은 역방향, 즉 노이즈 낀 상태 x_t와 시각 t를 보고 섞인 노이즈를 맞히는 일이다. DDPM(Ho 외, 2020)은 이 "노이즈 맞히기"의 평균 제곱 오차라는 단순한 손실로 GAN에 견줄 품질을 냈다.
학습이 간단한 이유가 하나 더 있다. 가우스 노이즈를 여러 번 섞은 결과도 가우스라서, t단계까지 섞은 상태를 한 번에 만들 수 있다. x_t = √ᾱ_t · x₀ + √(1−ᾱ_t) · ε이다. ᾱ_t는 t까지 원본이 살아남은 비율이다. 학습은 데이터 하나와 무작위 t, ε을 골라 x_t를 만들고, 신경망이 ε을 맞히게 하는 것의 반복이다.
정방향 시작: 깨끗한 신호 x₀. 학습 때는 이 신호에 시각 t만큼의 노이즈를 한 번에 섞어 만든다.
ᾱ_t를 시각에 따라 어떻게 줄일지가 노이즈 일정이다. DDPM의 선형 일정은 β(단계마다 섞는 노이즈의 양)를 0.0001에서 0.02로 고르게 늘리는데, 그러면 중반에 이미 원본이 거의 사라져 뒤쪽 단계 대부분이 쓸모없는 노이즈 구간이 된다. Improved DDPM(2021)은 ᾱ_t가 코사인 모양으로 천천히 줄어드는 일정을 제안해, 같은 단계 수로 더 고르게 정보를 지운다.
처음 DDPM은 생성에도 1000단계를 그대로 밟아야 해서 느렸다. DDIM(2020)은 같은 학습 모델로 단계를 건너뛰는 결정적 샘플링을 보여 수십 단계로 줄였다. Song 외(2020)는 확산을 연속 시간의 확률 미분 방정식으로 다시 써, 노이즈 맞히기가 곧 데이터 분포의 기울기(score)를 배우는 일임을 보이고 점수 기반 모델과 확산 모델을 한 틀로 묶었다. 이 관점 덕에 미분 방정식 풀이법을 가져와 단계를 더 줄이는 연구가 이어졌다.
잠재 확산과 텍스트-이미지
512×512 컬러 그림은 값이 78만 개가 넘는다. 이 위에서 확산을 수십 번 돌리면 비싸다. 잠재 확산(Rombach 외, 2021)은 먼저 VAE류 오토인코더로 그림을 작은 잠재 공간으로 줄이고, 확산은 거기서만 한다. 사람이 거의 못 느끼는 세밀한 픽셀 정보는 오토인코더가 맡고, 확산 모델은 구도와 의미에 계산을 쓴다. Stable Diffusion이 이 구조다.
글 설명은 텍스트 인코더가 벡터 열로 바꿔 디노이저에 넣는다. 디노이저 안의 교차 어텐션이 그림의 각 위치가 글의 어느 낱말을 참고할지 고른다. 텍스트 인코더로 널리 쓰인 것이 CLIP(2021)이다. 인터넷에서 모은 이미지-글 쌍 4억 개로, 짝이 맞는 이미지와 글의 벡터는 가깝게, 안 맞는 쌍은 멀게 학습해 글과 그림을 한 공간에 놓았다. 이후 모델들은 T5 같은 큰 언어 모델 인코더를 함께 쓰기도 한다.
조건을 넣어도 모델은 설명을 느슨하게 따르기 쉽다. 분류기 없는 안내(classifier-free guidance, CFG)(Ho, Salimans, 2022)는 학습 때 일정 비율로 조건을 비워, 한 모델이 조건 있는 예측과 없는 예측을 모두 내게 한다. 생성할 때는 두 예측의 차이, 즉 "설명이 바꾸는 방향"을 w배로 늘린다. 생성 도구의 guidance scale 값이 이 w다.
디노이저의 뼈대도 바뀌었다. 초기 모델은 합성곱 U-Net을 썼지만, DiT(2022)는 잠재를 패치로 잘라 토큰처럼 트랜스포머에 넣고, 계산량을 늘릴수록 품질(FID)이 꾸준히 좋아진다는 것을 보였다. 학습 목표에서도 노이즈 대신 노이즈에서 데이터로 가는 속도를 배우는 흐름 정합(flow matching)이 널리 퍼졌다. Stable Diffusion 3 논문(2024)은 노이즈와 데이터를 직선으로 잇는 정류 흐름(rectified flow)과 트랜스포머를 합쳐 크기를 키웠다. 이름은 달라도 "노이즈에서 출발해 학습한 방향을 따라 여러 걸음 걷는다"는 틀은 같다.
편집과 제어: 그림 바꾸기, 인페인팅, ControlNet
실제로 생성 도구를 쓰는 일의 상당수는 새로 그리기보다 있는 그림을 고치는 일이다. 확산 모델은 "노이즈 낀 그림에서 노이즈 걷기"를 배운 모델이라, 시작점을 순수한 노이즈 대신 내 그림으로 바꾸기만 해도 편집이 된다.
- 그림에서 그림으로(image-to-image): SDEdit(2021)은 입력 그림에 노이즈를 어느 정도 섞은 뒤 그 단계부터 걷어 낸다. 대충 그린 낙서도 그럴듯한 그림이 된다. 섞는 노이즈가 많을수록 결과가 사실적이지만 원래 그림에서 멀어지고, 적을수록 원본을 따르지만 덜 다듬어진다. 도구의 strength·denoise 값이 이 양이다. 따로 학습할 필요가 없다.
- 인페인팅: 가린(마스크) 부분만 노이즈에서 다시 만들고 나머지는 원본을 유지해, 물체를 지우거나 바꾸고 그림 바깥을 이어 그린다(아웃페인팅).
- ControlNet: 글만으로는 자세·구도를 정확히 정하기 어렵다. ControlNet(2023)은 학습된 확산 모델을 얼려 두고, 인코더 부분을 복사한 학습용 사본에 경계선·깊이 지도·분할 지도·사람 자세 같은 조건을 넣는다. 둘을 0으로 초기화한 합성곱(zero convolution)으로 이어, 학습 초기에 원래 모델이 망가지지 않게 했다.
- 스타일·인물 맞추기: 특정 화풍이나 대상을 몇십 장으로 가르칠 때는 LoRA를 디노이저에 붙여 학습하는 방법이 흔하다. 몇 MB짜리 파일로 바꿔 끼울 수 있다.
같은 기술은 실존 인물의 가짜 사진·영상(딥페이크)에도 바로 쓰인다. 표시 의무 같은 규제는 AI 안전과 정책 노트에, 출처를 밝히는 기술은 아래 출처 표시 절에 있다.
비디오 생성
비디오는 프레임마다 그림을 따로 만들면 안 된다. 각 프레임이 그럴듯해도 사람 얼굴·옷·배경이 프레임마다 조금씩 달라져 깜빡인다. 이것이 시간 일관성 문제다. 그래서 비디오 확산 모델은 여러 프레임을 한 덩어리로 놓고 함께 노이즈를 걷는다. Video Diffusion Models(Ho 외, 2022)는 공간 어텐션과 시간 어텐션을 나눠 둔 3차원 U-Net으로 프레임들을 한꺼번에 생성하고, 이미지와 비디오를 함께 학습하면 품질이 좋아진다는 것을 보였다. Stable Video Diffusion(2023)은 이미지용 잠재 확산 모델에 시간 층을 더해 키우고, 데이터를 어떻게 거르고 단계적으로 학습시키는지가 품질을 크게 가른다는 것을 정리했다.
요즘 모델들은 대체로 비디오를 시간 방향으로도 압축한 잠재 공간에 넣고, 시공간 패치를 토큰 삼아 트랜스포머로 처리한다. 문제는 토큰 수다. 전체 어텐션은 토큰 수의 제곱으로 비싸지므로, 해상도와 길이가 조금만 늘어도 계산이 폭발한다. 긴 영상을 짧은 구간으로 나눠 이어 붙이거나, 앞 구간의 끝을 조건으로 다음 구간을 만드는 방법이 쓰이는 이유다.
비디오 모델이 물리를 이해한다고 말하기는 이르다. 물체가 갑자기 생기거나 사라지고, 부딪힌 공이 이상하게 튀는 일이 흔하다. 결과가 그럴듯해 보이는 것과 세계의 규칙을 지키는 것은 다른 문제다.
음성과 음악
소리는 1초에 수만 개의 표본이라 길이가 길다. WaveNet(2016)은 이 표본을 하나씩, 앞의 표본들을 보고 다음 표본의 확률 분포를 내는 자기회귀 방식으로 만들었다. 듬성듬성 건너뛰며 보는 팽창 합성곱(dilated convolution)으로 긴 과거를 봤고, 당시 음성 합성(TTS)보다 훨씬 자연스러운 소리를 냈다. 다만 표본 하나마다 신경망을 돌려야 해 원래 형태로는 매우 느렸다.
전환점은 신경 오디오 코덱이다. SoundStream(2021)과 EnCodec(2022)은 인코더로 소리를 초당 수십 프레임으로 줄이고, 각 프레임을 잔차 벡터 양자화(RVQ)로 코드북 번호 여러 개로 바꾼다. 첫 코드북이 큰 줄기를 잡고, 다음 코드북은 앞에서 남은 오차를 잡는 식이다. 코드북 수를 바꾸면 같은 모델로 비트레이트를 고를 수 있다. 판별자를 함께 써서(적대적 손실) 낮은 비트레이트에서도 소리가 자연스럽다.
소리가 토큰이 되자 생성은 언어 모델의 일이 되었다. AudioLM(2022)은 내용과 구조를 담은 의미 토큰을 먼저 이어 쓰고, 그 위에 코덱 토큰을 채우는 계층 구조로 몇 초짜리 말소리·피아노 연주를 자연스럽게 이어 갔다. VALL-E(2023)는 TTS를 "글(음소)과 3초짜리 목소리 견본을 조건으로 코덱 토큰을 이어 쓰는 문제"로 바꿔, 처음 듣는 목소리도 흉내 내는 제로샷 음성 합성을 보였다. 같은 이유로 목소리 복제 사기에 대한 우려도 커졌다. 음악 생성 역시 코덱 토큰 위의 언어 모델이나 오디오 잠재 공간의 확산 모델로 만든다.
평가: 얼마나 잘 만들었나
생성 결과에는 정답이 없어 평가가 어렵다. 가장 널리 쓰인 자동 지표가 FID(Fréchet Inception Distance)다(Heusel 외, 2017). 진짜 그림들과 생성 그림들을 이미지 분류망(Inception v3)에 넣어 2048차원 특징을 뽑고, 두 특징 무리를 각각 다변량 정규 분포로 보고 그 사이의 프레셰 거리를 잰다. 낮을수록 좋다. 평균이 다르면(품질 차이) 점수가 나빠지고, 퍼짐이 다르면(다양성 차이)도 나빠진다.
- FID의 한계: 표본 수에 따라 값이 달라져(보통 5만 장으로 잰다) 조건이 같은 값끼리만 비교한다. ImageNet으로 학습한 분류망의 눈이라 사람이 느끼는 품질과 어긋날 때가 있고, 글 설명을 잘 따랐는지는 보지 않는다.
- 글과의 일치: CLIP 점수(생성 그림과 프롬프트의 CLIP 벡터 유사도)나, 질문 목록을 만들어 그림이 각 항목을 지켰는지 시각 언어 모델로 확인하는 방법을 쓴다.
- 사람 선호: 결국 기준은 사람이다. 두 결과를 나란히 보여 주고 고르게 한 뒤 Elo식 점수로 순위를 매기는 비교 평가가 흔하다.
- 음성: 자연스러움은 청취자 점수(MOS), 내용 정확도는 음성 인식으로 받아쓴 글의 오류율(WER), 목소리 닮음은 화자 임베딩의 유사도로 잰다.
출처 표시와 워터마크
생성물이 사진·녹음과 구별되지 않게 되면서 "이것이 어디서 왔나"를 알리는 기술이 두 갈래로 자랐다.
- C2PA(콘텐츠 자격 증명): C2PA는 콘텐츠의 출처와 편집 이력을 파일에 붙이는 공개 기술 표준이다. 만든 기기·도구, 거친 편집, 생성 AI 사용 여부를 담은 매니페스트에 전자 서명을 해 둔다. 서명 뒤에 내용이 바뀌면 검증에서 드러난다. 하지만 메타데이터라서 스크린숏을 찍거나 정보를 지우는 플랫폼을 거치면 사라진다. 자격 증명이 있으면 믿을 근거가 생기는 것이지, 없다고 가짜라는 뜻은 아니다.
- 워터마크: 콘텐츠 자체에 사람 눈·귀에 띄지 않는 신호를 섞는다. Google의 SynthID는 자사 모델이 만든 이미지·영상·소리·글에 워터마크를 넣고, 자르기·필터·압축 같은 흔한 변형에 견디도록 설계했다고 밝힌다. 글에는 토큰을 고를 때 확률을 살짝 조정하는 방식으로 넣는데, Nature에 실린 SynthID-Text 논문은 품질 저하 없이 탐지할 수 있음을 보이면서도 글이 짧거나 답이 거의 정해진 경우, 크게 고쳐 쓰거나 번역하면 탐지가 약해진다고 적었다.
둘 다 협조하는 쪽에만 통한다. 워터마크를 넣지 않는 공개 모델로 만든 결과에는 아무 표시가 없고, 사후에 "AI가 만들었는지"를 맞히는 분류기는 오탐이 잦아 단독 판정 근거로 쓰기 어렵다. 결국 출처가 확인된 콘텐츠를 믿을 근거로 삼는 쪽으로 무게가 옮겨 가고 있다.
흔한 오해
- "생성 모델은 학습한 그림을 오려 붙여 만든다" — 대부분의 결과는 조각을 붙인 것이 아니라 배운 분포에서 새로 뽑은 표본이다. 그렇다고 "절대 그대로 베끼지 않는다"도 틀리다. Carlini 외(2023)는 생성하고 거르는 방법으로 최신 확산 모델에서 학습 그림을 천 장 넘게 거의 그대로 뽑아냈다. 실존 인물 사진부터 회사 로고까지 있었고, 확산 모델이 GAN보다 학습 데이터를 더 많이 외운다고 보고했다. 개인정보 쪽 이야기는 AI 안전 노트의 프라이버시 절에 있다.
- "시드가 같으면 어디서나 같은 그림이 나온다" — 같은 모델 파일·샘플러·단계 수·크기·guidance 값을 모두 맞췄을 때 이야기다. 하나만 달라도 그림이 바뀐다.
- "guidance를 높일수록 프롬프트를 더 잘 따른 좋은 그림이 된다" — 어느 선을 넘으면 색이 타고 질감이 어색해진다(위 CFG 그림).
- "FID가 낮으면 사람이 보기에도 낫다" — 대체로 그렇지만 어긋날 때가 있고, 글 설명을 따랐는지는 재지 않는다(평가 절).
핵심 논문
요약은 직접 정리한 것이다. 트랜스포머와 어텐션은 딥러닝 노트, 그 밖의 대표 논문은 논문 노트에 있다.
| 논문 | 연도 | 한 줄 요지 |
|---|---|---|
| Auto-Encoding Variational Bayes (VAE) | 2013 | 인코더가 잠재 분포를 내고 재매개변수화로 뽑게 해, 잠재 변수 모델을 보통의 역전파로 학습할 수 있게 했다. |
| Generative Adversarial Networks | 2014 | 생성자와 판별자의 겨루기만으로 분포를 배운다. 밀도를 식으로 쓰지 않는 생성 모델의 길을 열었다. |
| WaveNet | 2016 | 소리 표본을 하나씩 이어 쓰는 자기회귀 모델로, 기존 음성 합성보다 훨씬 자연스러운 소리를 냈다. |
| Two Time-Scale Update Rule (FID 제안) | 2017 | GAN 학습의 수렴을 다루면서, 진짜와 생성 이미지의 특징 분포 거리로 품질을 재는 FID를 함께 제안했다. |
| Denoising Diffusion Probabilistic Models | 2020 | 섞인 노이즈를 맞히는 단순한 손실로 확산 모델을 학습해 GAN에 견줄 이미지 품질을 처음 보였다. |
| Score-Based Modeling through SDEs | 2020 | 확산을 연속 시간 확률 미분 방정식으로 보고, 노이즈 맞히기와 분포 기울기(score) 학습이 같은 일임을 한 틀로 정리했다. |
| CLIP | 2021 | 이미지-글 쌍 4억 개를 대조 학습해 글과 그림을 한 벡터 공간에 놓았다. 텍스트-이미지 생성의 조건과 평가에 두루 쓰인다. |
| SoundStream | 2021 | 잔차 벡터 양자화를 쓰는 신경 오디오 코덱. 소리를 이산 토큰으로 바꿔 언어 모델식 오디오 생성의 바탕이 됐다. |
| Latent Diffusion Models | 2021 | 오토인코더의 잠재 공간에서 확산하고 교차 어텐션으로 조건을 넣어, 고해상도 생성을 훨씬 싸게 만들었다(Stable Diffusion의 바탕). |
| Classifier-Free Diffusion Guidance | 2022 | 조건 있는 예측과 없는 예측의 차이를 키워, 별도 분류기 없이 조건을 따르는 정도와 다양성을 맞바꾼다. |
| AudioLM | 2022 | 의미 토큰과 코덱 토큰을 차례로 이어 쓰는 계층적 언어 모델로, 말소리와 피아노 연주를 일관되게 이어 갔다. |
| Video Diffusion Models | 2022 | 시공간을 함께 다루는 3차원 U-Net으로 프레임을 한꺼번에 생성해 시간 일관성을 얻고, 이미지와 함께 학습하는 효과를 보였다. |
| Scalable Diffusion Models with Transformers (DiT) | 2022 | U-Net 대신 잠재 패치를 받는 트랜스포머를 디노이저로 써, 계산을 늘릴수록 품질이 오르는 확장성을 보였다. |
| VALL-E | 2023 | 음성 합성을 코덱 토큰 위의 조건부 언어 모델 문제로 바꿔, 3초 견본만으로 처음 듣는 목소리를 흉내 냈다. |
- Kingma, Welling — Auto-Encoding Variational Bayes (2013)
- Goodfellow 외 — Generative Adversarial Networks (2014)
- Ho 외 — Denoising Diffusion Probabilistic Models (2020)
- Song 외 — Denoising Diffusion Implicit Models (2020)
- Song 외 — Score-Based Generative Modeling through Stochastic Differential Equations (2020)
- Nichol, Dhariwal — Improved Denoising Diffusion Probabilistic Models (2021)
- Radford 외 — Learning Transferable Visual Models From Natural Language Supervision (CLIP, 2021)
- Rombach 외 — High-Resolution Image Synthesis with Latent Diffusion Models (2021)
- Ho, Salimans — Classifier-Free Diffusion Guidance (2022)
- Peebles, Xie — Scalable Diffusion Models with Transformers (DiT, 2022)
- Lipman 외 — Flow Matching for Generative Modeling (2022)
- Esser 외 — Scaling Rectified Flow Transformers for High-Resolution Image Synthesis (2024)
- Ho 외 — Video Diffusion Models (2022)
- Blattmann 외 — Stable Video Diffusion (2023)
- van den Oord 외 — WaveNet: A Generative Model for Raw Audio (2016)
- Zeghidour 외 — SoundStream: An End-to-End Neural Audio Codec (2021)
- Défossez 외 — High Fidelity Neural Audio Compression (EnCodec, 2022)
- Borsos 외 — AudioLM: a Language Modeling Approach to Audio Generation (2022)
- Wang 외 — Neural Codec Language Models are Zero-Shot Text to Speech Synthesizers (VALL-E, 2023)
- Heusel 외 — GANs Trained by a Two Time-Scale Update Rule (FID 제안, 2017)
- C2PA — 콘텐츠 출처·진위 표준(Content Credentials)
- Google DeepMind — SynthID
- Meng 외 — SDEdit: Guided Image Synthesis and Editing with Stochastic Differential Equations (2021)
- Zhang, Rao, Agrawala — Adding Conditional Control to Text-to-Image Diffusion Models (ControlNet, 2023)
- Carlini 외 — Extracting Training Data from Diffusion Models (2023)
- Dathathri 외 — Scalable watermarking for identifying large language model outputs (Nature, 2024)