콘텐츠로 이동

alignment는 "언어를 잘 이어 쓰는 모델"을 "사람이 원하는 방식으로 답하는 모델"로 조정하는 과정입니다. pretraining만으로는 문법, 지식, 표현 패턴은 배울 수 있어도, 도움이 되는 답변 방식이나 안전한 응답 습관까지 자동으로 얻어지지는 않습니다. 그래서 SFT, RLHF, DPO 같은 별도 단계가 필요합니다. 이 강의에서는 왜 alignment가 필요한지부터 시작해, SFT와 선호 데이터, reward model, RLHF, DPO가 어떻게 이어지는지 흐름으로 설명합니다.

먼저 알아둘 말

  • alignment: 모델 출력이 사람의 기대와 더 잘 맞도록 조정하는 과정이다.
  • base model: pretraining까지만 끝난 기본 모델이다.
  • SFT: 사람이 쓴 모범 답안을 따라 하게 만드는 지도학습 단계다.
  • preference: 두 응답 중 어느 쪽이 더 나은지에 대한 비교 정보다.
  • reward model: 선호를 점수로 예측하는 모델이다.
  • policy: 입력에 대해 응답 분포를 내놓는 현재 모델이다.
  • RLHF: reward model을 바탕으로 강화학습으로 policy를 조정하는 방식이다.
  • DPO: 선호쌍을 직접 목적함수로 써서 policy를 조정하는 방식이다.
  • 정렬: 모델이 사람 기준에 맞는 응답을 더 자주 내놓게 만드는 일이다.

이 강의에서 답할 질문

  • pretraining만으로는 왜 충분하지 않은가?
  • SFT, RLHF, DPO는 각각 어떤 문제를 푸는가?
  • reward model은 왜 필요한가?
  • 사람 선호가 어떻게 수학적 학습 신호로 바뀌는가?

먼저 떠올릴 장면

  • 같은 질문에 대해 한 답은 사실은 맞지만 불친절할 수 있고, 다른 답은 조금 덜 자세해도 더 안전하고 도움이 될 수 있습니다.
  • 사람은 이 차이를 바로 느끼지만, pretraining 모델은 "자주 본 문장"과 "사람이 선호하는 문장"을 자동으로 구분하지 못할 수 있습니다.
  • alignment는 바로 이 차이를 학습 가능한 신호로 바꾸는 단계입니다.

생각의 순서

  1. 먼저 base model이 잘하는 것과 부족한 것을 구분합니다.
  2. 그다음 SFT가 왜 가장 직접적인 정렬 방법인지 봅니다.
  3. 이어서 preference 데이터와 reward model이 왜 필요한지 설명합니다.
  4. 이후 RLHF가 그 보상을 어떻게 policy 업데이트에 쓰는지 봅니다.
  5. 마지막으로 DPO가 왜 RLHF의 대안으로 등장했는지 정리합니다.

본문

pretraining 모델은 본질적으로 다음 토큰 확률을 잘 맞히는 방향으로 학습됩니다. 그래서 문법, 상식, 표현 패턴, 코드 구조 같은 언어 통계는 잘 익힐 수 있습니다. 하지만 "이 답이 더 친절한가", "이 설명이 더 안전한가", "사용자 의도에 더 맞는가" 같은 기준은 단순한 next-token prediction만으로 충분히 반영되지 않을 수 있습니다.

즉 base model은 언어를 잘 이어 쓰는 능력은 갖고 있어도, 어떤 응답이 더 바람직한지에 대한 기준은 따로 배우지 않았을 수 있습니다. alignment는 이 부족한 부분을 보완하는 단계입니다.

가장 먼저 쓰는 정렬 방법은 SFT입니다. 사람이 직접 작성한 모범 답안을 주고, 그 답을 따라 하도록 지도학습합니다. 손실은 기본적으로 다음과 같은 형태입니다.

$$ L_{\mathrm{SFT}} = -\sum_t \log \pi_\theta(y_t \mid x, y_{<t}) $$

여기서

$$ x $$

는 사용자 입력,

$$ y_t $$

는 모범 답변의 토큰,

$$ \pi_\theta $$

는 현재 policy 모델입니다. 이 식의 뜻은 단순합니다. 사람이 쓴 좋은 답변을 그대로 따라 하게 만드는 것입니다. 그래서 SFT는 가장 직접적이고 이해하기 쉬운 alignment 단계입니다.

하지만 실제 서비스에서는 항상 모범 답안 하나를 만들기보다, 두 응답을 비교해서 어느 쪽이 더 좋은지 고르는 데이터가 더 많이 모이기도 합니다. 예를 들어 사람은 두 답변

$$ y^+, y^- $$

를 보고 "이쪽이 더 낫다"라고 비교할 수 있습니다. 이런 비교 정보가 preference 데이터입니다.

문제는 선호 비교를 바로 강화학습에 넣기 어렵다는 점입니다. 강화학습은 보통 숫자 형태의 보상을 필요로 합니다. 그래서 등장하는 것이 reward model입니다. reward model은 사람 선호를 점수 함수

$$ r_\phi(x, y) $$

로 근사합니다. 즉 입력과 응답이 주어졌을 때 사람이 얼마나 선호할지를 숫자로 예측하는 모델입니다.

RLHF는 이 reward model을 바탕으로 policy를 더 조정합니다. 목표는 높은 보상을 받는 응답의 확률을 높이는 것입니다. 즉 "사람이 더 좋아할 것 같은 응답을 더 자주 내도록" 모델을 다시 학습시키는 단계입니다. 다만 RLHF는 reward model 오차에 민감하고, 강화학습 루프 자체가 복잡하며, 안정적으로 학습시키기 어렵다는 부담이 있습니다.

이 때문에 등장한 것이 DPO입니다. DPO는 reward model과 복잡한 RL 루프를 명시적으로 거치지 않고, 선호쌍 자체를 목적함수에 직접 반영합니다. 좋은 응답의 확률은 높이고 나쁜 응답의 확률은 낮추도록 policy를 곧바로 업데이트하는 방식입니다.

식의 세부 형태를 외우는 것보다 중요한 것은 각 방법이 무엇을 직접 쓰는지 구분하는 것입니다. SFT는 "모범 답안"을 직접 씁니다. RLHF는 선호 비교를 reward model로 점수화한 뒤 강화학습으로 policy를 조정하는 흐름으로 갑니다. DPO는 "선호 비교"를 더 직접적으로 policy 학습에 넣습니다. 셋 다 목적은 사람 선호에 맞는 응답을 더 자주 만들게 하는 것이지만, 학습 신호를 다루는 방식이 다릅니다.

그래서 alignment를 이해한다는 것은 알고리즘 이름을 외우는 일이 아니라, 왜 단계가 점점 바뀌었는지를 이해하는 것입니다. SFT는 가장 단순한 출발점이고, RLHF는 선호를 수치 보상으로 바꿔 더 정교하게 반영하려는 시도이며, DPO는 그 과정을 더 단순하게 만들려는 대안입니다.

예제

  1. SFT의 역할 문제: 사람이 쓴 모범 답안을 그대로 따라 하게 만드는 단계는 무엇인가? 풀이: SFT다. 해설: 가장 직접적인 정렬 방식으로, 좋은 응답 예시를 그대로 학습 신호로 사용한다.

  2. reward model의 필요 문제: RLHF에서 reward model이 필요한 이유는 무엇인가? 풀이: 사람의 선호 비교를 강화학습에 사용할 수 있는 수치 보상으로 바꾸기 위해서다. 해설: 선호 자체는 비교 정보이지만, 강화학습은 점수 형태의 목표를 필요로 하므로 중간 번역 단계가 필요하다.

  3. DPO의 등장 배경 문제: DPO는 왜 주목받았는가? 풀이: RLHF의 복잡한 강화학습 루프 없이도 선호쌍을 직접 사용해 policy를 정렬할 수 있기 때문이다. 해설: 목표는 비슷하지만 학습 절차가 더 단순하고 다루기 쉬운 경우가 많다.

스스로 점검

연습 문제

  1. pretraining과 alignment의 목표 차이를 설명하라.
  2. SFT와 RLHF의 차이를 설명하라.
  3. reward model이 어떤 역할을 하는지 설명하라.
  4. DPO가 RLHF의 어떤 부담을 줄이려는지 설명하라.

복습 질문

  1. 사람 선호는 어떻게 학습 신호가 되는가?
  2. SFT는 무엇을 직접 모방하는가?
  3. DPO는 무엇을 직접 최적화하는가?

체크포인트

  1. alignment가 왜 필요한지 설명할 수 있다.
  2. SFT, RLHF, DPO의 차이를 구분할 수 있다.
  3. reward model의 역할을 이해한다.
  4. preference 데이터가 수학적 목적함수로 바뀌는 흐름을 말할 수 있다.