해당 논문은 대규모 언어 모델(LLM)을 인간의 선호도에 맞게 미세 조정하는 DPO(Direct Preference Optimization) 방식의 한계를 지적하고, 이를 개선한 MIPO(Modulated Intervention Preference Optimization) 라는 새로운 방법을 제안합니다. 논문의 부제인 “Keep the Easy, Refine the Difficult” (쉬운 것은 유지하고, 어려운 것은 개선하라) 가 MIPO의 핵심 아이디어를 잘 보여줍니다.
논문 요약
MIPO는 기존 DPO 방식이 모든 데이터에 대해 동일한 강도로 규제(regularization)를 적용하는 문제를 해결합니다. DPO는 학습 중인 모델(Policy Model)이 초기 모델(Reference Model)로부터 너무 멀어지지 않도록 제어하는데, 이 제어가 어떤 경우에는 모델의 성능 향상을 방해할 수 있습니다.
MIPO는 각 데이터 쌍(선호되는 답변/선호되지 않는 답변)에 대해 초기 모델이 얼마나 정답을 잘 맞추고 있는지(정렬 수준)를 먼저 평가합니다.
- 쉬운 문제 (초기 모델이 이미 정답을 잘 맞추는 경우): 초기 모델의 개입을 강하게 유지하여 안정성을 확보합니다. (Keep the Easy)
- 어려운 문제 (초기 모델이 정답과 거리가 먼 경우): 초기 모델의 개입을 약화시켜, 모델이 더 자유롭고 적극적으로 정답을 학습하도록 합니다. (Refine the Difficult)
실험 결과, MIPO는 Mistral-7B, Llama3-8B와 같은 다양한 모델에서 기존 DPO보다 일관되게 뛰어난 성능을 보였습니다.
B) 기존 DPO의 문제점
DPO는 RLHF의 복잡한 단계를 간소화해 주목받고 있는 선호도 학습 방법입니다. DPO의 목적 함수는 아래 두 가지 핵심 요소로 구성됩니다.
- 선호도 학습: 모델이 ‘선호되는 답변(chosen)‘의 확률은 높이고, ‘선호되지 않는 답변(rejected)‘의 확률은 낮추도록 훈련합니다.
- 규제(Regularization): 현재 학습 중인 모델()이 초기 SFT 모델()의 분포에서 지나치게 멀어지지 않도록 제어합니다. 이는 잘못된 답변(hallucination 등) 생성을 억제하는 안전장치 역할을 합니다.
DPO의 손실 함수는 다음과 같이 표현할 수 있습니다.
하지만 이때 문제점은 가 미치는 규제 효과가 모든 데이터 쌍 에 대해 동일하게 적용된다는 점입니다.
- 가 이미 를 보다 훨씬 더 선호하는 경우(쉬운 문제): 약간만 학습해도 충분하며, 이때 강한 규제는 모델의 안정성을 높여 긍정적으로 작용합니다.
- 가 오히려 을 더 선호하거나 두 답변 간 차이가 거의 없는 경우(어려운 문제): 모델이 를 명확하게 선호하도록 크게 변화해야 합니다. 하지만 DPO 특성상 강한 규제가 이러한 변화를 억제하여, 충분한 학습이 이루어지지 못하게 방해할 수 있습니다. 즉, 규제가 일종의 ‘족쇄’처럼 작동하는 셈입니다.
C) MIPO의 핵심 아이디어와 방법론
MIPO는 기존 방법의 한계를 극복하기 위해 ‘개입 수준 조절’이라는 새로운 개념을 도입합니다.
C.1) 정렬 수준 측정 (Alignment Degree Measurement)
우선, 각 데이터 쌍에 대해 초기 모델(π_ref)이 얼마나 정답(y_w)에 잘 맞춰져 있는지를 평가해야 합니다. 논문에서는 이를 ‘평균 로그 확률(average log likelihood)의 차이’로 측정하며, 라는 값으로 정의합니다.
여기서 는 답변의 길이이며, 길이 편향을 줄이기 위해 평균값을 사용합니다.
- 가 클수록: 초기 모델이 이미 선호되는 답변()을 더 잘 생성함을 의미합니다. 즉, 쉬운 문제입니다.
- 가 작거나 음수일 때: 초기 모델이 비선호 답변()을 더 잘 생성하거나 두 답변 간 차이가 거의 없다는 뜻입니다. 이런 경우가 어려운 문제에 해당합니다.
C.2) MIPO 목적 함수: 개입 수준 조절
MIPO는 위에서 계산한 값을 바탕으로 목적 함수를 동적으로 변형합니다. MIPO의 목적 함수는 아래와 같이 정의됩니다.
여기서,
-
는 현재 학습 중인 모델(π_θ)의 평균 로그 확률 차이입니다.
핵심 요소인 : 이 함수는 값에 따라 동작 방식이 달라집니다.
- 쉬운 문제(가 클 때): 는 와 비슷한 값을 가집니다. 이 경우 손실 함수가 형태가 되어 DPO와 유사하게 동작하며, 초기 모델의 판단을 강하게 반영합니다.
- 어려운 문제(가 작을 때): 는 0에 가까워집니다. 손실 함수가 로 변하면서, 초기 모델의 영향 없이 선호도(f(θ))를 자유롭게 높이는 방향으로 학습할 수 있습니다.
즉, MIPO는 ‘쉬운 문제에서는 기존 지식을 유지하고, 어려운 문제에서는 개선에 집중하는’ 방식으로 동작하는 것이 핵심입니다.
C.2.1) 실험 및 결과
- 성능 비교 (Table 1, Figure 1): MIPO는 AlpacaEval 2.0 벤치마크에서 DPO 대비 월등한 성능을 보였습니다.
- Mistral-7B 모델: DPO 15.10점 -> MIPO 23.29점 (+8.19점)
- Llama3-8B 모델: DPO 25.09점 -> MIPO 34.14점 (+9.05점)
- MT-Bench에서도 일관되게 DPO보다 높은 점수를 기록했습니다.
- 핵심 원리 검증 (Figure 4): 이 실험이 MIPO의 동작 원리를 명확하게 보여줍니다.
- 하위 20% (Bottom 20%, 어려운 문제): DPO로 학습한 모델은 오히려 성능이 떨어지거나 거의 개선되지 않았습니다. 반면, MIPO로 학습한 모델은 성능이 크게 향상되었습니다.
- 상위 20% (Top 20%, 쉬운 문제): DPO와 MIPO 모두 성능이 향상되었지만, MIPO는 과도하게 학습하지 않고 기존 성능을 잘 유지하는 모습을 보였습니다.
(논문의 Figure 4를 간략히 재구성한 이미지입니다. 왼쪽(Bottom 20%)에서 MIPO(초록색)의 성능 향상이 두드러짐을 볼 수 있습니다.)
이 결과는 MIPO가 의도한 대로 “어려운 문제에 집중하여 학습하고, 쉬운 문제는 안정적으로 유지”하는 전략이 성공적으로 작동했음을 증명합니다.
C.2.2) 결론 및 의의
MIPO는 DPO의 근본적인 한계인 ‘고정된 규제 강도’ 문제를 해결하기 위해, 데이터의 난이도에 따라 초기 모델의 개입 수준을 동적으로 조절하는 간단하면서도 매우 효과적인 방법을 제안했습니다. 이 접근법을 통해 모델이 비효율적인 학습(어려운 문제를 제대로 못 배우거나, 쉬운 문제를 과하게 배우는 것)을 피하고 전반적인 성능을 크게 향상시킬 수 있음을 실험적으로 입증했습니다. 이는 향후 선호도 최적화 연구에 중요한 방향성을 제시합니다.
D) QnA
D.1) 는 어떻게 계산할까?
DPO와 MIPO 논문에서 핵심적으로 등장하는 요소가 바로 입니다. 이 개념을 정확하게 이해하는 것이 매우 중요합니다.
간단히 말해서, 는 현재 학습 중인 언어 모델(π_θ)이 ‘선호되는 답변’(y_w)을 생성할 확률에 로그를 취한 값입니다. 이 값이 클수록, 즉 로그 확률이 높을수록 모델이 그 답변을 자연스럽게 생성할 가능성이 높다는 뜻입니다.
D.1.1) 란 무엇인가?
- (정책 모델): 현재 우리가 학습시키는 언어 모델을 의미합니다. 여기서 는 정책(Policy), 는 모델의 파라미터(가중치 등)를 나타냅니다. 예를 들면 Llama3-8B-Instruct 같은 모델이 여기에 해당합니다.
- (선택된 답변, Winner/Preferred Response): 사람 혹은 평가 기준에 의해 더 좋은 것으로 선택된 답변입니다. 데이터셋 내 쌍에서 가 우수한 답변(즉, ‘정답’) 역할을 합니다.
- (확률): 정책 모델 가 라는 텍스트 시퀀스를 생성할 확률값입니다.
- 로그(Ln 혹은 Logarithm): 이 확률에 로그를 취한 값이 바로 입니다. 로그를 쓰는 이유는 다음과 같습니다.
- 수치적 안정성: 여러 토큰의 확률을 곱하면 값이 매우 작아져서 수치적으로 불안정(numerical underflow)이 발생합니다. 로그를 사용하면 곱셈 연산이 덧셈으로 바뀌어 계산이 훨씬 안전해집니다.
- 최적화 편의성: 손실 함수(loss function)를 미분해서 경사 하강법으로 학습시킬 때, 덧셈 구조가 미분 및 최적화 과정에 유리하게 작용합니다.
즉, 는 모델이 해당 정답()을 얼마나 자연스럽고 그럴듯하다고 생각하는지 점수로 나타낸 것이라고 볼 수 있습니다.
D.1.2) 실제 계산 방법
언어 모델은 텍스트 전체를 한 번에 생성하지 않고, 토큰(token) 단위로 순차적으로 예측합니다. 이러한 방식을 자기회귀(auto-regressive) 방식이라고 부릅니다.
예를 들어 과 같이 토큰 시퀀스로 표현된다고 가정해봅시다.
예시: “오늘은 맑아요.” 토큰화 결과 =
["오늘", "은", " ", "맑", "아", "요", "."](실제 토큰 분할은 다를 수 있음)
모델이 이 시퀀스 전체()를 생성할 확률은 다음과 같이 각 토큰의 조건부 확률 곱으로 표현됩니다:
여기서 로그를 취하면 아래와 같이 곱셈이 덧셈으로 변환됩니다:
즉, 각 토큰별 조건부 로그확률 값을 모두 더한 것이 곧 입니다.
실제 계산 절차 요약
- 답변 를 토크나이저로 분해하여 토큰 시퀀스 으로 만듭니다.
- 프롬프트와 함께 첫 번째 토큰 이전까지의 컨텍스트 정보를 입력하여 의 예측 로그확률 값을 구합니다.
- 프롬프트와 까지 입력해서 두 번째 토큰 의 조건부 로그확률 값을 구합니다.
- 이런 식으로 마지막 토큰까지 반복해서 각각의 조건부 로그확률 값을 얻습니다.
- 이렇게 얻어진 모든 로그확률 값을 전부 합산하면 최종적으로 가 산출됩니다.
실제로는 라이브러리(e.g. Hugging Face Transformers)에서 문장 전체에 대한 로그확률 계산 기능을 지원합니다.