Skip to content

22장. 야생마 길들이기 — 정렬

이 장의 질문: 다음 토큰 예측기를 어떻게 "도움이 되고 정직하고 무해한 조수"로 바꾸는가? 지시 튜닝, 인간 선호로부터의 보상 학습, 그리고 RLHF/DPO — 사전학습 모델과 챗봇 사이의 결정적 간극을 메우는 절차를 이해한다.

전제: 5장(분류 손실), 21장(사전학습의 능력과 한계). 8부의 강화학습이 여기서 처음 실전 등장하지만, 이 장은 8부 없이도 읽히도록 썼다.

왜 사전학습만으로는 부족한가

사전학습된 모델에게 "프랑스의 수도는?"이라고 물으면 무엇이 나올까. 그럴듯한 다음 토큰이다 — 훈련 데이터에서 그런 문장 뒤에 흔히 오는 것. 시험 문제집에서 봤다면 "이탈리아의 수도는? 스페인의 수도는?"이라고 문제를 이어 낼 수도 있고, 포럼 글에서 봤다면 "ㅋㅋ 이걸 모르냐"가 나올 수도 있다. 모델은 문서를 이어 쓰는 기계이지, 대화 상대가 아니다.

우리가 원하는 것은 다르다. 질문에는 답하고, 지시는 따르고, 위험한 요청은 거절하고, 모르면 모른다고 하는 것. 이 목표를 정렬(alignment)이라 부른다 — 모델의 행동을 사람의 의도와 가치에 맞추는 일. 사전학습이 "무엇을 할 수 있는가"를 만들었다면, 정렬은 "무엇을 하려 하는가"를 만든다. 표준 파이프라인은 세 단계다.

1단계: 지시 튜닝 — 대화의 형식을 가르친다

가장 직접적인 방법은 원하는 행동의 예시를 보여주는 것이다. (지시, 이상적 답변) 쌍을 수만~수십만 개 만들어 — "이 문장을 요약해 줘" → 좋은 요약, "파이썬으로 정렬 함수를 짜 줘" → 깔끔한 코드 — 사전학습된 모델을 그 데이터로 미세조정한다. 13장 전이학습의 문법 그대로다: 손실은 여전히 다음 토큰 교차 엔트로피이되, 답변 부분에만 손실을 걸어 "이런 질문에는 이렇게 답한다"를 가르친다. 이를 지도 미세조정(SFT)이라 한다.

효과는 극적이다. 몇만 건의 예시만으로 문서 이어 쓰기 기계가 대화 형식을 익힌다 — 사전학습이 이미 능력을 다 갖췄고, SFT는 그 능력을 꺼내 쓰는 형식과 태도만 가르치기 때문이다. 훈련 데이터의 품질이 곧 모델의 품격이 되므로, 이 단계의 데이터는 소수의 숙련된 사람이 공들여 쓴다.

한계도 뚜렷하다. 예시로 보여줄 수 있는 것은 "정답이 하나인 행동"에 가깝다. 그런데 "좋은 답변"은 대개 정답이 하나가 아니다 — 같은 질문에 대한 답변 A와 B 중 어느 쪽이 더 도움이 되는지, 더 정직한지, 덜 위험한지는 정도의 문제이고, 그것을 이상적 답변 하나로 다 담을 수 없다. "더 낫다"는 판단을 배우게 하려면, 비교를 가르쳐야 한다.

2단계: 보상 모델 — 사람의 취향을 채점기로 만든다

발상은 이렇다. 같은 프롬프트에 모델이 답변을 여러 개 만들게 하고, 사람에게 어느 쪽이 나은지를 고르게 한다. "A가 B보다 낫다"는 판단은 이상적 답변을 쓰는 것보다 훨씬 쉽고 빠르며 일관되다 — 명작을 쓰긴 어려워도 두 글 중 나은 쪽을 고르기는 쉽다.

이렇게 모은 선호 데이터 수십만 쌍으로 보상 모델(reward model)을 학습시킨다. 보상 모델은 (프롬프트, 답변)을 받아 점수 하나를 출력하는 신경망이며, "사람이 선호한 쪽의 점수가 더 높도록" 학습된다 — 두 점수의 차이에 시그모이드를 씌워 "A가 선호될 확률"로 해석하고 5장의 교차 엔트로피로 채점하는, 결국 이진 분류 문제다. 학습이 끝나면 우리는 사람의 취향을 흉내내는 자동 채점기를 손에 넣는다. 사람이 일일이 채점할 수 없는 수백만 개의 답변을, 이 채점기가 대신 평가할 수 있다.

3단계: 강화학습 — 채점기가 좋아하는 쪽으로 정책을 민다

이제 모델이 채점기에게 높은 점수를 받는 답변을 내도록 학습시킨다. 그런데 문제가 있다 — 지도학습의 손실을 쓸 수 없다. "높은 점수를 받을 정답 답변"이 주어진 게 아니라, 모델이 스스로 만든 답변에 대한 점수만 있기 때문이다. 정답 대신 보상으로 배우기 — 이것은 정의상 강화학습(1장의 세 번째 갈래)이다.

절차는 이렇다. 모델(강화학습 용어로 정책)이 프롬프트에 답변을 생성한다. 보상 모델이 점수를 매긴다. 점수가 높았던 답변 쪽으로 정책의 확률을 올리고, 낮았던 쪽은 내린다 — 정책의 파라미터를 "보상의 기대값이 커지는 방향"의 기울기로 갱신하는 것이다(정책 경사 — 26장에서 수식으로 만난다). 실제로는 PPO라는, 한 번에 너무 멀리 움직이지 않도록 안전장치를 단 알고리즘을 쓴다. 이 전체 절차가 RLHF(인간 피드백 강화학습)다.

여기에 반드시 필요한 안전핀이 하나 있다. 보상 모델은 사람 취향의 근사일 뿐이라, 정책이 보상 모델의 허점을 파고들어 점수만 높고 실제로는 이상한 답변(장황하기만 한 답, 아첨, 특정 문구 남발)을 만들어 낼 수 있다 — 채점기 해킹이다(8장의 "지표 최적화 ≠ 목표 달성"이 여기서 재림한다). 처방: 정책이 SFT 모델에서 너무 멀어지면 벌점을 준다(두 분포의 KL 발산을 손실에 더한다). "채점기가 좋아하되, 원래 배운 언어 능력에서 이탈하지 말라"는 줄다리기다.

지름길: DPO

RLHF는 강력하지만 무겁다 — 보상 모델 별도 학습, 생성·채점·갱신의 온라인 루프, PPO의 까다로운 튜닝. 그래서 나온 지름길이 DPO(직접 선호 최적화)다. 핵심 통찰: 보상 모델을 거치는 강화학습의 최적해를 수학적으로 풀어 보면, 선호 쌍 데이터로 정책을 직접 학습시키는 단순한 분류형 손실로 바꿔 쓸 수 있다. "선호된 답변의 확률은 올리고 비선호 답변의 확률은 내리되, 참조 모델(SFT)에서 너무 멀어지지 않게" — 이 한 줄이 손실이다. 보상 모델도, 강화학습 루프도 없이 지도학습처럼 돌아간다. 실무에서는 접근성 때문에 DPO 계열이 널리 쓰이며, 최상위 모델들은 RLHF와 여러 변형을 조합한다.

정렬이 주는 것과 못 주는 것

정렬은 마법이 아니다. 무엇을 바꾸고 무엇을 못 바꾸는지 정확히 알아야 한다.

  • 바꾸는 것: 형식(대화체), 태도(정중함, 거절), 우선순위(도움·정직·무해의 균형), 그리고 어느 정도의 자기 인식("모르겠습니다"라고 말하기 — 21장의 환각에 대한 부분적 처방).
  • 못 바꾸는 것: 사전학습이 담지 못한 지식과 능력. 정렬은 이미 있는 능력의 방향을 잡을 뿐, 새 능력을 크게 만들지는 않는다. 그래서 정렬 데이터는 사전학습 데이터의 만분의 일 규모여도 충분하고, 또 그래서 정렬만으로 지식 마감일이나 추론의 한계는 극복되지 않는다.
  • 긴장 관계: 무해함을 세게 밀면 무해한 질문까지 거절하는 과잉 거절이 생기고, 도움을 세게 밀면 위험한 요청까지 돕는다. 정렬은 하나의 목적함수 최적화가 아니라 여러 가치의 균형점 찾기이며, 그 균형은 기술이 아니라 사람의 결정이다. 당신이 LLM 제품을 만든다면 이 균형이 곧 제품의 정체성이 된다.

정렬의 주 도구인 SFT를 직접 해 보는 것이 코드랩 11이다 — 공개 LLM을 지시 데이터로 미세조정하고, 그 확장 과제에서 DPO까지 이어 붙인다. 소비자 GPU 한 장으로 "야생마 길들이기"를 재현할 수 있는 시대다.

핵심 요약

  • 사전학습 모델은 문서 이어 쓰기 기계다. 정렬은 그것을 사람의 의도(도움·정직·무해)에 맞는 조수로 바꾸는 절차다.
  • SFT: (지시, 이상적 답변) 예시로 대화의 형식과 태도를 가르친다. 능력은 이미 있으므로 소량으로 충분하다.
  • 보상 모델: "A가 B보다 낫다"는 사람의 비교 판단을 학습해 자동 채점기를 만든다(이진 분류).
  • RLHF: 정책이 채점기 점수를 높이도록 강화학습(PPO)으로 갱신하되, 채점기 해킹을 막기 위해 원래 모델에서 멀어지면 벌점(KL). DPO는 선호 쌍으로 이 과정을 지도학습형 손실 하나로 압축한 지름길.
  • 정렬은 방향을 잡을 뿐 새 능력을 만들지 않으며, 여러 가치의 균형은 기술이 아니라 결정이다.

스스로 점검

  1. 사전학습 모델이 질문에 "질문으로 답하는" 현상을 학습 목표의 관점에서 설명해 보라.
  2. 이상적 답변을 쓰는 것보다 두 답변을 비교하는 것이 데이터 수집에 유리한 이유를 두 가지 들어 보라.
  3. 채점기 해킹의 구체적 예를 하나 상상해 보고, KL 벌점이 그것을 어떻게 억제하는지 설명해 보라.
  4. "정렬은 새 능력을 만들지 않는다"가 맞다면, 정렬 데이터가 사전학습 데이터보다 훨씬 적어도 되는 이유는 무엇인가?

다음 장에서

길들여진 모델을 손에 넣었다. 이제 그것을 실제 문제에 쓰는 기술이다. 프롬프트로 조종하는 법, 외부 지식을 검색해 붙이는 법(RAG), 언제 파인튜닝이 답이고 언제 아닌지 — 실무에서 매일 내리는 결정들을 원리와 함께 정리한다.

23장. LLM 활용의 기술 →