자주 하는 실수와 요약
자주 하는 실수
| 실수 | 나온 문제 | 바로잡는 법 |
|---|---|---|
| 많이 적어 낸 답안은 어느 채점에서나 유리하다고 봄 | 1 | 채점이 무엇을 세는지 먼저 본다. 빠뜨린 것을 세면 다 적는 쪽이, 틀린 것을 세면 확실한 것만 적는 쪽이 이긴다 |
| 순방향 KL과 역방향 KL로 맞춘 모델이 같다고 봄 | 2 | KL은 비대칭이다. 기대값을 데이터에서 취하는지 모델에서 취하는지 먼저 본다 |
| 대칭인 목표의 최적해도 대칭이라고 봄 | 2 | 대칭인 것은 최적해의 집합이다. 역방향 KL은 봉우리 하나를 고른다 |
최대우도 맞춤(norm.fit)으로 역방향 KL도 풀었다고 여김 |
2 | 최대우도는 데이터 쪽 기대값, 곧 순방향 KL만 줄인다 |
| 한쪽에 몰아 준 모델은 자신만만해서 순방향 KL에서 진다고 봄 | 3 | 항별로 쪼개 보라. 벌점은 목표가 말하는 토큰을 버린 자리에서 나온다 — 데이터가 한 말을 못 알아들은 벌점 |
| 확률 0을 어디에도 두지 않으면 어느 방향으로 재도 안전하다고 봄 | 3 | 역방향은 모델이 말하는 쪽이다. 목표가 거의 안 하는 말에 확률을 크게 두면 벌점이 크다. 같은 두 후보의 순위가 방향에 따라 뒤집힌다 |
| 표가 줄면 상대 메뉴보다 덜 좋아하게 됐다고 봄 | 4 | 둘을 견줄 때는 표 수가 아니라 비율을 본다 |
| 좋은 답의 확률이 줄면 DPO 손실이 커진다고 봄 | 5 | 손실은 |
| 6 | 큰 |
|
| 지금 모델의 비율만 보고 개선이라 여김 | 7 | 손실은 그 비율을 레퍼런스의 비율과 견준다. 50배이던 격차가 8배가 되었으면 후퇴다 |
| 확률의 차이로 개선 여부를 판단 | 7 | 식에는 로그확률이 들어간다. 로그는 차이가 아니라 비율을 본다 |
요약
SFT는 남이 만든 답(데이터) 위에서 기대값을 취해 순방향 KL을 줄인다. 그래서 모든 정답 봉우리를 덮으려 하고, 모델 자신의 실수는 손실에 직접 나타나지 않는다. KL로 묶은 RL은 모델이 만든 답 위에서 기대값을 취해 역방향 KL을 줄인다. 그래서 실수를 그 자리에서 벌하고 좋은 봉우리 하나를 고른다. KL(A‖B)는 A가 말하고 B가 듣는다고 읽으면 방향을 헷갈리지 않는다. 순방향은 못 알아들으면 혼나는 훈련, 역방향은 엉뚱한 말을 하면 혼나는 훈련이어서, 같은 후보들의 순위가 방향에 따라 뒤집히기도 한다. 방향이 답을 가르는 것은 모델이 목표를 다 담지 못할 때다. DPO는 나쁜 예와 KL 목줄을 한 줄 손실로 합쳐 레퍼런스 대비 선호 마진
그런데, 보상은 어디 있나
이 교재의 제목은 "생성모델의 강화학습"이다. 강화학습이라면 보상이 있어야 한다. DPO의 수식에는 보상이 보이지 않는다. 좋은 답과 나쁜 답의 쌍, 확률의 로그, 시그모이드뿐이다.
DPO 논문의 부제가 힌트다: “Your Language Model is Secretly a Reward Model” — 당신의 언어모델은 비밀리에 보상 모델이다. 보상은 이 한 줄 수식의 어디에 숨어 있을까? 그리고 보상을 드러내 놓고 쓰는 강화학습은 어떤 모습이었을까?