DDPO 추정기: REINFORCE와 PPO를 스텝 위에
스텝마다 로그확률이 정확히 계산된다면, 기대값 속의 그래디언트는 샘플로 어떻게 추정할까? 이미지 한 장을 생성하는 데 수십 스텝이 드니, 한 번 생성한 경로를 한 번만 쓰고 버리기에는 아깝다.
DDPO 논문은 이 그래디언트를 두 가지 방식으로 추정했다. 둘 다 언어모델의 RL에서 익숙한 방식이다.
| DDPOSF | DDPOIS | |
|---|---|---|
| 정체 | 스코어 함수(score function, |
임포턴스 샘플링(다른 정책이 뽑은 샘플을 확률 비율로 보정해 쓰기) + 클리핑 = PPO식 |
| 샘플 사용 | 한 번 생성한 경로로 한 번 업데이트 | 한 번 생성한 경로로 여러 번 업데이트, 비율 |
| 베이스라인 | 프롬프트별 보상 평균·표준편차로 정규화 | 같음 |
| 결과 | 동작하지만 샘플 효율이 낮다 | 더 효율적 — 논문의 주력 방법 |
프롬프트별 보상을 평균과 표준편차로 정규화하는 것은 REINFORCE의 베이스라인이자, GRPO가 "그룹 정규화"라는 이름으로 전면에 내세운 그것이다. 비평가(상태마다 앞으로 받을 보상을 예측하는 가치 모델)는 쓰지 않았다. REINFORCE는 정책 그래디언트 식의 기대값을 뽑은 샘플 몇 개의 평균으로 바꿔 계산하는 가장 기본 꼴이다.
아래는 1차원짜리 장난감 디퓨전을 DDPOSF(REINFORCE + 그룹 평균 베이스라인 — 그룹은 같은 프롬프트에서 뽑은 샘플 묶음)로 학습시키는 위젯이다. 선 하나가 이미지 하나의 디노이징 경로다. 처음 화면은 진짜 보상으로 20번 학습한 상태다. 「처음으로」를 누르면 학습 전으로 돌아간다.
ML에서: 무엇을 보상으로 썼나
실험에 쓴 보상도 눈여겨볼 만하다: 이미지 압축률(JPEG로 압축한 파일 크기 — 미분할 수 없다), 미학 점수(LAION이 공개한 미학 예측 모델의 점수), 그리고 이미지를 보고 글을 쓰는 비전-언어 모델(VLM, 여기서는 LLaVA)이 이미지를 설명한 문장과 프롬프트가 뜻으로 얼마나 가까운지(BERTScore)로 매긴 프롬프트 정합도. 마지막 것은 사람 라벨을 더 모으지 않고 다른 AI 모델의 피드백으로 정렬(사람이 바라는 방식으로 출력을 맞추기)한 사례다. 논문은 언어모델을 AI 피드백으로 다듬는 방법(RLAIF)에서 착안했다고 적었다.
이 보상들은 쌍비교 없이 점수만 준다. 디퓨전을 정렬하는 다른 두 방법과 나란히 놓으면 차이가 드러난다. Diffusion-DPO는 선호 이미지 쌍에 순방향으로 노이즈를 입혀 노이즈 복원 오차로 DPO를 하고, D3PO는 모델이 생성한 경로를 기록해 두고 사람의 선호 표시로 스텝마다 DPO를 한다.
| 항목 | DDPO (정책 그래디언트) | Diffusion-DPO | D3PO |
|---|---|---|---|
| 패러다임 | 보상 최대화 | 직접 선호 최적화 | 스텝별 직접 선호 최적화 |
| 필요한 것 | 보상 함수 (미분 불가여도 됨) | 선호 이미지 쌍 | 모델 생성 이미지에 대한 선호 표시 |
| 로그확률 | 기록한 경로의 스텝별 정확한 값 | ELBO(로그확률의 아래 한계) 근사 — 노이즈 예측 오차 | 기록한 경로의 스텝별 값 |
| 온라인 생성 | 필수 | 불필요 (오프라인) | 필요 |
| 탐색 | 있음 | 없음 | 있음 (제한적) |
| 리워드 해킹 | 취약 (보상 모델의 빈틈을 파고든다) | 해킹할 보상 함수 없음 | 해킹할 보상 함수 없음 |
문제 6 — 이미 아는 두 알고리즘
DDPOSF와 DDPOIS는 각각 언어모델 RL의 어느 알고리즘에 해당하는가? DDPOIS가 같은 샘플을 여러 번 쓸 수 있는 이유는?







정리 DDPOSF = REINFORCE, DDPOIS = PPO식 임포턴스 비율 + 클리핑. 비율이 정책 변화를 보정하므로 한 번 생성한 경로로 여러 번 업데이트할 수 있다.