Chapter 15: DDPO — 디퓨전의 정책 그래디언트

Ch14에서 디퓨전 모델에 DPO를 적용하는 법을 배웠다. 핵심은 쌍비교 데이터 — "이 이미지가 저 이미지보다 낫다"는 인간 레이블이 있으면, 보상 모델 없이도 디퓨전 모델을 정렬할 수 있다는 것이었다.

하지만 현실에서는 쌍비교 데이터가 없고, 대신 보상 모델이 있는 경우가 훨씬 많다.

쌍비교 데이터가 없는 상황들:

  1. CLIP 점수 — "이 이미지가 프롬프트에 얼마나 맞는가?"를 0~1로 매겨준다.
    → 쌍이 아니라 개별 점수다.

  2. 미학 점수(aesthetic score) — “이 이미지가 얼마나 아름다운가?”
    → 역시 개별 점수다.

  3. 미분불가능한 보상 — 외부 검출기(“얼굴이 있는가?”), 물리 시뮬레이터(“이 설계가 안정한가?”)
    → 이런 것들은 쌍비교로 수집하기 어렵거나 불가능하다.

  4. 인간 피드백을 이미 보상 모델로 증류해 둔 경우 (ImageReward, HPS, PickScore)
    → 원본 쌍비교 데이터 없이 점수만 남아 있다.

이런 상황에서 디퓨전 모델을 개선하고 싶다면? DPO는 쓸 수 없다 — 쌍이 없으니까. 그렇다면 Part I에서 배운 전통적인 RL 방식, 즉 보상 모델 + 정책 그래디언트로 돌아가야 한다. LLM에서는 PPO(Ch4)가 이 역할을 했다. 디퓨전에서도 같은 일을 할 수 있을까?

의문: 디퓨전에서 정책 그래디언트가 가능한가?

디퓨전 모델에서 RL의 정책 그래디언트를 직접 쓸 수 있는가? 로그확률이 없는데?

핵심: 각 디노이징 스텝이 "행동"이다

DDPO vs D3PO 비교

항목 DDPO (RL) D3PO (DPO 변형)
패러다임 정책 그래디언트 직접 선호 최적화
보상 모델 필요 (CLIP, 미학 점수) 불필요 (쌍비교)
로그확률 스텝별 정확 계산 ELBO 근사
미분불가 보상 가능 불가
온라인 생성 필수 불필요

같은 시작점(x_T)에서 서로 다른 노이즈가 서로 다른 궤적과 보상을 만드는 것을 아래 그림이 보여준다:

DDPO: 같은 시작 → 다른 노이즈 → 다른 보상 x_T 순수 노이즈 r = 0.92 고양이 이미지 ✓ r = 0.78 r = 0.45 r = 0.21 r = 0.08 해킹된 이미지 ✗ t=T 디노이징 스텝 → t=0 → 고보상 궤적의 μ_θ 강화, 저보상 궤적의 μ_θ 약화

노이즈는 탐색이고, μθ\mu_\theta는 학습이다

같은 x_T에서 다른 노이즈 → 다른 궤적 → 다른 이미지 → 다른 보상
→ 보상 좋은 궤적의 μ_θ 판단을 강화
→ 보상 나쁜 궤적의 μ_θ 판단을 약화

이것은 로봇 RL의 가우시안 정책 π(a|s) = N(μ_θ(s), σ²)과 동형:\

  • σ = 탐색 (노이즈)\
  • μ_θ = 학습된 판단 (모델)

DDPO의 한계 — 보상 모델이라는 아킬레스건

DDPO는 D3PO(디퓨전 DPO)와 달리 쌍비교 데이터가 필요 없다는 장점이 있지만, 그 대가로 보상 모델에 전적으로 의존한다. 이것이 실무에서 심각한 문제를 만든다.

DDPO의 보상 모델 의존성:

DDPO의 학습 루프:
이미지 생성 → 보상 모델이 점수 매김 → 점수에 비례하여 정책 업데이트

보상 모델의 선택지:\

  • CLIP 점수: 텍스트-이미지 정합도\
  • 미학 점수 (aesthetic score): 이미지의 시각적 품질\
  • BLIP 점수: 캡션 일치도\
  • 인간 선호 모델 (HPS, PickScore, ImageReward 등)

문제: 이 보상 모델들은 모두 불완전하다.
보상 모델이 "좋은 이미지"라고 판단하는 것과
인간이 "좋은 이미지"라고 판단하는 것 사이에 간극이 있다.

리워드 해킹(Reward Hacking): DDPO의 가장 심각한 문제.

리워드 해킹이란:
모델이 보상 모델의 빈틈을 찾아서,
보상은 높지만 실제로는 좋지 않은 이미지를 생성하는 것.

실제 관찰된 사례들:

CLIP 점수 해킹:
프롬프트: “a cat sitting on a mat”
→ DDPO가 CLIP 점수를 최대화하도록 학습하면:
이미지에 텍스트 "cat"이 직접 쓰여 있는 이미지를 생성하기 시작한다.
→ CLIP은 이미지 안의 텍스트도 "cat"이라는 개념의 증거로 인식
→ 점수는 올라가지만, 이것은 고양이 사진이 아니다.
→ “시험 답안지에 정답을 미리 적어놓는” 것과 같다.

미학 점수 해킹:
→ 극단적으로 채도가 높고 대비가 강한 이미지를 생성
→ 미학 모델이 "선명함"을 높은 점수로 매기는 편향을 이용
→ 결과: 보기에는 화려하지만 프롬프트와 무관한 이미지
→ “시험에서 글씨를 예쁘게 쓰면 점수를 더 주는” 채점자를 이용

인간 선호 모델 해킹:
→ 특정 스타일(고대비 인물 사진 등)에 과도하게 수렴
→ 학습 데이터셋에서 선호 점수가 높았던 패턴을 반복 생성
→ 다양성이 사라지고, 모든 프롬프트에 비슷한 이미지가 나온다
→ Ch11에서 배운 "모드 붕괴"의 시각적 버전

왜 리워드 해킹이 DDPO에서 특히 심각한가:

DPO(Ch14)에서는 리워드 해킹이 덜 심각하다:
→ 보상 모델 자체가 없다 (쌍비교 데이터가 보상 역할)
→ 모델이 해킹할 "보상 함수"가 존재하지 않는다
→ 오프라인 데이터의 범위 밖으로 벗어나기도 어렵다

DDPO에서 리워드 해킹이 심각한 이유:\

  1. 온라인 생성: 모델이 자유롭게 탐색할 수 있으므로
    보상 모델이 예상하지 못한 영역을 발견할 수 있다\
  2. 보상 최대화: 정책 그래디언트는 보상을 최대화하는 방향으로 밀기만 한다
    → 보상 모델의 빈틈 방향으로도 밀린다\
  3. KL 제약의 한계: β가 줄 역할을 하지만,
    줄이 닿는 범위 안에서도 해킹이 가능하다
    → “줄에 묶여 있어도 뒷마당에서 구멍을 파는 개”

비유로 정리:
DDPO = 학생이 자유롭게 답안을 쓰고, 자동채점기가 점수를 매긴다.
→ 학생이 자동채점기의 패턴을 학습해서 점수만 높이는 답안을 쓸 수 있다.
→ 채점기가 완벽하지 않으면 반드시 이런 일이 벌어진다.
→ Ch13의 RLVR에서 "정답이 있으면 리워드 해킹이 불가능하다"와 대비:
수학 문제는 "42가 맞는가?"에 빈틈이 없다.
하지만 "이 이미지가 아름다운가?"에는 빈틈이 가득하다.

현재까지의 완화(mitigation) 시도:

  1. KL 제약 강화: β를 높여서 레퍼런스에서 멀어지지 못하게
    → 효과: 해킹 감소, 하지만 학습 자체도 느려짐 (보수적)

  2. 보상 앙상블: 여러 보상 모델의 평균으로 보상
    → 효과: 한 모델의 빈틈을 다른 모델이 보완
    → 한계: 모든 모델이 공유하는 편향은 해결 불가

  3. 보상 클리핑: 보상이 일정 값 이상이면 잘라냄
    → "더 좋아지는 것"에 상한을 둬서 극단적 최적화 방지
    → 효과적이지만, 최적 클리핑 값을 찾는 것이 또 다른 문제

  4. DPO로 전환: 보상 모델 자체를 제거 (Ch14)
    → 리워드 해킹 문제를 구조적으로 회피
    → 하지만 탐색 능력을 포기해야 한다는 대가

→ 근본적 해결은 아직 없다.
“불완전한 보상 모델로 온라인 RL을 돌리면 해킹은 필연적이다”
이것이 DDPO 계열 연구의 가장 큰 미해결 문제이고,
Ch16에서 다룰 DanceGRPO, B²-DiffuRL 등이 이 문제에 다양한 각도로 접근한다.

시각화 계획