7. 선호 쌍의 조건 — 어떤 데이터가 DPO를 움직이는가

분포 안의 비선호 응답: 누구의 오답노트인가

모델이 한 번도 만들지 않는 엉터리 문자열을 yl\textcolor{#e000a5}{y_l} 로 쓰면, 그 확률을 아무리 깎아도 모델의 답은 바뀌지 않았다. 그렇다면 문법도 완벽하고 그럴듯한 오답이라면 늘 괜찮을까? 그럴듯함은 누구 기준인가? 어떤 모델에게는 흔한 실수가 다른 모델에게는 한 번도 저지르지 않는 실수일 수 있다.

왜 "분포 안"이 중요한가

같은 질문 "대한민국의 수도는?"을 두 모델에게 해 보자. 하나는 선호 데이터를 만든 강한 모델이고, 하나는 그 데이터로 학습할 작은 모델이다. 강한 모델은 정부 부처가 많이 옮겨 간 세종을 수도로 착각하는 실수를 가끔 하고, 작은 모델은 큰 도시 부산을 대는 실수를 한다고 하자. 두 모델이 네 답에 주는 확률은 아래와 같다(장난감 숫자).

데이터를 만든 모델 (강한 모델) 0.70 0.20 0.01 0.09 학습하는 모델 (작은 모델) 0.70 ≈ 0 0.15 0.15 서울 세종 부산 기타

데이터셋에는 강한 모델이 쓴 쌍 “서울입니다” vs "세종입니다"가 들어간다. 작은 모델은 "세종입니다"에 0.001밖에 주지 않으므로, 이 쌍으로 세종을 0까지 깎아도 옮겨 가는 확률은 0.001이다. 작은 모델이 정말로 자주 하는 실수인 부산의 0.15는 이 쌍이 건드리지 않는다. 강한 모델에게는 그럴듯한 오답이, 작은 모델에게는 엉터리 문자열과 다를 바 없다.

그러니 물어야 할 것은 "이 데이터셋의 응답은 누가 만들었는가"다. 반드시 레퍼런스 πref\textcolor{#6f6f78}{\pi_\text{ref}} 자신이 만든 것은 아니다.

데이터 생성 주체 예시 분포 일치 비유
경우 1 πref\textcolor{#6f6f78}{\pi_\text{ref}} 자신 자기 샘플에 라벨링 ✓ 가장 이상적 자기 오답노트로 공부
경우 2 같은 계열의 더 강한 모델 Llama-3-70B → Llama-3-8B 학습 △ 부분 일치 선배의 오답노트 — 겹치는 부분만 유용
경우 3 아예 다른 모델 GPT 계열 응답 → Llama 학습 ✗ 불일치 가능 다른 학교 학생의 오답노트 — 시험 범위가 다를 수 있다

이 차이에 이름을 붙이면 두 축이 된다. 온라인/오프라인은 학습 중에 새 데이터를 만드는가, 온폴리시/오프폴리시는 데이터를 만든 정책이 지금 학습 중인 정책인가를 묻는다. PPO와 GRPO(비평가 대신 같은 프롬프트에 뽑은 응답 여러 개의 평균 점수를 기준으로 삼는 온라인 방법)는 학습 중에 지금의 모델이 새 응답을 만드니 온라인·온폴리시이고, 미리 모아 둔 쌍으로 학습하는 DPO는 오프라인·오프폴리시다. 경우 1도 학습이 시작되는 순간에만 온폴리시다. 데이터 품질 문제는 주로 오프폴리시에서, 데이터가 낡는 문제는 오프라인에서 온다. 둘이 겹치기 때문에 DPO의 한계는 구조적이다.

실제로 많이 쓰는 공개 선호 데이터셋 UltraFeedback(2023)을 보자. 만든 사람들은 약 6만 4천 개의 질문마다 17개 모델(GPT-4, ChatGPT, Bard 같은 상용 모델과 여러 공개 모델)의 모둠에서 네 모델을 무작위로 골라 답을 쓰게 하고, GPT-4가 네 답에 1~5점을 매기게 했다. 여기서 뽑은 yl\textcolor{#e000a5}{y_l} 은 그 답을 쓴 모델들의 분포 안에 있지만, 이 데이터로 학습하는 Llama-3-8B(메타가 2024년에 공개한 Llama 3 계열 언어모델, 8B 는 파라미터 80억 개)의 분포 안에 있다는 보장은 없다.

학습 초기에도 이미 불일치가 있다: πθ≈πref≠πdata\textcolor{#1565c0}{\pi_\theta} \approx \textcolor{#6f6f78}{\pi_\text{ref}} \neq \pi_\text{data} (πdata\pi_\text{data} 는 데이터셋의 응답을 만든 모델의 분포).
학습이 진행되면 더 벌어진다: πθ\textcolor{#1565c0}{\pi_\theta}가 πref\textcolor{#6f6f78}{\pi_\text{ref}}에서 멀어질수록 데이터셋의 yl\textcolor{#e000a5}{y_l}은 점점 "외국어"가 되고, 학습 신호(시그널)가 소진된다. 정책 그래디언트는 기대값을 취하는 분포가 바뀌면 치우친다. PPO는 이를 임포턴스 가중치(두 정책의 확률 비율을 샘플마다 곱하는 수 — 신경망 파라미터가 아니다)와 클리핑(그 비율을 잘라 한 번에 멀리 가지 못하게 하기)으로 관리하지만, DPO에는 그런 장치가 없다.

그런데도 이런 데이터가 실무에서 작동하는 이유: 여러 모델의 답 가운데 GPT-4가 점수로 가려 낸 쌍이라 데이터 자체의 질이 높기 때문이다. 분포 불일치의 비용을 데이터 품질의 이득이 상쇄한다. 하지만 이 상쇄에는 한계가 있다.

온라인·온폴리시 학습이 공짜로 주는 것

GRPO 같은 온라인 방법은 매 배치마다 현재 πθ\textcolor{#1565c0}{\pi_\theta}가 직접 응답을 생성한다. 그러면 좋은 쌍의 네 조건(1. yl\textcolor{#e000a5}{y_l}이 그럴듯하다, 2. 차이가 판단 기준을 담는다, 3. 품질 차이가 적당하다, 4. yl\textcolor{#e000a5}{y_l}이 현재 모델의 분포 안에 있다) 가운데 세 개가 저절로 충족된다.

데이터 품질 조건 확보 대표 사례
오프라인·오프폴리시 (DPO) 사람이 큐레이션으로 확보 사람이 기준을 세워 골라 모은 쌍
온라인·온폴리시 (PPO, GRPO) 분포의 성질로 자동 충족 큐레이션 대신 매 배치 생성 비용

공짜는 아니다. 매 배치마다 생성하는 비용과 그 위험이 대가다.

이 대가를 치를 만한지 실제로 견준 연구가 있다. 2024년 타즈와르(Fahim Tajwar)와 동료들은 — DPO를 처음 낸 라파일로프와 샤르마도 저자로 참여했다 — 작은 장난감 문제부터 UltraFeedback으로 만든 실제 언어모델 과제까지, 같은 선호 데이터로 여러 학습법을 견주었다. 대체로 학습하는 모델이 직접 뽑은 샘플을 쓰는 방법과 나쁜 응답의 확률을 직접 끌어내리는 방법이, 미리 모은 데이터의 좋은 응답을 따라 쓰기만 하는 방법보다 나았다. 특히 보상이 높은 답이 레퍼런스가 좀처럼 내지 않는 곳에 있을 때 모델이 직접 뽑은 샘플의 이득이 컸다. 거꾸로 좋은 답이 이미 레퍼런스가 자주 내는 곳에 있으면 오프라인의 단순한 방법으로도 충분했다.

나쁜 쌍의 패턴 vs 좋은 쌍의 패턴

네 조건을 모두 모아 쌍의 패턴으로 적으면 이렇다.

나쁜 쌍 ✗ 이유
정답 vs 엉터리 마진을 여는 가장 쉬운 길이 쓸모없는 길. SFT와 다를 바 없음
정답 vs 정답 (거의 동일) 품질 차이 ≈ 0. 라벨이 사실상 동전 던지기
좋은 답 vs 모델이 절대 안 만들 답 분포 밖. 없는 실수를 교정
좋은 쌍 ✓ 학습 목표
정답 vs 그럴듯하지만 틀린 답 사실 정확성
간결한 답 vs 장황한 답 스타일 (길이 차이가 마진에 섞이는 함정 주의)
안전한 답 vs 미묘하게 위험한 답 안전성 경계
결함 없는 답 vs 미묘한 결함이 있는 답 모델이 실제로 저지르는 결함
ML에서: 보상 모델이 없으니 해킹할 대상도 없다

오프라인 데이터에 묶인 것이 약점만은 아니다. RLHF에서는 따로 학습한 보상 모델의 점수를 PPO가 끌어올리는데, 보상 모델이 불완전하면 정책은 점수만 높고 실제로는 쓸모없는 출력을 찾아낸다. 이것이 리워드 해킹(평가 기준의 빈틈을 파고들어 점수만 올리는 일)이다. DPO에는 최적화할 바깥 점수가 없다. 데이터에 적힌 선호가 곧 보상이라 파고들 빈틈도 없다. 대신 해킹할 수 없는 만큼 탐색도 할 수 없어, 데이터셋 밖의 더 좋은 답을 스스로 찾아가지 못한다. 오프라인 DPO와 온라인 방법 사이의 선택은 결국 이 트레이드오프다.

문제 4 — 남의 오답노트

민준이 지난 모의고사에서 틀린 20문항은 부호 실수 12, 단위 빠뜨림 8이었고 개념 오해는 없었다. 서연의 오답노트에는 서연이 자주 틀린 순서대로 첫 쪽에 개념 오해(서연은 10문항), 둘째 쪽에 단위 빠뜨림(서연은 6문항)이 적혀 있다. 노트 한 쪽을 읽으면 읽는 사람의 그 실수가 절반으로 준다고 하자. (가) 민준이 서연의 노트 두 쪽을 다 읽으면 몇 문항을 건지나? (나) 민준이 자기 부호 실수를 적은 한 쪽과 견주면? (다) 한 학기 뒤 민준이 단위 빠뜨림을 다 고쳤다. 서연의 노트에서 건질 것은 얼마가 남나?

김민준 (평상)
김민준
서연 노트에는 개념 오해 10, 단위 6이 적혀 있으니까, 둘 다 반으로 줄면 5 더하기 3, 8문항 건지겠네요.
선생님 (질문)
선생님
민준 학생, 그 10과 6은 누가 틀린 개수죠? 민준 학생 시험에서 줄어드는 건 누구의 실수예요?
김민준 (난처함)
김민준
서연이 틀린 개수네요. 줄어드는 건 제 실수고요. 저는 개념 오해가 0개니까 첫 쪽은 0, 단위는 8에서 4로. 4문항이에요.
이서연 (평상)
이서연
네가 부호 실수를 직접 적은 쪽은 6문항이니까, 내 노트 두 쪽을 다 읽는 것보다 네 노트 한 쪽이 더 낫네.
선생님 (평상)
선생님
그래요. 그럼 한 학기 뒤 민준 학생이 단위 실수까지 다 고치면, 서연 학생 노트에서 건질 건 얼마가 남죠?
이서연 (생각)
이서연
겹치던 단위 실수가 사라지니까 0이에요. 민준이 달라질수록 제 노트와는 더 멀어지네요.
김민준 (평상)
김민준
족보 공부랑 같네요. 다른 학교 기출 백 개보다 내가 틀린 우리 과목 기출 열 개가 나은.

정리 (가) 개념 오해 0 → 0, 단위 빠뜨림 8 → 4로 4문항. 서연이 틀린 개수(10, 6)가 아니라 민준이 틀린 개수가 줄어든다. (나) 자기 부호 실수 쪽은 6문항으로 더 많다. (다) 0문항. 읽는 사람이 달라질수록 남의 노트와 겹치는 실수는 줄어든다.

문제 5 — 남이 쓴 선호 데이터

UltraFeedback으로 Llama-3-8B를 DPO 학습한다. (가) UltraFeedback의 답을 쓴 17개 모델 가운데 10개는 논문이 LLaMA 계열로 묶은 모델이다. 그러면 이 학습은 표의 경우 2인가? (나) SimPO 논문(2024)은 같은 UltraFeedback 프롬프트로 Llama-3-8B-Instruct를 학습하면서, 응답은 Llama-3-8B-Instruct가 프롬프트마다 다섯 개씩 새로 쓰게 하고, 따로 된 심사 모델(PairRM)이 매긴 점수로 가장 높은 답과 가장 낮은 답을 쌍으로 삼았다. 표의 어느 경우로 옮긴 것인가? (다) 심사까지 학습하는 모델 자신에게 맡기면 무엇이 걱정되는가?

김민준 (자신만만)
김민준
답을 쓴 모델 17개 가운데 10개가 LLaMA 계열이잖아요. 같은 계열이니까 경우 2죠.
선생님 (질문)
선생님
UltraFeedback은 2023년 가을에 나왔고, Llama 3는 2024년 4월에 나왔어요. 그 10개 가운데 Llama 3는 몇 개죠?
김민준 (난처함)
김민준
하나도 없겠네요. 이름만 같은 집안이지 세대가 다른 모델들이에요.
이서연 (평상)
이서연
세대가 같아도 걱정은 남아. 경우 2도 학습하는 모델이 아니라 형님 모델이 쓴 답이잖아. 게다가 학습이 진행되면 Llama-3-8B는 레퍼런스에서도 멀어지니까, 누가 썼든 남이 쓴 답과는 거리가 점점 벌어져.
선생님 (평상)
선생님
그래요. 경우 2보다 경우 3에 가깝다고 보는 게 맞아요. 그럼 SimPO 설정은 무엇을 바꾼 걸까요?
이서연 (평상)
이서연
프롬프트는 그대로 두고, 답을 Llama-3-8B-Instruct가 직접 썼어요. 학습을 시작하는 모델이 자기 샘플에 라벨을 받은 셈이니 경우 1이에요.
선생님 (질문)
선생님
그런데 점수는 PairRM이라는 따로 된 심사 모델이 매겼어요. 채점까지 Llama에게 맡기면 안 될까요?
김민준 (생각)
김민준
자기가 틀린 걸 자기가 알아볼 수 있으면 애초에 안 틀렸겠죠. 자기 답에 후한 점수를 줄 수도 있고요. 답은 내가 쓰고 채점은 남이 해야 하네요.
선생님 (흐뭇함)
선생님
정확해요. 답은 학습하는 모델이 쓰고, 심사는 밖에서 맡아요. 이걸 라운드마다 되풀이하는 것이 반복 DPO예요.
김민준 (평상)
김민준
아까 서연 노트 문제랑 같네요. 오답노트는 내 걸로 쓰고, 채점은 선생님이 해 주시는.

정리 (가) 경우 2가 아니다. 2023년의 LLaMA 계열 답이라 Llama 3가 쓴 답은 하나도 없고, 같은 세대라도 학습하는 모델이 쓴 답이 아니다. 학습이 진행될수록 πθ\textcolor{#1565c0}{\pi_\theta} 와 데이터를 쓴 분포의 거리는 커져 신호가 소진된다. (나) 경우 1. 프롬프트는 두고 응답을 학습 대상 모델이 직접 생성했다. (다) 자기 실수를 알아보지 못하거나 자기 답을 후하게 채점할 수 있다. 답은 학습하는 모델이 쓰고 심사는 밖에서 맡는다.