← all posts
AI 2026.05.03 · 9 min read Advanced

DDIM은 왜 1000 step을 10 step으로 줄일 수 있는가

DDPM 샘플링 병목의 근본 원인부터 Non-Markovian forward process, DDIM sampling 공식, Probability Flow ODE와 DPM-Solver의 고차 수렴까지, 확산 모델 가속의 수학적 구조를 추적한다.


DDPM은 1000 step의 역확산을 거쳐 이미지를 생성한다. 매 step마다 UNet forward pass가 필요하므로, 512×512 이미지 한 장에 수십 초가 걸린다. DDIM(Song et al., 2021)은 같은 학습된 모델로 10–50 step 안에 동등한 품질을 달성한다. 어떻게 가능한가? 그리고 DPM-Solver는 왜 DDIM보다도 적은 step으로 더 정확한가?

DDPM 샘플링이 느린 이유

DDPM의 역확산은 Markov chain이다.

xt1=1αt(xt1αt1αˉtϵθ(xt,t))+σtϵ,t=T,,1x_{t-1} = \frac{1}{\sqrt{\alpha_t}}\left(x_t - \frac{1-\alpha_t}{\sqrt{1-\bar\alpha_t}}\epsilon_\theta(x_t, t)\right) + \sigma_t \epsilon, \quad t = T, \ldots, 1

각 step은 직전 상태 xtx_t에만 의존하므로, step을 건너뛰면 chain이 끊긴다. T=1000T=1000이라면 UNet을 정확히 1000번 호출해야 한다.

문제의 핵심은 Markovian 구조다. 역확산 경로가 매 step의 전이 확률 pθ(xt1xt)p_\theta(x_{t-1}|x_t)로 결정되기 때문에, 중간 상태를 생략할 방법이 없다. 학습은 빠른데 추론이 느린 구조적 비대칭이 여기서 생긴다.

Non-Markovian Forward와 동일 Marginal

DDIM의 출발점은 간단한 질문이다: forward process가 반드시 Markovian이어야 하는가?

Song(2021)은 다음을 보인다. 매개변수 σt0\sigma_t \geq 0에 대해 조건부 분포를

qσ(xt1xt,x0)=N ⁣(αˉt1x0+1αˉt1σt2xtαˉtx01αˉt,  σt2I)q_\sigma(x_{t-1}|x_t, x_0) = \mathcal{N}\!\left(\sqrt{\bar\alpha_{t-1}}x_0 + \sqrt{1-\bar\alpha_{t-1}-\sigma_t^2}\,\frac{x_t - \sqrt{\bar\alpha_t}x_0}{\sqrt{1-\bar\alpha_t}},\; \sigma_t^2 I\right)

로 정의하면, 어떤 σt\sigma_t를 선택하더라도 marginal은 동일하다.

정리 1 · Non-Markovian Forward의 Marginal 동일성

정의 위의 qσq_\sigma에서, 모든 σ\sigma에 대해

qσ(xtx0)=N(αˉtx0,  (1αˉt)I)q_\sigma(x_t \mid x_0) = \mathcal{N}(\sqrt{\bar\alpha_t}\,x_0,\;(1-\bar\alpha_t)I)

이 성립한다. 즉 marginal은 σ\sigma에 무관하다.

▷ 증명

귀납법으로 증명한다. t=Tt=T에서는 정의에 의해 성립. tt에서 성립한다고 가정하면,

qσ(xt1x0)=qσ(xt1xt,x0)qσ(xtx0)dxtq_\sigma(x_{t-1}|x_0) = \int q_\sigma(x_{t-1}|x_t, x_0)\, q_\sigma(x_t|x_0)\, dx_t

조건부의 평균이 xtx_t에 선형이므로 귀납 가정 E[xtx0]=αˉtx0\mathbb{E}[x_t|x_0]=\sqrt{\bar\alpha_t}x_0을 대입하면 E[xt1x0]=αˉt1x0\mathbb{E}[x_{t-1}|x_0]=\sqrt{\bar\alpha_{t-1}}x_0. 분산은

Var[xt1x0]=σt2+(1αˉt1σt2)=1αˉt1\operatorname{Var}[x_{t-1}|x_0] = \sigma_t^2 + (1-\bar\alpha_{t-1}-\sigma_t^2) = 1-\bar\alpha_{t-1}

σt\sigma_t가 소거된다. \square

이 결과가 중요한 이유: 학습된 ϵθ\epsilon_\theta는 marginal q(xtx0)q(x_t|x_0)에서의 노이즈를 예측하도록 훈련됐다. marginal이 σ\sigma와 무관하므로, 어떤 forward 경로를 선택해도 동일한 ϵθ\epsilon_\theta를 재사용할 수 있다.

DDIM Sampling 공식

σt=0\sigma_t=0으로 설정하면 forward process가 완전히 결정론적(deterministic)이 된다. 이때 reverse step은 다음과 같다.

우선 xtx_tϵθ\epsilon_\theta로부터 x0x_0를 추정한다.

x^0=xt1αˉtϵθ(xt,t)αˉt\hat x_0 = \frac{x_t - \sqrt{1-\bar\alpha_t}\,\epsilon_\theta(x_t, t)}{\sqrt{\bar\alpha_t}}

그 다음 xt1x_{t-1}로 이동한다.

xt1=αˉt1x^0+1αˉt1σt2ϵθ(xt,t)+σtϵtx_{t-1} = \sqrt{\bar\alpha_{t-1}}\,\hat x_0 + \sqrt{1-\bar\alpha_{t-1}-\sigma_t^2}\,\epsilon_\theta(x_t, t) + \sigma_t\,\epsilon_t

σt=0\sigma_t=0이면 마지막 항이 사라져 순수 ODE가 된다. 이 공식에는 두 가지 자유도가 있다.

  1. σt\sigma_t 조정: 0이면 deterministic(재현 가능), 크면 다양성 증가
  2. Sub-sampling schedule: 전체 {1,,T}\{1,\ldots,T\}STS \ll T개의 step τ1>τ2>>τS\tau_1 > \tau_2 > \cdots > \tau_S만 사용
트레이드오프

Deterministic (σt=0\sigma_t=0)은 같은 xTx_T에서 항상 같은 결과를 생성한다. 잠재 공간 보간(interpolation)이나 이미지 편집에 유리하다. 반면 σt>0\sigma_t>0인 stochastic 모드는 경로 다양성이 커져 분포 커버리지가 좋아지지만, 재현성이 없다. step 수를 극도로 줄이면(S<10S < 10) 예측 오차가 누적되어 품질이 떨어진다.

Probability Flow ODE와 DPM-Solver

DDIM deterministic은 사실 Probability Flow ODE의 1차 Euler discretization과 동치다.

dxdt=f(x,t)12g(t)2logpt(x)\frac{dx}{dt} = f(x, t) - \frac{1}{2}g(t)^2 \nabla \log p_t(x)

여기서 score logpt(x)ϵθ(x,t)/1αˉt\nabla \log p_t(x) \approx -\epsilon_\theta(x,t)/\sqrt{1-\bar\alpha_t}로 근사된다. DDPM forward를 xt=αˉtx0+1αˉtϵx_t = \sqrt{\bar\alpha_t}x_0 + \sqrt{1-\bar\alpha_t}\epsilon로 쓰고 미분하면, ODE의 우변이 xxϵθ(x,t)\epsilon_\theta(x,t)의 선형 결합으로 정리된다.

dxdt=λ(t)x+μ(t)ϵθ(x,t)\frac{dx}{dt} = \lambda(t)\,x + \mu(t)\,\epsilon_\theta(x, t)

이것이 semi-linear 구조다. Lu et al.(2022)의 DPM-Solver는 이 구조를 활용한다. 선형 부분 λ(t)x\lambda(t)x는 닫힌 형태(closed form)로 정확히 적분하고, 비선형 부분 ϵθ\epsilon_\theta만 수치적으로 근사한다. 지수 가중 구적법(exponentially weighted quadrature)을 사용하면 kk차 solver가 O((Δt)k+1)O((\Delta t)^{k+1}) 오차를 달성한다.

실용적으로는 DPM-Solver-2로 20 step, DPM-Solver-3으로 15 step이면 DDIM 50 step과 유사한 품질을 낸다. Stable Diffusion의 dpm++ 2m sampler가 이 방식이다.

정리

  • DDPM 샘플링의 병목은 Markovian reverse chain — step을 건너뛸 수 없다.
  • DDIM은 Non-Markovian forward를 도입해 marginal을 유지하면서 forward 경로를 자유롭게 선택한다. 학습된 ϵθ\epsilon_\theta를 그대로 재사용할 수 있는 근거가 여기에 있다.
  • σt=0\sigma_t=0으로 설정하면 reverse가 ODE가 되어 sub-sampling이 가능해지고, 1000 step을 10–50 step으로 줄인다.
  • DPM-Solver는 ODE의 semi-linear 구조를 이용해 고차 수렴을 달성하며, 현재 fast high-quality sampling의 실질적 표준이다.

수식 한 줄의 σt=0\sigma_t=0 선택 뒤에는 “marginal이 같으면 경로는 자유다”라는 통찰이 있다.

REF
Song et al. · 2021 · Denoising Diffusion Implicit Models · ICLR