13. DPO의 진화 — 하나의 알고리즘이 낳은 가계도

자주 하는 실수와 요약

자주 하는 실수
실수 나온 문제 바로잡는 법
더 쓰면 어느 채점 규칙에서나 점수가 오른다고 봄 1 목표가 정해진 규칙은 넘친 만큼 깎는다
목표 마진을 넘은 뒤에는 IPO도 DPO의 꼬리처럼 약하게 민다고 봄 2 IPO의 기울기 2(z−z∗)2(z - z^*) 는 목표에서 멀수록 커진다. 꼬리에서 작아지면서도 0이 되지 않는 것은 DPO 쪽이다
cDPO를 DPO 손실에 1−ε1-\varepsilon 을 곱한 것으로 봄 3 뒤집힌 라벨 항 −log⁡σ(−h)-\log\sigma(-h) 가 반대로 당긴다. 최적점은 σ(h∗)=1−ε\sigma(h^*) = 1-\varepsilon 인 유한한 곳이다
반반 내기는 따는 돈이 잃는 돈보다 크기만 하면 응한다고 봄 4 손실 회피가 있으면 느낌 값의 평균으로 따진다. 손해를 2배로 느끼면 2배는 따야 한다
KTO에서 응답의 로그비율이 그대로면 손실도 그대로라고 봄 5 손실은 로그비율과 기준점의 차를 본다. 모델 전체가 움직여 기준점이 오르면 같은 로그비율도 덜 좋아 보인다
점수 차가 벌어지면 앞선 쪽 점수가 올랐다고 봄 6 두 점수가 함께 내려가도 차는 벌어질 수 있다
DPO 손실이 줄면 선호 응답의 확률이 올랐다고 봄 7 손실은 마진(차이)만 본다. 두 응답이 모두 떨어져도 yly_l 이 더 떨어지면 손실은 준다(우도 변위). ywy_w 를 붙잡으려면 SFT 항이 필요하다
줄어든 확률이 비슷한 좋은 답으로 간다고 봄 7 데이터에 없는 응답에는 아무 제약이 없다. 좋은 곳으로 간다는 보장이 없다
레퍼런스 대비 마진이 양수면 생성할 때도 선호 응답이 앞선다고 봄 8 생성은 레퍼런스를 보지 않는다. 지금 정책의 (평균) 로그확률로 견줘야 한다
평균 로그확률을 “더한” 요소로만 셈 10 평균으로 나누는 것은 합이 만들던 길이 편향을 빼는 수단이다
하나씩 넣어 본 효과를 더하면 함께 넣은 효과가 된다고 봄 9, 11 부품끼리 서로의 효과를 바꾼다. 조합은 함께 넣어 직접 잰다
요약

DPO의 변형들은 DPO의 부품을 하나씩 빼거나 바꾼 결과다. IPO와 cDPO는 링크 함수를 바꿔 마진이 유한한 지점에서 멈추게 했다. KTO는 쌍을 덜어내고, 응답 하나의 로그비율을 모델 전체가 움직인 정도(기준점)와 견주어 좋다·나쁘다 한 비트로 배운다. CPO와 ORPO는 레퍼런스를 덜어냈고, 레퍼런스가 사라진 자리는 선호 응답의 SFT 손실이 닻으로 메운다 — DPO 손실만으로는 마진이 벌어지는데도 선호 응답의 확률이 떨어질 수 있기 때문이다(우도 변위). SimPO는 보상을 평균 로그확률로 바꿔 학습 목표를 생성 지표와 맞추고, 길이 편향과 레퍼런스를 함께 없앴다. RainbowPO는 이 변형들을 일곱 개 부품의 좌표계로 정리하고 같은 조건에서 하나씩 다시 재어, 효과 있는 부품만 골라 조합하면 개별 변형보다 낫다는 것을 보였다. 다만 부품의 효과는 따로 더해지지 않아 조합은 직접 재야 했다. 그리고 모든 변형은 미리 만들어 둔 정적 데이터로 학습한다는 틀을 공유하고, 실무에서는 알고리즘 선택보다 데이터의 품질이 더 크게 작용할 수 있다.