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

혼동하기 쉬운 점과 요약

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

그런데, 보상은 어디 있나

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

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