로그 미분 트릭이 필요했던 까닭은 기대값을 내는 분포가 학습 중인 정책 자신이라서였다. 정책을 바꾸면 어떤 응답이 뽑히는지부터 바뀌므로, 그 변화를 ∇logπθ 로 바꿔 샘플 평균으로 쓸 요령이 필요했다. DPO의 기대값은 이미 모아 둔 선호 쌍에 대한 평균이라 그 분포가 θ 에 달려 있지 않다. 그래서 요령 없이 손실을 곧바로 미분하면 된다. 그런데 나온 모양은 같다. ∇logπθ 앞에 곱하는 수가 있고, 외부 보상이 앉던 그 자리를 가중치 σ(−βz) 가 차지했다. 암묵적 보상이 이미 yw를 충분히 높게 보고 있으면(z가 크면) 가중치가 0으로 줄고, 순서를 틀리게 보고 있으면 1에 가까워진다. 쌍으로 비교하기 때문에 yw와 yl에 공통으로 들어 있는 부분 — 예를 들어 둘 다 같은 문장으로 시작한다면 그 토큰들의 그래디언트 — 은 서로 상쇄된다. 정책 그래디언트에서 베이스라인이 하던 일을 쌍 구조가 대신 한다.
장난감 예제: 왜 "절대 확률"이 아니라 "상대 마진"인가
"대한민국의 수도는?"에 대해 yw = 서울, yl = 부산. 세 가지 상황을 보자. (β=0.5)
상황
πref (서울, 부산)
πθ (서울, 부산)
Δref
Δθ
z
손실
가중치 σ(−βz)
A: 레퍼런스도 잘 구분
0.90, 0.10
0.95, 0.05
2.20
2.94
+0.75
0.52
0.41
B: 둘 다 구분 못함
0.50, 0.50
0.50, 0.50
0
0
0
0.693
0.50
C: 확률은 올랐지만
0.70, 0.01
0.80, 0.05
4.25
2.77
−1.48
1.13
0.68
상황 A — 레퍼런스보다 마진을 0.75만큼 더 벌렸다. 손실이 0.693 아래로 내려갔고 그래디언트도 약해졌다.
상황 B — 레퍼런스도 모르고 지금 모델도 모른다. z=0이라 손실은 −logσ(0)=log2≈0.693. 0이 아니다. 학습을 시작하는 순간 모든 쌍은 이 상태다(πθ=πref이므로). 이 쌍에서도 배울 것이 있다.
상황 C — 서울의 확률은 70%에서 80%로 올랐다. 절대 확률만 보면 개선이다. 그런데 부산도 1%에서 5%로 올랐다. 마진은 4.25에서 2.77로 줄었다. 손실이 가장 크고, 가중치도 가장 크다. “좋은 답이 올랐지만 나쁜 답이 더 많이 따라 올라, 구분력은 후퇴했다.”
손실 곡선 위에서 직접 움직여 보자. 위의 세 상황이 단추로 들어 있고, β 도 슬라이더로 바꿀 수 있다.
문제 4 — β를 바꾸면 누가 세게 밀리나
위 표에서 β=0.5 일 때 가중치 σ(−βz) 는 상황 C가 가장 컸다. (가) β를 0.1로 낮추면 세 쌍의 가중치 차이는 어떻게 변하는가? (나) β를 2로 올리면? 위젯에서 상황 단추를 누른 뒤 β 슬라이더를 옮겨 풀이와 견주어 보라.
김민준
가중치는 σ(−βz). 표대로 β=0.5에서 A 0.41, B 0.50, C 0.68. 틀린 걸 제일 세게 고치는 거죠.
선생님
β를 0.1로 낮추면요?
김민준
β가 작으면 목줄이 길어지니까 더 과감해지잖아요. 틀린 C를 훨씬 더 세게 고치고, 셋의 차이도 더 벌어질 거예요.
선생님
돌려볼까요?
김민준
A 0.48, B 0.50, C 0.54… 오히려 셋이 거의 같아졌어요.
이서연
z에 β가 곱해져서 시그모이드 안의 값이 전부 0 근처로 모이니까 그렇네. 시그모이드는 0 근처에서 거의 직선이고 기울기가 1/4이니까, σ(−βz) ≈ 1/2 − βz/4 가 돼.
선생님
그렇다면 β가 작을 때 DPO는 "틀린 정도"에 따라 쌍을 구분해서 대하나요?
이서연
거의 안 해요. 모든 쌍을 비슷하게 밀어요. 대신 전체 그래디언트 앞에 β가 곱해지니까 걸음은 작아지고요.
김민준
"과감하다"는 건 최종적으로 얼마나 멀리 갈 수 있느냐였지, 쌍별로 얼마나 차별해서 미느냐가 아니었네요.
선생님
그럼 반대로 β를 2로 올리면요?
김민준
A 0.18, B 0.50, C 0.95. 이번엔 차이가 확 벌어져요. 이미 맞힌 쌍은 거의 안 밀고, 틀린 쌍만 밀어요.
이서연
βz가 커져서 시그모이드의 평평한 두 끝으로 밀려난 거네. 맞힌 쪽은 0에, 틀린 쪽은 1에 붙고.
김민준
β가 작을 때는 채점 기준표가 느슨한 조교 같아요. 점수 차이를 거의 안 두니까 잘한 보고서나 못한 보고서나 비슷한 코멘트를 받는.
정리 (가) β=0.1이면 A 0.48, B 0.50, C 0.54로 차이가 거의 사라진다(σ가 원점 근처에서 선형, σ(−βz)≈1/2−βz/4). 작은 β 는 모든 쌍을 비슷하게 민다. (나) β=2 이면 0.18, 0.50, 0.95로 차이가 벌어진다. 큰 β 는 틀린 쌍을 골라 민다.