Skip to content

RLHF, SFT 다음에 일어나는 일 — 정답이 아니라 선호를 가르친다 ​

이 시리즈의 세 번째 글이다. 토크나이저, 파인튜닝에 이어, 입력과 적응 다음 단계인 정렬(alignment)을 다룬다.

논문 중심의 깊은 내용은 이미 AI 연재 보강 5에 썼다. 거기서 InstructGPT, DPO, reward hacking 논문을 하나씩 다뤘으니, 이 글은 전체 흐름을 한 번 잡는 개요로 쓴다. 마찬가지로 직접 학습시켜 본 경험은 없다.

왜 SFT만으로 부족한가 ​

SFT는 "이 질문엔 이 답"이라는 정답 예시를 따라 하게 만든다. 그런데 좋은 답에는 정답이 하나가 아닌 경우가 많다. 어느 쪽이 더 도움이 되고, 더 정직하고, 덜 해로운지는 예시를 늘어놓기보다 비교하는 편이 쉽다. 사람에게 "A와 B 중 어느 쪽이 낫나요?"라고 묻는 건 모범 답안을 직접 쓰게 하는 것보다 훨씬 싸다.

흐름 ​

InstructGPT 논문(Ouyang 등, 2022, arXiv 2203.02155)이 보여 준 틀을 단순화하면 이렇다.

  1. 사람이 쓴 시연 데이터로 SFT를 한다.
  2. 같은 질문에 대한 여러 답을 사람이 순위 매긴다. 이 비교 데이터로 보상 모델을 학습시켜, 어떤 답이 선호되는지를 점수로 예측하게 한다.
  3. 보상 모델의 점수를 보상으로 삼아 강화학습으로 언어 모델을 다듬는다.

초록에 따르면 사람 평가에서 13억 파라미터 InstructGPT가 1,750억 파라미터 GPT-3보다 선호됐다. 모델을 키우는 것만으로는 사용자 의도를 더 잘 따르게 되지 않는다는 문제의식이 출발점이었다.

DPO: 강화학습 단계를 빼 보면 ​

Rafailov 등의 DPO(2023, arXiv 2305.18290)는 보상 모델과 강화학습 루프 없이, 선호 쌍 데이터에 대한 분류 손실 하나로 같은 목표를 푼다. 저자들 주장으로는 더 안정적이고 가벼우며 RLHF와 같거나 더 나은 성능이다. 이 수치와 주장은 논문 쪽 주장이고, 실제 적용에서 항상 그렇다는 보장은 없다고 본다.

실무자 입장에서 기억할 것 ​

  • 대부분의 개발자는 RLHF를 직접 돌리지 않는다. 쓰는 모델이 이미 거친 과정이다. 그래도 모델이 왜 정중하고, 왜 거절하고, 왜 때로 아첨하는지를 이해하는 데 도움이 된다.
  • 보상은 대리 지표다. 모델은 진짜 목표가 아니라 보상 점수를 올리려 한다. 그래서 그럴듯하지만 틀린 답이 높은 점수를 받는 reward hacking이 생긴다. 자세한 사례는 보강 5편에 있다.
  • 파인튜닝 서비스에서 선호 데이터로 학습하는 옵션이 있는지는 제공자마다 다르다. 이 글에서 확인하지 못했다.

마무리 ​

토큰으로 쪼개고, 데이터로 적응시키고, 선호로 다듬는다. 한 줄로 줄이면 이렇지만, 각 단계 안에 실무적으로 아직 감이 없는 부분이 많다. 특히 "내 서비스에 선호 학습이 필요한가"는 아직 판단 기준이 없다. 직접 해보고 나면 이어서 쓰겠다.

참고 ​

멸종 위기 개발자