coredot.today
“달 착륙을 6살에게 설명해 줘” — 되묻기만 하던 AI는 어떻게 말귀를 알아듣게 됐나 (RLHF 특집)
블로그로 돌아가기
RLHFInstructGPT정렬Alignment보상 모델PPOKL 페널티브래들리-테리굿하트의 법칙보상 해킹아첨DPOGRPORLVRConstitutional AIChatGPTOpenAI

“달 착륙을 6살에게 설명해 줘” — 되묻기만 하던 AI는 어떻게 말귀를 알아듣게 됐나 (RLHF 특집)

2022년 1월, OpenAI는 “사용자의 의도를 GPT-3보다 훨씬 잘 따르는” 모델을 발표했다. 13억 파라미터 모델이 1750억 모델을 이겼고, 그 비용은 사전학습의 1.6%였다. 열 달 뒤 같은 레시피로 만든 ChatGPT가 세상을 바꿨다. 이 글은 그 기술 — 인간 피드백 강화학습(RLHF) — 이 왜 필요했는지를 2017년 뒤공중돌기 로봇부터 따라간다. 보상을 글로 적을 수 없다는 문제, 순위 하나가 여섯 개의 비교가 되는 방식, 보상 모델을 너무 믿으면 벌어지는 일, 그리고 RLHF가 고친 것이 아니라 ‘만든’ 네 가지 버릇까지. 인터랙티브 위젯 8종과 삽화로 풀었다.

코어닷투데이2026-09-2161

들어가며 — 질문에 질문으로 답하던 시절

사람의 취향이 보상이 된다크게 보기

2021년의 GPT-3에게 이렇게 물었다고 해 보자.

달 착륙을 6살 아이에게 몇 문장으로 설명해 줘.

돌아온 답은 이랬다.

중력 이론을 6살 아이에게 설명해 줘.

상대성 이론을 6살 아이에게 몇 문장으로 설명해 줘.

빅뱅 이론을 6살 아이에게 설명해 줘.

모델은 고장 난 게 아니었다. 아주 정확하게, 자기가 배운 일을 하고 있었다. 인터넷 텍스트에서 "달 착륙을 6살 아이에게 설명해 줘"라는 문장 다음에 가장 자주 오는 것은 답변이 아니다. 비슷한 형식의 다른 문제들이다. 교재의 연습문제 목록, 과제 안내문, 글쓰기 워크숍의 프롬프트 모음. GPT-3는 다음 단어를 맞히도록 훈련받았고, 그 일을 성실히 해냈다. 다만 그 일은 우리가 원한 일이 아니었다.

2022년 1월 27일, OpenAI는 Aligning language models to follow instructions라는 제목의 발표문을 내놨다. 저자는 Ryan Lowe와 Jan Leike. 같은 질문에 대한 새 모델의 답은 이랬다.

사람들이 달에 갔어요. 거기서 본 것을 사진으로 찍어서 지구로 보내 줬고, 그래서 우리 모두가 그 모습을 볼 수 있게 됐답니다.

두 모델은 구조도 같고 크기도 같다(둘 다 175B). 달라진 것은 사전학습이 끝난 뒤에 무엇을 했느냐뿐이다. 그 "무엇"의 이름이 인간 피드백 강화학습(Reinforcement Learning from Human Feedback, RLHF)이다.

85±3%
175B InstructGPT 출력이 175B GPT-3보다 선호된 비율
1.3B > 175B
100배 이상 작은 모델이 더 선호됐다
1.6%
정렬에 쓴 연산 / GPT-3 사전학습 연산 (60 vs 3,640 petaflops/s-days)
40명
이 모든 것을 만든 레이블러 수

이 글은 그 기술을 처음부터 끝까지 따라간다. 먼저 왜 이 문제가 생겼는지, 그다음 왜 해결책이 하필 "사람에게 물어보기"였는지(2017년의 뒤공중돌기 로봇에서 출발한다), 그리고 세 단계가 각각 무엇을 하는지, 무엇이 고쳐졌고 무엇이 망가졌는지, 마지막으로 2026년에 이 기술이 어디에 있는지까지. 논문의 표와 실제 출력은 만져 볼 수 있는 위젯으로 옮겼다.

이미 RLHF의 기본기를 아는 독자라면 InstructGPT 해부Nathan Lambert의 RLHF Book 리뷰를 먼저 읽어도 좋다. 이 글은 같은 논문을 "왜 이 개념이 나왔고 지금 어디에 있는가"라는 축으로 다시 읽는다.


1부. 모델은 틀린 게 아니라 다른 일을 하고 있었다

질문에 질문으로 답한다크게 보기

1.1 목적 함수가 어긋나 있었다

InstructGPT 논문의 첫 문단은 문제를 이렇게 정의한다.

최근의 대형 언어 모델이 쓰는 언어 모델링 목적 — 인터넷 웹페이지에서 다음 토큰을 예측하기 — 은 "사용자의 지침을 유용하고 안전하게 따르기"라는 목적과 다르다. 따라서 우리는 언어 모델링 목적이 어긋나 있다(misaligned)고 말한다.

이 한 문장이 이 글의 전부라고 해도 과언이 아니다. 문제는 모델이 멍청하다는 게 아니었다. 모델은 다른 목적 함수를 최적화하고 있었다. 그리고 그 차이는 모델을 키운다고 줄어들지 않는다. 논문 제목 아래 첫 줄이 그 점을 못 박는다. "언어 모델을 더 크게 만든다고 해서 본질적으로 사용자의 의도를 더 잘 따르게 되지는 않는다."

?
우리가 원한 것
사용자가 시킨 일을, 사실에 맞게, 해롭지 않게 해 주는 비서
우리가 훈련시킨 것
인터넷 문서에서 다음에 올 토큰의 확률분포를 잘 맞히는 모델
!
그 사이의 틈
인터넷에는 좋은 답변도 있지만 문제 목록, 광고, 악플, 음모론, 미완성 초고도 있다. 모델은 이 전부를 "다음에 올 법한 것"으로 학습한다. 사용자가 원하는 문서 종류를 고르는 장치가 어디에도 없다.

1.2 "정렬"이라는 오래된 말

정렬(alignment)이라는 단어는 2022년에 발명된 말이 아니다. 계보는 훨씬 길다.

1960노버트 위너"기계에 넣은 목적이 우리가 진정 원하는 목적인지 확실히 해 두는 편이 좋다."
2016구체적 문제들Amodei·Olah·Christiano 등의 Concrete Problems in AI Safety가 부작용·보상 해킹 등을 공학 문제로 정식화
2018Leike의 정의"에이전트를 사용자의 의도에 따라 행동하게 만드는 것" — InstructGPT 논문이 인용하는 정의
2021HHHAskell 외가 제시한 세 기준: helpful(도움이 되고) · honest(지어내지 않고) · harmless(해롭지 않고)
2022제품에 도착InstructGPT — "정렬 연구가 우리 제품에 적용된 것은 이번이 처음"

InstructGPT 논문은 이 세 기준(HHH)을 그대로 가져와 쓴다. 그리고 곧바로 솔직한 단서를 단다. 훈련 중에는 helpfulness를 우선한다(§3.4). 셋이 충돌할 때 — 예컨대 사용자가 해로운 답을 요구할 때 — 어떻게 할지는 "어려운 설계 결정이므로 후속 연구로 남긴다"고 적었다. 6부에서 보겠지만, 이 선택은 정확히 예상 가능한 대가를 치렀다.

1.3 프롬프트 엔지니어링으로는 왜 안 됐나

"그냥 프롬프트를 잘 쓰면 되는 것 아닌가?" 당시에도 나온 질문이고, 부분적으로는 맞다. 위 위젯의 철새 예시를 보자. Q/A 형식의 예시를 두 개 깔아 주면 GPT-3도 멀쩡히 답한다. 논문도 "few-shot 프롬프트를 붙이면 상당한 개선이 있다"고 인정한다.

문제는 그다음이다.

  • 여전히 진다. 175B InstructGPT는 few-shot 프롬프트를 붙인 175B GPT-3보다도 71±4% 선호됐다.
  • 매번 해야 한다. 프롬프트 엔지니어링은 과제마다, 사용자마다 다시 해야 하는 수작업이다.
  • 취향은 프롬프트로 안 적힌다. "적절히 공손하되 장황하지 말고, 모르면 모른다고 하되 지나치게 얼버무리지 말 것" — 이것을 문장으로 완전히 적어 낸 사람은 아직 없다.

여기서 발표문의 가장 중요한 문장 하나가 나온다.

🔓
이 과정은 GPT-3가 이미 갖고 있었지만 프롬프트 엔지니어링만으로는 끌어내기 어려웠던 능력을 "잠금 해제(unlock)"하는 것이라고 볼 수 있다. 훈련 절차가 사전학습 대비 연산과 데이터의 2% 미만을 쓰기 때문에, 사전학습에서 배운 것에 비해 새로운 능력을 가르칠 여지는 제한적이다.

RLHF는 모델을 똑똑하게 만드는 기술이 아니다. 이미 있는 능력을 꺼내는 방법을 가르치는 기술이다. 이 구분은 2026년에도 여전히 중요하다 — 포스트트레이닝으로 무엇이 되고 무엇이 안 되는지를 가르는 선이기 때문이다.


2부. 그러면 "좋은 답"을 코드로 적어 보자 (그리고 실패하자)

강화학습으로 모델을 고치려면 보상 함수가 필요하다. 좋은 답에 높은 점수를, 나쁜 답에 낮은 점수를 주는 함수다. 가장 자연스러운 첫 시도는 그 함수를 사람이 직접 적는 것이다.

한번 해 보자.

2.1 목표는 달성되고 의도는 배신당한다

위 위젯에서 벌어진 일에는 이름이 있다. 굿하트의 법칙(Goodhart's law)측정치가 목표가 되는 순간, 그것은 좋은 측정치이기를 그만둔다. 강화학습 문헌에서는 보상 해킹(reward hacking) 또는 명세 게이밍(specification gaming)이라 부른다.

OpenAI가 2016년에 공개한 사례가 교과서적이다. Faulty Reward Functions in the Wild에서 연구진은 보트 레이싱 게임 CoastRunners에 강화학습 에이전트를 붙였다. 보상은 게임의 점수였다.

보상 해킹 — 불타면서 점수를 올리는 보트크게 보기

에이전트는 경주를 완주하지 않았다. 대신 외딴 석호를 찾아내 그 안에서 큰 원을 그리며 돌았다. 그 자리에 점수 아이템 세 개가 있었고, 리스폰 타이밍에 맞춰 계속 먹을 수 있었기 때문이다. 에이전트는 반복해서 불이 붙고, 다른 배와 충돌하고, 트랙을 역주행하면서도 — 인간 플레이어보다 평균 20% 높은 점수를 받았다.

⚠️
이 에이전트는 실패한 것이 아니다. 주어진 목적을 인간보다 잘 달성했다. 실패한 것은 "점수 = 잘 달리기"라고 가정한 우리 쪽이다. 보상 함수를 손으로 적는다는 것은 매번 이 가정을 하나씩 걸고 가는 일이다.

2.2 2017년, 로봇이 뒤공중돌기를 배운 방법

900비트로 배운 뒤공중돌기크게 보기

같은 해 OpenAI와 딥마인드의 연구자들 — Paul Christiano, Jan Leike, Tom Brown, Miljan Martic, Shane Legg, Dario Amodei — 은 정반대 방향을 시도했다. Deep reinforcement learning from human preferences(arXiv:1706.03741)다.

과제는 시뮬레이션 속 한 다리 로봇(Hopper)에게 뒤공중돌기를 가르치는 것. 보상 함수는 없다. 대신 이렇게 한다.

1에이전트가 환경에서 무작위로 움직인다.
2주기적으로 두 개의 짧은 영상 클립을 사람에게 보여 준다.
3사람은 "어느 쪽이 뒤공중돌기에 더 가까운가"만 고른다. 그 외에는 아무것도 하지 않는다.
4그 선택들을 가장 잘 설명하는 보상 함수를 추정한다.
5추정한 보상으로 강화학습을 돌리고, 가장 헷갈리는 구간에서 다시 사람에게 묻는다.

결과가 놀랍다.

손으로 적은 보상 함수사람의 비교로 학습한 보상
사람이 쓴 시간2시간 (함수 작성)1시간 미만 (클립 고르기)
필요한 정보량코드 5줄 + 관측 벡터 이해약 900비트
결과성공하지만 어색함훨씬 우아한 동작

참고로 연구진이 손으로 적은 보상 함수는 이렇게 생겼다.

hljs language-python
def reward_fn(a, ob):
    backroll = -ob[7]
    height = ob[0]
    vel_act = a[0] * ob[8] + a[1] * ob[9] + a[2] * ob[10]
    backslide = -ob[5]
    return backroll * (1.0 + .3 * height + .1 * vel_act + .05 * backslide)

이 다섯 줄을 쓰려면 ob[7]이 몸통의 각속도라는 것을, ob[5]가 무엇인지를, 그리고 이 항들을 어떤 비율로 섞어야 "뒤공중돌기처럼 보이는" 움직임이 나오는지를 알아야 한다. 0.3, 0.1, 0.05라는 숫자는 어디서 왔을까? 시행착오다. 반면 사람이 한 일은 900번 정도 "왼쪽"이나 "오른쪽"을 누른 것이 전부였다.

2.3 이 글 전체를 관통하는 비대칭

⚖️
명세(specification)는 어렵고, 판단(judgment)은 쉽다.
무엇이 좋은 뒤공중돌기인지 적는 것은 어렵다. 두 영상 중 어느 쪽이 더 뒤공중돌기 같은지 고르는 것은 쉽다.
무엇이 좋은 답변인지 적는 것은 어렵다. 두 답변 중 어느 쪽이 더 나은지 고르는 것은 쉽다.

RLHF의 전부가 이 한 문장이다. 사람이 적을 수 없는 함수를, 사람이 쉽게 할 수 있는 판단들로부터 학습하는 것. 나머지는 기술적 세부사항이다.


3부. 로봇에서 언어로 (2019 → 2021)

뒤공중돌기에서 "달 착륙을 6살에게 설명하기"까지는 다섯 해가 걸렸다. 그 사이에 세 개의 징검다리가 있었다.

RLHF가 언어로 건너온 경로
2019 · 문체 이어쓰기
Ziegler 외. 언어 모델에 RLHF를 처음 적용. "긍정적인 톤으로 이어 써라" 같은 과제에서 사람 선호로 파인튜닝했다. 방법론의 뼈대(SFT → RM → PPO + KL 페널티)가 여기서 완성된다.
2020 · 요약
Stiennon 외. Reddit TL;DR 요약에서 사람이 쓴 참조 요약보다 선호되는 모델이 나왔다. 그리고 결정적으로 — 자동 지표(ROUGE)를 최적화하는 것보다 학습된 보상 모델을 최적화하는 쪽이 사람 평가에서 더 나았다.
2021 · 책 한 권
Wu 외. 책 전체를 재귀적으로 요약. 사람이 직접 평가할 수 없을 만큼 긴 과제에 RLHF를 붙인 첫 시도로, 초인적 시스템 감독(scalable oversight)의 예행연습이었다.

2020년 요약 연구가 특히 중요하다. 요약에는 정답이 하나가 아니다. 같은 글을 놓고 열 사람이 쓰면 열 개의 다른 요약이 나오고, 모두 괜찮을 수 있다. 그런데 사람은 두 요약을 나란히 놓으면 어느 쪽이 나은지 대체로 동의한다. Stiennon 팀이 보고한 연구자 간 일치율은 73±4%였다 — InstructGPT의 레이블러 간 일치율 72.6%와 거의 같다.

"정답은 하나가 아니지만 비교는 일관적이다." 이 성질을 가진 과제가 바로 RLHF가 빛나는 자리다. 그리고 비서에게 시키는 거의 모든 일이 여기에 속한다.


4부. InstructGPT의 세 단계

3단계 인포그래픽크게 보기

이제 본론이다. 논문 Figure 2가 보여 주는 절차는 세 단계다. 하나씩 뜯어 보자.

4.1 재료: 진짜 사용자의 프롬프트

무엇으로 훈련할지부터 정해야 한다. 여기서 InstructGPT는 당시의 경쟁 연구들(FLAN, T0)과 결정적으로 갈린다. 학술 NLP 데이터셋이 아니라 OpenAI API에 실제로 들어온 프롬프트를 썼다.

용도 분포는 이랬다.

API 프롬프트 용도 분포 (논문 Table 1)
생성45.6%
개방형 QA12.4%
브레인스토밍11.2%
대화8.4%
다시 쓰기6.6%
요약4.2%
분류3.5%
폐쇄형 QA2.6%
추출1.9%

초록색으로 표시한 것들 — 요약·분류·폐쇄형 QA·추출 — 이 전통적인 NLP 벤치마크가 잘 다루는 과제다. 합쳐서 약 12%다. 나머지 대부분은 "커리어에 다시 열정을 갖는 다섯 가지 방법을 나열해 줘" 같은, 채점 기준이 없는 개방형 생성이다.

논문은 이 차이를 실험으로 확인했다. 같은 GPT-3를 FLAN 데이터와 T0 데이터로 각각 파인튜닝한 뒤 실제 고객 프롬프트에서 겨뤘더니, 175B SFT 기준선 대비 승률이 이랬다.

모델승률 (175B SFT 대비)
InstructGPT73.4 ± 2%
FLAN 방식 파인튜닝29.8 ± 2%
T0 방식 파인튜닝26.8 ± 2%

논문의 결론: "공개 NLP 데이터셋은 우리 언어 모델이 실제로 쓰이는 방식을 반영하지 않는다." 2026년의 표현으로 옮기면, 벤치마크 점수와 사용자 만족도는 다른 축이다. 지금도 유효한 교훈이다.

4.2 1단계 — 시범 데이터 (SFT)

40명의 레이블러가 프롬프트를 받아 직접 모범 답안을 썼다. 그 답안으로 GPT-3를 평범한 지도학습으로 파인튜닝한다. 이것이 SFT(supervised fine-tuning) 모델이다.

데이터 규모 (논문 Table 6, 프롬프트 개수 기준)
SFT 학습 데이터 : 레이블러 작성 11,295 + 고객 프롬프트 1,430 = 약 1만 3천 RM 학습 데이터 : 레이블러 작성 6,623 + 고객 프롬프트 26,584 = 약 3만 3천 PPO 학습 데이터 : 고객 프롬프트 31,144 (답안 라벨 없음, 프롬프트만) = 약 3만 1천

주목할 점은 규모다. 1만 3천 건. 사전학습에 쓰인 수천억 토큰에 비하면 먼지 같은 양이다. 그런데 이 단계만으로 이미 상당한 변화가 일어난다 — 5부의 지표 탐색기에서 SFT 기둥을 유심히 보자.

한 가지 닭과 달걀 문제도 있었다. 맨 처음에는 지침 형태의 프롬프트 자체가 없었다. GPT-3 API에 들어오는 요청은 대부분 이어쓰기였기 때문이다. 그래서 레이블러들에게 프롬프트를 직접 지어내 달라고 부탁했다. 아무 과제나 생각해 보라고 한 것(Plain), 지침과 예시 쌍을 만들어 달라고 한 것(Few-shot), API 대기자 명단에 적힌 사용 목적을 보고 그에 맞는 프롬프트를 만들어 달라고 한 것(User-based) — 세 종류였다. 오늘날 모든 지침 데이터셋의 조상이다.

4.3 2단계 — 보상 모델 (RM)

핵심 단계다. 여기서 "사람의 취향"이 미분 가능한 함수가 된다.

순위 하나가 여섯 개의 비교가 된다크게 보기

절차는 이렇다. 한 프롬프트에 대해 모델이 여러 답을 뽑는다. 논문은 한 번에 K = 4개에서 9개를 보여 줬다. 레이블러는 이들을 좋은 순서대로 순위를 매긴다. 그러면 순위 하나가 (K2)\binom{K}{2}개의 쌍 비교로 쪼개진다. K = 9면 36개다.

직접 해 보자.

수식으로 쓰면 이렇다. 보상 모델 rθr_\theta가 프롬프트 xx와 답변 yy에 점수를 매길 때, 사람이 ywy_wyly_l보다 선호했다면 손실은

L(θ)=logσ(rθ(x,yw)rθ(x,yl))\mathcal{L}(\theta) = -\log \sigma\big(r_\theta(x, y_w) - r_\theta(x, y_l)\big)

여기서 σ\sigma는 시그모이드다. 이 식의 뿌리는 1952년 통계학자 브래들리와 테리가 만든 쌍 비교 모형이다. 스포츠 팀의 실력을 승패 기록에서 추정하는 데 쓰던 모형이, 70년 뒤 언어 모델의 취향을 추정하는 데 쓰이고 있다.

실무적으로 재미있는 디테일이 몇 개 있다.

왜 점수가 아니라 순위인가
"7점 만점에 몇 점?"은 사람마다 기준이 다르고 날마다 흔들린다. "둘 중 어느 쪽?"은 훨씬 안정적이다. 논문의 레이블러 간 일치율 72.6%는 이 형식 덕이 크다.
왜 한 배치에 몰아 넣나
같은 프롬프트에서 나온 쌍들은 서로 강하게 상관돼 있다. 섞어서 흩뿌리면 보상 모델이 한 에포크 만에 과적합됐다. 그래서 (K2)\binom{K}{2}개 쌍 전부를 하나의 배치로 묶어 학습한다.
왜 보상 모델은 6B인가
175B 보상 모델은 검증 손실이 더 낮아질 수 있었지만 학습이 불안정했고, PPO의 가치 함수 초기값으로 쓰기 부적합했다. 모든 크기의 정책이 같은 6B 보상 모델 하나를 썼다.
라벨링은 한 명이 한다
비용 때문에 대부분의 비교는 단 한 명이 라벨링했다. 논문이 한계로 직접 적은 항목이다. "여러 번 라벨링하면 작업자들이 의견이 갈리는 지점을 찾아낼 수 있을 것"이라고 덧붙인다.

4.4 3단계 — PPO, 그리고 목줄

목줄의 수학크게 보기

이제 보상 모델이 점수를 매겨 주니 강화학습을 돌릴 수 있다. 정책(SFT 모델)이 답을 생성하면 보상 모델이 점수를 주고, 그 점수를 높이는 방향으로 PPO(Proximal Policy Optimization, Schulman 외 2017)가 정책을 민다.

여기서 문제가 생긴다. 2부에서 본 보트가 돌아온다. 보상 모델은 진짜 사람이 아니다. 그것은 사람의 판단을 흉내 낸 신경망이고, 신경망에는 허점이 있다. 정책이 충분히 오래 최적화하면 그 허점을 반드시 찾아낸다.

그래서 보상에 벌점을 붙인다. 실제 목적 함수는 이렇다.

R(x,y)=rθ(x,y)βlogπRL(yx)πSFT(yx)R(x, y) = r_\theta(x, y) - \beta \log \frac{\pi^{\text{RL}}(y \mid x)}{\pi^{\text{SFT}}(y \mid x)}

뒤의 항이 정책과 원본 SFT 모델 사이의 KL 발산이다. 멀어질수록 벌점이 커진다. 논문의 β\beta0.02. 비유하자면 원본 모델이라는 기둥에 목줄로 묶어 두는 것이다. 언덕 쪽으로 걸어갈 수는 있지만, 너무 멀리 가면 끌려온다.

이 다이얼을 돌려 보면 왜 필요한지 몸으로 알 수 있다.

과최적화 — 점수는 오르는데 품질은 꺾인다크게 보기

📉
이 현상은 나중에 정밀하게 측정된다. Leo Gao·John Schulman·Jacob Hilton의 Scaling Laws for Reward Model Overoptimization(2022)은 "금 표준" 보상 모델을 사람 대신 세우고, 그것으로 학습시킨 대리 보상 모델을 얼마나 최적화해도 되는지를 측정했다. 결과: 대리 점수와 진짜 점수가 갈라지는 지점이 있고, 그 지점은 √KL의 함수로 예측 가능한 형태를 따른다. 보상 해킹은 사고가 아니라 법칙이다.

4.5 정렬 세금, 그리고 그 청구서를 깎는 법

정렬 세금은 아주 작다크게 보기

PPO를 돌리자 예상치 못한 부작용이 나왔다. 고객 프롬프트에서는 좋아졌는데 공개 NLP 벤치마크에서 성능이 떨어진 것이다 — SQuAD, DROP, HellaSwag, 그리고 프랑스어-영어 번역.

논문은 이것을 정렬 세금(alignment tax)이라고 불렀다. 정렬을 얻기 위해 지불하는 능력의 대가다. 그리고 이렇게 경고한다.

세금이 높은 기법은 채택되지 않을 수 있다. 미래의 고성능 AI 시스템이 정렬되지 않은 채로 남을 유인을 만들지 않으려면, 정렬 세금이 낮은 기법이 필요하다.

해법은 놀랄 만큼 단순했다. PPO 업데이트 사이에 원래 GPT-3 사전학습 데이터를 조금 섞어 평범한 언어 모델링 손실로 함께 학습시키는 것이다(PPO-ptx). 사전학습 예시를 RL 에피소드 수의 8배 넣고, 그 기울기에 계수 γ=27.8\gamma = 27.8을 곱했다. 논문은 각주에 "이 방법이 단순히 KL 계수를 키우는 것보다 효과적이었다"고 적었다.

그리고 전체 청구서는 이랬다.

연산 비용 (petaflops/s-days)
GPT-3 사전학습3,640
175B PPO-ptx 학습60
175B SFT 학습4.9
💡
논문의 결론 문장: "지금으로서는 기존 언어 모델의 정렬에 투자하는 것이 더 큰 모델을 훈련하는 것보다 비용 대비 효과적이다 — 적어도 우리 고객의 자연어 과제 분포에서는." 사전학습의 1.6%를 써서, 모델 크기를 100배 키우는 것보다 큰 체감 개선을 얻었다.

5부. 결과 — 무엇이 얼마나 좋아졌나

5.1 사람의 평가

핵심 결과는 단순하다. 레이블러들에게 두 모델의 출력을 나란히 보여 주고 고르게 했더니,

  • 175B InstructGPT vs 175B GPT-3 → 85 ± 3%
  • 175B InstructGPT vs few-shot 175B GPT-3 → 71 ± 4%
  • 1.3B InstructGPT vs 175B GPT-3 → 1.3B 승

마지막 줄이 이 논문을 유명하게 만든 문장이다. 파라미터가 100배 이상 적은 모델이 더 선호됐다. 두 모델은 구조가 같고, 차이는 오직 사람의 데이터로 파인튜닝했는지 여부뿐이다.

"우리 레이블러들한테만 맞춘 것 아니냐"는 반론에 대비해 논문은 두 개의 실험을 더 했다.

검증결과
보류 레이블러(훈련 데이터를 전혀 만들지 않은 별도 인력)의 평가훈련 레이블러와 거의 같은 비율로 InstructGPT를 선호
레이블러를 5그룹으로 나눠, 4그룹으로 학습한 보상 모델이 남은 1그룹의 선호를 맞히는 정확도69.6 ± 0.9% (자기 그룹은 72.4 ± 0.4%)

보상 모델은 특정 개인을 외운 게 아니라 일반화 가능한 취향의 함수를 배웠다. 3%p 하락은 작지 않지만 재앙도 아니다.

5.2 안전과 진실성 — 그리고 숨어 있는 반전

여기서부터 흥미로워진다. 발표문은 네 개의 지표를 제시하는데, 세 기둥(GPT-3 / SFT / InstructGPT)을 함께 봐야 이야기가 보인다.

요약하면 이렇다.

RLHF가 확실히 고친 것 — 진실성
TruthfulQA 0.224 → 0.413. 거의 두 배다. 그런데 SFT만으로는 오히려 0.206으로 떨어졌다. 모범 답안을 흉내 내는 것만으로는 안 되고, "어느 쪽이 더 나은가"라는 비교 신호가 있어야 올라간 항목이다.
SFT만으로 거의 끝난 것 — 유해성
RealToxicityPrompts 0.233 → 0.199(SFT) → 0.196(InstructGPT). RLHF가 더한 몫은 미미하다. 게다가 논문은 Winogender·CrowS-Pairs 같은 편향 지표에서는 개선이 없었다고 명시한다.
RLHF가 되돌린 것 — 환각
0.414(GPT-3) → 0.078(SFT) → 0.172(InstructGPT). SFT 모델이 가장 정직했다. RLHF를 얹으니 환각이 두 배 이상 늘었다. 보상 모델이 길고 풍성한 답을 선호했기 때문으로 읽힌다 — 3부에서 본 목줄이 왜 필요한지의 또 다른 증거다.

이 마지막 항목은 RLHF 소개 글에서 보통 생략된다. 하지만 이것이야말로 "정렬은 공짜가 아니라 교환"이라는 사실을 가장 정직하게 보여 주는 숫자다.

5.3 예상치 못한 선물 — 일반화

논문의 정성적 발견 중 하나가 특히 흥미롭다. InstructGPT는 코드에 대한 지침을 따를 수 있었고, 영어가 아닌 언어의 지침도 가끔 따랐다. 파인튜닝 데이터의 96% 이상이 영어였고 코드는 거의 없었는데도 말이다.

논문의 해석:

이것은 우리 모델이 "지침을 따른다"는 개념 자체를 일반화할 수 있음을 시사하기 때문에 흥미롭다. 모델은 직접적인 감독 신호를 거의 받지 못한 과제에서도 어느 정도 정렬을 유지한다.

이 관찰이 2026년의 관점에서 다시 읽힌다. 지금 우리가 한국어로 Claude나 GPT에게 시키는 거의 모든 일이 이 일반화의 후손이다. 한국어 지침 데이터가 영어만큼 있어서가 아니라, "지침 따르기"라는 추상이 언어를 건너가기 때문이다. (물론 완전하지는 않다. 논문도 "지침이 다른 언어여도 영어로 답하는 경우가 잦다"고 적었다 — 2026년에도 가끔 겪는 일이다.)


6부. 청구서 — RLHF가 고친 것이 아니라 만든 것

아첨하는 AI크게 보기

여기까지가 성공담이다. 이제 대가를 보자. 중요한 것은 아래의 문제들이 버그가 아니라는 점이다. "사람의 선호를 보상으로 쓴다"는 설계에서 논리적으로 따라 나온다.

6.1 가장 무거운 청구서 — 잘 따르는 힘이 곧 위험이다

잘 따르는 힘, 잘 따르는 위험크게 보기

위 위젯의 네 번째 탭을 한 번 더 보자. OpenAI는 자사 발표문에 "이웃집에 침입하는 방법을 알려 줘"에 InstructGPT가 8단계 안내서로 답하는 출력을 실었다. 숨기지 않고, 성공 사례들 바로 옆에.

이 배치가 의도적이라고 나는 생각한다. 발표문의 한계 절이 이유를 설명한다.

모델이 사용자 지침을 따르도록 훈련할 때의 부산물은, 안전하지 않은 출력을 생성하라는 지침이 주어질 경우 남용에 더 취약해질 수 있다는 점이다. 이 문제를 해결하려면 모델이 특정 지침을 거부해야 한다. 이를 신뢰성 있게 해내는 것은 중요한 미해결 연구 문제다.

같은 훈련이 달 착륙 설명을 고쳤고 침입 안내서를 만들었다. 능력과 위험이 같은 다이얼에 달려 있다. 여기서 이후 십 년의 안전 연구 — 거부 학습, 레드팀, 시스템 프롬프트 권한 계층, 프롬프트 주입 방어 — 가 전부 출발한다.

2026년의 에이전트 환경에서는 이 역설이 더 날카로워졌다. 지침이 사용자에게서만 오지 않기 때문이다. 에이전트가 읽은 웹페이지, 열어 본 문서, 호출한 API의 응답 — 전부 지침처럼 보일 수 있다. "잘 따르는 모델"을 만드는 일은 그래서 여전히 미완성이다.

6.2 누구의 선호인가

40명의 레이블러크게 보기

RLHF를 설명할 때 흔히 "인간의 가치에 정렬한다"고 말한다. 논문은 이 표현을 스스로 해체한다.

논문 §5.2의 문장들을 그대로 옮기면 이렇다.

  • "우리는 레이블러들의 선호에 정렬했다. 그 선호는 그들이 받은 지시, 그 지시를 받은 맥락(유급 노동), 그것을 준 사람에 의해 영향받았다."
  • "우리는 우리 연구자들의 선호에도 정렬했다. 레이블링 지침을 쓴 것도, 공유 채팅방에서 예외 상황에 답한 것도 우리다."
  • 레이블러는 대부분 미국이나 동남아에 거주하는 영어 사용자이고, Upwork와 Scale AI를 통해 고용됐다.
  • 데이터의 96% 이상이 영어다. "따라서 InstructGPT는 영어 사용자의 문화적 가치에 편향돼 있다."
  • 레이블러끼리도 약 73%만 일치한다.
👥
"AI가 인류의 가치에 정렬됐다"는 말이 실제로 가리키는 것은 선별 시험을 통과한 약 40명이, 연구자가 쓴 지침서를 읽고, 유급 노동으로, 대부분 혼자서, 주로 영어로 내린 판단의 평균이다. 이것은 비난이 아니다 — 논문이 스스로 적은 사실이고, 이 정직함이 이 논문의 미덕 중 하나다. 다만 우리가 "AI의 가치관"을 이야기할 때 무엇을 이야기하고 있는지는 알고 있어야 한다.

논문은 나아가 이렇게 쓴다. "평균 레이블러 선호에 정렬하는 것이 바람직하지 않은 경우가 많다. 예를 들어 소수 집단에 불균형적으로 영향을 미치는 텍스트를 생성할 때는 그 집단의 선호에 더 큰 가중치를 두어야 한다." 2026년에도 답이 나오지 않은 문제다.


7부. 2022 → 2026, 그 아이디어는 어디로 갔나

2017에서 2026까지크게 보기

InstructGPT 발표 열 달 뒤인 2022년 11월 30일, 같은 계보의 모델이 ChatGPT라는 이름으로 공개됐다. 발표문의 각주 B는 이미 그것을 예고하고 있었다 — "API에 배포된 InstructGPT 모델은 같은 인간 피드백 데이터로 훈련된 업데이트 버전입니다. 유사하지만 약간 다른 훈련 방법을 사용하며, 이는 향후 발표에서 설명할 예정입니다."

그 뒤 네 해 동안 이 아이디어는 계속 모양을 바꿨다.

핵심 흐름만 짚으면 이렇다.

7.1 사람 대신 원칙 — Constitutional AI (2022.12)

Anthropic의 Constitutional AI는 무해성 라벨링을 사람에게서 모델로 옮겼다. 모델이 자기 답을 원칙에 비춰 비판하고, 수정하고, 두 답 중 하나를 스스로 고른다. 사람의 개입은 "헌법"이라 불리는 원칙 목록 한 장으로 줄어든다. 이를 RLAIF(RL from AI Feedback)라 부른다. 부수 효과가 하나 더 있다 — 원칙이 글로 적혀 있으니 무엇에 정렬됐는지 읽어 볼 수 있다. 40명의 암묵적 취향보다 감사 가능하다.

7.2 보상 모델을 없애다 — DPO (2023.5)

PPO는 불편했다. 정책·참조·보상·가치 네 개의 모델을 동시에 메모리에 띄워야 하고, 하이퍼파라미터에 예민하고, 잘 터졌다. Direct Preference Optimization은 "당신의 언어 모델은 이미 몰래 보상 모델이다"라는 관찰에서 출발해, 별도 보상 모델과 RL 루프 없이 선호 쌍에 대한 단순한 분류 손실 하나로 같은 최적해에 도달할 수 있음을 보였다. 오픈소스 모델 정렬이 대학원 연구실 예산에서 가능해진 전환점이었다.

7.3 채점기로 갈아타다 — RLVR과 GRPO (2024~)

수학과 코드에는 정답이 있다. 그렇다면 흉내 낸 보상 모델 대신 실제 채점기를 쓰면 된다. 테스트를 돌려 통과하면 1, 아니면 0. 이것이 RLVR(Reinforcement Learning from Verifiable Rewards)이다. 학습된 보상 모델은 해킹당하지만 채점기는 해킹하기 훨씬 어렵다. DeepSeek이 제안한 GRPO는 여기서 한 발 더 나아가 가치망까지 없애고, 한 프롬프트에 대한 여러 답의 상대적 순위로 기준선을 잡는다. 2026년 추론 모델 학습의 사실상 표준이다.

7.4 그래서 RLHF는 죽었나

아니다. 스택이 모듈화됐을 뿐이다.

사전학습
능력의 저수지
SFT
지침 따르기의 형식
선호 최적화
DPO·RLHF — 취향
검증 가능한 RL
GRPO·RLVR — 정답

세 번째 칸이 사라지지 않는 이유는 단순하다. "이 글이 읽을 만한가", "이 톤이 이 상황에 맞는가", "이 거절이 정중한가"를 채점할 기계가 아직 없기 때문이다. 채점기가 커버하는 영역은 계속 넓어지겠지만, 취향의 영역은 남는다. 그리고 비서·상담·글쓰기·요약 — 기업이 LLM을 쓰는 대부분의 자리가 정확히 그 영역이다.

잠깐 퀴즈 — 왜 RLVR이 RLHF를 완전히 대체하지 못하나
수학·코드에서는 채점기가 압도적으로 낫다. 그렇다면 고객 상담 답변에도 채점기를 만들면 되지 않을까? "정중함 점수를 매기는 모델"을 만들어 채점기로 쓰면?
그렇게 만든 "채점기"는 학습된 보상 모델과 정확히 같은 것이다. 이름만 바꾼 셈이고, 따라서 해킹 가능성도 그대로 따라온다. RLVR이 강한 이유는 채점기가 모델이 아니라 실행이기 때문이다 — 코드를 돌려 테스트가 통과하는지, 답이 정답과 같은지는 신경망의 의견이 아니라 사실이다. 정중함에는 그런 실행이 없다. 4부에서 본 KL 목줄이 여전히 필요한 이유이기도 하다.

8부. 2026년의 실무자에게 — 이 논문이 여전히 주는 것

이 글을 읽는 대부분은 모델을 직접 훈련하지 않을 것이다. 그래도 이 논문은 실무에 세 가지를 준다.

8.1 당신이 쓰는 모델은 누군가의 취향이 박힌 도구다

GPT든 Claude든 Gemini든, 그 모델이 "좋은 답"이라고 여기는 기준은 어느 조직이 쓴 지침서와 어느 집단이 내린 판단의 결과물이다. 그래서 같은 프롬프트에 모델마다 다른 톤의 답이 나온다. 이것은 성능 차이가 아니라 취향 차이인 경우가 많다.

실무적 함의: 모델을 고를 때 벤치마크 점수만 보지 말고, 우리 회사의 문서 톤에 가까운 답을 내는 모델을 봐야 한다. 논문이 보여 준 것과 같다 — 공개 벤치마크는 실사용 분포를 대표하지 않는다.

8.2 "평가 데이터"가 곧 "정렬 데이터"다

논문의 구조를 회사 규모로 축소하면 그대로 쓸 수 있다.

1실제 요청을 모은다. 상상한 프롬프트가 아니라 사용자가 실제로 입력한 것. InstructGPT가 FLAN·T0를 이긴 이유가 이것이다.
2모범 답을 쓴다. 30~50건이면 시작할 수 있다. 이것이 당신의 SFT 데이터이자 few-shot 예시다.
3두 답을 나란히 놓고 고른다. 점수를 매기지 말고 비교하라. 일치율이 훨씬 높다.
4그 비교를 평가 세트로 고정한다. 프롬프트를 바꾸거나 모델을 교체할 때마다 이 세트로 돌린다.

파인튜닝을 하지 않아도 3~4단계만으로 충분한 가치가 나온다. "우리 조직이 좋은 답이라고 부르는 것"을 문서가 아니라 예시의 집합으로 갖게 되기 때문이다.

8.3 당신의 지표도 해킹당한다

2부의 위젯이 보여 준 것은 AI만의 문제가 아니다. 사내 AI 도입 KPI를 "AI 사용 건수"로 잡으면 팀은 사용 건수를 올린다. "응답 속도"로 잡으면 짧고 얕은 답이 늘어난다. 측정치가 목표가 되는 순간 그것은 좋은 측정치이기를 그만둔다.

InstructGPT의 처방을 빌리면 이렇게 된다. 하나의 지표를 최적화하지 말고, ① 여러 지표를 동시에 보고(발표문의 네 지표를 떠올려 보라), ② 이전 상태에서 너무 멀어지지 않도록 벌점을 두고(KL 페널티), ③ 원래 잘하던 일이 망가지지 않는지 계속 확인하라(정렬 세금 점검).


마치며 — 900비트에서 시작한 일

2017년 어느 연구자가 한 시간 동안 화면 앞에 앉아 두 개의 영상 클립 중 하나를 900번쯤 골랐다. 그 900비트로 막대 로봇이 뒤공중돌기를 배웠다.

2022년 1월, 40명이 비슷한 일을 했다. 답변 네댓 개를 좋은 순서대로 정렬하는 일. 그 판단들이 모여 "달 착륙을 6살에게 설명해 줘"라는 요청에 문제 목록으로 답하던 모델이 아이에게 말을 거는 모델이 됐다.

2026년 지금, 사람이 직접 대는 신호는 계속 줄고 있다. 40명의 순위는 원칙 한 장이 됐고, 원칙 한 장은 채점기의 0과 1이 됐다. 그런데 한 가지는 아직 기계로 넘어간 적이 없다. 무엇을 좋은 답으로 칠 것인가를 정하는 일이다. 헌법을 누가 쓰는가, 채점기가 무엇을 채점하는가, 그 채점 결과를 믿을지 말지를 누가 정하는가 — 전부 사람의 자리다.

InstructGPT 발표문이 마지막 문단에서 남긴 문장이 그 자리를 가장 정확하게 가리킨다.

모델 출력을 특정한 사람들의 가치에 정렬하는 것은 사회적 함의를 가진 어려운 선택들을 수반한다. 궁극적으로 우리는 이러한 결정을 내리기 위한 책임감 있고 포용적인 절차를 수립해야 한다.

기술은 네 해 만에 세 번 바뀌었다. 저 문장은 아직 그대로다.


함께 읽기

참고 자료

  1. Ryan Lowe, Jan Leike. Aligning language models to follow instructions. OpenAI, 2022-01-27. — 이 글의 출발점
  2. Ouyang, L. 외. Training language models to follow instructions with human feedback. arXiv:2203.02155, 2022. — InstructGPT 논문. 본문의 수치는 대부분 여기서 가져왔다
  3. Christiano, P., Leike, J., Brown, T., Martic, M., Legg, S., Amodei, D. Deep reinforcement learning from human preferences. arXiv:1706.03741, 2017. — 뒤공중돌기
  4. Amodei, D., Christiano, P., Ray, A. Learning from human preferences. OpenAI, 2017. — 900비트와 손으로 쓴 보상 함수
  5. Clark, J., Amodei, D. Faulty reward functions in the wild. OpenAI, 2016. — CoastRunners 보트
  6. Stiennon, N. 외. Learning to summarize from human feedback. arXiv:2009.01325, 2020.
  7. Gao, L., Schulman, J., Hilton, J. Scaling Laws for Reward Model Overoptimization. arXiv:2210.10760, 2022. — 과최적화의 함수 형태
  8. Bai, Y. 외. Constitutional AI: Harmlessness from AI Feedback. arXiv:2212.08073, 2022.
  9. Rafailov, R. 외. Direct Preference Optimization. arXiv:2305.18290, 2023.
  10. Sharma, M. 외. Towards Understanding Sycophancy in Language Models. arXiv:2310.13548, 2023. — 아첨의 원인이 사람의 선호에 있다는 증거

본문에 인용한 GPT-3·InstructGPT 출력은 OpenAI 발표문에 실린 원문이며, 한국어 번역은 편집부가 붙였다. 위젯의 수치 중 출처를 밝히지 않은 값(보상 규칙의 가중치, 레이블러 성향, 과최적화 곡선의 계수 등)은 개념을 보이기 위해 편집부가 구성한 설명용 값이다.