1. DPO 맛보기 — 한 줄 수식이 하는 일

자주 하는 실수와 요약

자주 하는 실수
실수 나온 문제 바로잡는 법
많이 적어 낸 답안은 어느 채점에서나 유리하다고 봄 1 채점이 무엇을 세는지 먼저 본다. 빠뜨린 것을 세면 다 적는 쪽이, 틀린 것을 세면 확실한 것만 적는 쪽이 이긴다
순방향 KL과 역방향 KL로 맞춘 모델이 같다고 봄 2 KL은 비대칭이다. 기대값을 데이터에서 취하는지 모델에서 취하는지 먼저 본다
대칭인 목표의 최적해도 대칭이라고 봄 2 대칭인 것은 최적해의 집합이다. 역방향 KL은 봉우리 하나를 고른다
최대우도 맞춤(norm.fit)으로 역방향 KL도 풀었다고 여김 2 최대우도는 데이터 쪽 기대값, 곧 순방향 KL만 줄인다
한쪽에 몰아 준 모델은 자신만만해서 순방향 KL에서 진다고 봄 3 항별로 쪼개 보라. 벌점은 목표가 말하는 토큰을 버린 자리에서 나온다 — 데이터가 한 말을 못 알아들은 벌점
확률 0을 어디에도 두지 않으면 어느 방향으로 재도 안전하다고 봄 3 역방향은 모델이 말하는 쪽이다. 목표가 거의 안 하는 말에 확률을 크게 두면 벌점이 크다. 같은 두 후보의 순위가 방향에 따라 뒤집힌다
표가 줄면 상대 메뉴보다 덜 좋아하게 됐다고 봄 4 둘을 견줄 때는 표 수가 아니라 비율을 본다
좋은 답의 확률이 줄면 DPO 손실이 커진다고 봄 5 손실은 Δθ−Δref\textcolor{#1565c0}{\Delta_\theta} - \textcolor{#6f6f78}{\Delta_\text{ref}}, 곧 두 확률의 비율만 본다. 둘이 같은 비율로 줄면 손실은 그대로다
β\textcolor{#827717}{\beta}가 크면 모델이 더 멀리 간다고 봄 6 큰 β\textcolor{#827717}{\beta}는 짧은 목줄이다. 작은 마진 변화로 손실이 포화해 레퍼런스 근처에 머문다
지금 모델의 비율만 보고 개선이라 여김 7 손실은 그 비율을 레퍼런스의 비율과 견준다. 50배이던 격차가 8배가 되었으면 후퇴다
확률의 차이로 개선 여부를 판단 7 식에는 로그확률이 들어간다. 로그는 차이가 아니라 비율을 본다
요약

SFT는 남이 만든 답(데이터) 위에서 기대값을 취해 순방향 KL을 줄인다. 그래서 모든 정답 봉우리를 덮으려 하고, 모델 자신의 실수는 손실에 직접 나타나지 않는다. KL로 묶은 RL은 모델이 만든 답 위에서 기대값을 취해 역방향 KL을 줄인다. 그래서 실수를 그 자리에서 벌하고 좋은 봉우리 하나를 고른다. KL(A‖B)는 A가 말하고 B가 듣는다고 읽으면 방향을 헷갈리지 않는다. 순방향은 못 알아들으면 혼나는 훈련, 역방향은 엉뚱한 말을 하면 혼나는 훈련이어서, 같은 후보들의 순위가 방향에 따라 뒤집히기도 한다. 방향이 답을 가르는 것은 모델이 목표를 다 담지 못할 때다. DPO는 나쁜 예와 KL 목줄을 한 줄 손실로 합쳐 레퍼런스 대비 선호 마진 z=Δθ−Δref\textcolor{#d9670b}{z} = \textcolor{#1565c0}{\Delta_\theta} - \textcolor{#6f6f78}{\Delta_\text{ref}} 를 벌린다. 레퍼런스와 똑같으면 손실은 출발선 log⁡2\log 2이고, 마진은 확률의 비율(로그)로 재므로 좋은 답과 나쁜 답의 확률이 함께 줄어도 손실은 모른다. β\textcolor{#827717}{\beta}가 클수록 목줄이 짧다.

그런데, 보상은 어디 있나

이 교재의 제목은 "생성모델의 강화학습"이다. 강화학습이라면 보상이 있어야 한다. DPO의 수식에는 보상이 보이지 않는다. 좋은 답과 나쁜 답의 쌍, 확률의 로그, 시그모이드뿐이다.

DPO 논문의 부제가 힌트다: “Your Language Model is Secretly a Reward Model” — 당신의 언어모델은 비밀리에 보상 모델이다. 보상은 이 한 줄 수식의 어디에 숨어 있을까? 그리고 보상을 드러내 놓고 쓰는 강화학습은 어떤 모습이었을까?