였다. DPO는 여기의 rψ 자리에 암묵적 보상 βlogπrefπθ — 학습 중인 정책(응답을 뽑는 모델) πθ 와, 학습을 시작할 때 복사해 얼려 둔 레퍼런스 πref 의 로그비율 — 를 끼워 넣었을 뿐이다. 보상 모델을 지웠어도 보상 모델을 학습하던 방식은 그대로 물려받은 것이다.
그렇다면 질문은 이것이다. 마진은 실숫값이고, 크게 만들면 그만일 것 같은데 — 왜 시그모이드를 씌우고 −log 를 취하는가?
Bradley-Terry 모델: 승률은 실력 차의 시그모이드다
점수 차를 크게 만들기만 하면 될 것 같은데, 보상 모델과 DPO는 왜 굳이 점수 차를 확률로 바꿀까? 바꾼다면 왜 하필 시그모이드로 바꿀까?
점수 차를 확률로
사람이 남긴 라벨은 "A가 B보다 낫다"는 사건이다. 이 사건을 설명하는 모델을 세우고 그 우도(likelihood — 모델이 관측된 라벨에 주는 확률)를 최대화하려면, 모델은 "A가 B보다 나을 확률"을 내놓아야 한다. 확률은 0과 1 사이다. 반면 두 응답의 점수 차는 −∞ 부터 +∞ 까지 아무 값이나 된다. 그러니 실숫값을 (0,1) 로 보내는 함수가 필요하다.
점수 차
σ(점수차)
뜻
크게 양수
≈ 1
거의 확실히 A가 낫다
0
0.5
반반
크게 음수
≈ 0
거의 확실히 B가 낫다
하지만 실숫값을 확률로 바꾸는 함수는 시그모이드만 있는 게 아니다(정규분포의 누적분포함수도 있다). 왜 하필 이 함수인가? 답은 체스 대회의 성적표를 두고 고민하던 사람들에게서 나왔다.
역사: 체스 대회 성적표에서 실력을 읽어 내기
대회가 끝나면 선수마다 딴 점수가 남는다. 그런데 점수 합계는 누구와 붙었는지를 모른다. 강한 상대를 많이 만난 선수와 약한 상대를 많이 만난 선수의 5점은 같은 5점이 아니다. 1929년 독일의 수학자 에른스트 체르멜로(Ernst Zermelo)는 이 문제를 확률 문제로 바꿨다. 선수마다 보이지 않는 "힘"이 하나씩 있고, 두 선수가 붙으면 한 선수가 이길 확률은 두 힘 가운데 자기 힘이 차지하는 비율이라고 두었다. 그리고 실제로 나온 승패가 나올 확률이 가장 커지도록 힘을 정했다 — 최대우도다. 그는 이 방법을 1924년 뉴욕 대회(라스커, 카파블랑카, 알레힌 같은 당대 최강자들이 나온 대회)의 성적에 적용했다. 논문 제목이 곧 생각이었다: 「대회 결과의 계산을 확률론의 최대 문제로」.
이 논문은 독일어 수학 학술지에 실려 통계학자들의 눈에 잘 띄지 않았다. 1952년 미국의 통계학자 랠프 브래들리(Ralph A. Bradley)와 밀턴 테리(Milton E. Terry)는 학술지 Biometrika 에 실은 「불완전 블록 설계의 순위 분석: 쌍비교 방법」에서 같은 모델을 다시 세웠다. 제목의 「불완전 블록」은 한 번의 실험 묶음에서 모든 대상을 다 비교하지 못하는 실험 설계를 가리킨다. 둘씩만 비교한 결과를 모아 전체의 줄을 세우는 도구가 필요했던 것이다. 이후 이 모델은 두 사람의 이름으로 불리게 되었다.
BT 모델: 점수 하나, 승률은 점수 차로
Bradley-Terry 모델(BT)은 쌍비교 데이터에서 각 대상의 "실력"을 추정한다. 각 대상 i 에 실력 점수 ri 하나를 주고,
오른쪽 모양이 체르멜로의 가정 그대로다. 실력을 er 라는 "힘"으로 바꾸면, 이길 확률은 두 힘의 비율이다. 두 응답 중 하나를 고르는 소프트맥스와 똑같은 모양이다.
왜 하필 시그모이드인가: 힘의 비율에서 나온다
대회에서는 모든 선수가 서로 붙지 않는다. 붙어 본 적 없는 두 선수의 승부를 점쳐야 할 일이 대진표를 짤 때마다 생긴다. 힘의 비율이라는 가정이 무엇을 뜻하는지 숫자로 보자. A가 B에게 2 대 1로 이기고(이길 확률 2/3), B가 C에게 3 대 1로 이긴다면(3/4), A는 C에게 몇 대 몇일까? 힘이 비율로만 승부를 정한다면 힘을 곱하면 된다. A의 힘은 B의 2배, B의 힘은 C의 3배이니 A는 C의 6배, 곧 6 대 1이고 이길 확률은 6/7 ≈ 0.857 이다. 이긴 확률 ÷ 진 확률을 오즈라 부르면, 오즈가 곱해진다.
곱해지는 양은 로그를 씌우면 더해진다. 점수를 힘의 로그 r=log(힘) 로 적으면 ln2+ln3=ln6 — 오즈의 곱이 점수 차의 합이 된다.
로그 오즈가 점수 차와 정확히 같아지는 함수가 시그모이드다. 그러니 시그모이드는 편해서 고른 모양이 아니라 "이길 확률은 힘의 비율"이라는 가정 하나에서 나온다. 가정이 다르면 함수도 다르다. 한 판 한 판의 실력 발휘가 정규분포로 흔들린다고 보면, 이길 확률은 정규분포의 누적분포함수로 나온다. 심리학의 쌍비교는 먼저 이 가정을 썼다. 어느 가정이 맞는지는 데이터가 정한다.
체스의 Elo 레이팅(Elo 는 머리글자가 아니라 이 방식을 만든 물리학 교수이자 체스 마스터 아르파드 엘로(Arpad Elo)의 이름이다)이 그 비교를 실제로 겪었다. 미국 체스 연맹이 1960년에, 국제 체스 연맹(FIDE)이 1970년에 엘로의 방식을 받아들였는데, 엘로는 처음에 한 판의 실력 발휘를 정규분포로 두었다. 뒤에 쌓인 대국 기록을 보니 약한 선수가 이기는 일이 정규분포가 예상하는 것보다 잦았고, 미국 체스 연맹은 로지스틱 곡선(시그모이드) 쪽으로 옮겼다. 지금 쓰는 Elo는 단위만 다른 BT다 — Elo 400점 차가 오즈 10배가 되도록 척도를 잡았다. Elo 400점 차면 승률 91%다. 온라인 게임의 등급 점수도 같은 갈래다. 1995년 마크 글리크먼(Mark Glickman)의 Glicko는 같은 로지스틱 곡선에 "이 점수를 얼마나 믿을 만한가"를 더했고, 마이크로소프트 연구소가 Xbox Live에 쓴 TrueSkill(2005년부터)은 실력 발휘를 정규분포로 두는 쪽을 택했다.
물론 BT는 절대적 진리가 아니라 가정이다. "선호는 대상마다 하나의 점수로 요약되고, 점수 차만이 승률을 정한다"는 가정. 쓸모 있는 단순화이고, 그 가정이 깨지는 곳은 다음 절에서 본다.
ML에서: LLM 순위표
사람들이 같은 질문에 대한 두 모델의 답을 나란히 보고 더 나은 쪽에 투표하는 LLM 순위표 Chatbot Arena도 처음에는 체스처럼 Elo를 썼다. 투표가 들어올 때마다 두 모델의 점수를 조금씩 고치는 방식이라, 같은 투표라도 들어온 순서에 따라 점수가 달라졌다. 체스 선수는 실력이 변하니 최근 경기를 더 믿는 것이 맞지만, 한 번 공개된 모델은 파라미터가 바뀌지 않는다. 그래서 2023년 12월 운영진(LMSYS)은 그때까지 모인 13만 건이 넘는 투표 전체에 BT를 최대우도로 한 번에 맞추는 방식으로 바꿨다. 보상 모델이 선호 쌍 데이터에서 점수를 배우는 것과 같은 계산이다.
문제 1 — Elo에서 승률로
BT에서 Elo 점수 E 와 실력 점수 r 의 관계는 r=E⋅400ln10 이다. Elo 200점 차의 승률을 계산하시오.
김민준
r=200×ln10/400=1.15, σ(1.15)=0.76. 76%예요.
이서연
400점이면 r=ln10 이니까 σ(ln10)=10/11=0.91. 오즈가 정확히 10배네.
선생님
맞아요. 그럼 Elo 1600과 2000의 승률 차이와, 800과 1200의 승률 차이는 어느 쪽이 클까요?
김민준
1600이랑 2000이 더 크죠. 고수끼리는 차이가 더 크게 나니까.
이서연
식에 들어가는 건 차이뿐이잖아. 둘 다 400점 차면 똑같이 91%야.
김민준
아, BT는 절대 점수가 아니라 차이만 보는구나. 모든 점수에 100을 더해도 승률은 안 변하고.
선생님
그래요. 그래서 BT의 점수는 “기준점을 어디 두든 상관없는” 상대적인 양이에요.
김민준
학점 상대평가 같네요. 반 전체가 다 잘 봐도 차이만 같으면 등급은 그대로인.
정리σ(1.15)=0.76. BT의 승률은 점수 차이에만 의존한다 — 모든 점수에 같은 상수를 더해도 변하지 않는다.