Skip to main content
Summary

RLHF는 알고리즘 하나의 이름이 아니다

강화학습을 처음 배울 때 우리는 작은 격자 세계에서 출발했다. 에이전트는 현재 위치를 보고, 위나 아래 같은 행동을 선택하고, 보상을 받은 뒤, 다음 상태로 이동했다. 언어 모델에서도 큰 그림은 같다. 다만 격자 세계의 한 칸이 문맥이 되고, 위아래로 움직이는 행동이 다음 토큰을 고르는 일이 되며, 도착점 보상은 사람이 보기에 좋은 답변이라는 평가로 바뀐다.

여기서 중요한 점이 있다. RLHF는 Q-learning이나 PPO처럼 하나의 단일 알고리즘을 가리키는 말이 아니다. RLHF, 즉 인간 피드백을 통한 강화학습은 언어 모델을 인간의 선호에 맞추기 위한 단계적 학습 절차다. 이 절차 안에는 대규모 사전학습, 지도 미세조정, 보상 모델 학습, 강화학습 미세조정이 차례로 들어간다.

비유하자면 RLHF는 요리법 하나가 아니라 요리 코스 전체에 가깝다. 먼저 좋은 재료를 준비하고, 기본 손질을 하고, 시식단의 평가 기준을 만들고, 마지막으로 그 평가 기준에 맞게 맛을 조정한다. 이 과정을 모두 합쳐 우리는 RLHF라고 부른다.

RLHF의 기본 흐름

첫 번째 단계: 사전학습으로 언어 능력을 얻는다

RLHF의 출발점은 이미 상당한 언어 능력을 갖춘 대규모 언어 모델이다. 이 모델은 방대한 텍스트를 읽으며 다음 단어, 더 정확히는 다음 토큰을 예측하는 방식으로 학습한다.

예를 들어 문장이 다음과 같이 주어진다고 해 보자.

강화학습에서 에이전트는 상태를 보고 행동을 선택한 뒤 보상을

모델은 그다음에 올 가능성이 높은 토큰을 예측한다. 받을, 얻고, 관찰한다 같은 후보들에 확률을 부여한다. 이 과정이 엄청난 규모로 반복되면 모델은 문법, 사실 지식, 문체, 추론의 패턴, 코드 작성 방식, 대화의 흐름을 넓게 익힌다.

하지만 사전학습만으로는 우리가 원하는 대화형 AI가 완성되지 않는다. 사전학습 모델은 언어의 패턴을 잘 배운 모델이지, 반드시 사용자의 지시를 잘 따르는 모델은 아니다. 질문을 받았을 때 친절하게 답해야 하는지, 이어서 소설처럼 문장을 계속 써야 하는지, 웹 문서처럼 꾸며야 하는지 명확히 알지 못할 수 있다.

사전학습 모델은 말하자면 책을 많이 읽은 학생이다. 아는 것은 많지만, 시험 문제의 지시문을 읽고 간결하게 답하는 훈련은 아직 부족할 수 있다.

두 번째 단계: 지도 미세조정으로 지시 따르기를 배운다

다음 단계는 지도 미세조정이다. 보통 SFT라고 부르며, Supervised Fine-Tuning의 줄임말이다. 지도 미세조정에서는 사람이 만든 좋은 예시 답변을 사용한다.

입력은 사용자의 요청이고, 정답에 해당하는 출력은 사람이 작성했거나 사람이 검수한 모범 답변이다.

입력: 파이썬에서 리스트를 정렬하는 방법을 알려 줘.
출력: sort() 메서드나 sorted() 함수를 사용할 수 있습니다. sort()는 원본 리스트를 바꾸고, sorted()는 새 리스트를 반환합니다.

모델은 이런 예시를 많이 보면서 사용자의 요청에 답하는 방식을 배운다. 요약하라면 요약하고, 설명하라면 설명하고, 코드가 필요하면 코드를 제시하는 식이다. 사전학습이 언어 자체를 익히는 과정이라면, 지도 미세조정은 대화와 지시 수행의 예절을 익히는 과정이다.

이 단계만으로도 모델의 품질은 크게 좋아진다. 실제로 많은 지시형 언어 모델은 SFT만으로도 꽤 그럴듯하게 동작한다. 하지만 여전히 문제가 남는다. 사람이 보기에 더 좋은 답변과 덜 좋은 답변 사이의 미묘한 차이를 단순한 정답 복사 방식으로는 충분히 배우기 어렵다.

예를 들어 같은 질문에 대해 두 답변이 있다고 하자.

질문: 초보자에게 강화학습을 설명해 줘.

답변 A: 강화학습은 보상을 최대화하는 학습 방법입니다. MDP와 Bellman equation을 기반으로 합니다.

답변 B: 강화학습은 게임 캐릭터가 여러 번 시도하면서 더 높은 점수를 얻는 방법을 배우는 것과 비슷합니다. AI는 행동을 해 보고, 보상을 받은 뒤, 다음에는 더 좋은 선택을 하도록 전략을 바꿉니다.

두 답변 모두 틀린 말은 아니다. 하지만 초보자를 위한 설명이라면 답변 B가 더 적절할 가능성이 높다. 문제는 이런 좋음이 항상 하나의 정답 문장으로 표현되지는 않는다는 데 있다. 좋은 답변은 상황에 따라 친절함, 정확성, 안전성, 간결함, 유용성의 균형으로 결정된다.

그래서 RLHF는 사람에게 한 가지 완벽한 정답을 쓰게 하는 대신, 여러 답변을 비교하게 만든다.

세 번째 단계: 인간 선호 데이터로 보상 모델을 만든다

이제 지난 장에서 살펴본 보상 모델이 등장한다. 보상 모델은 언어 모델의 답변을 보고 사람이 좋아할 만한 정도를 점수로 예측하는 모델이다.

사람은 보통 어떤 질문에 대해 여러 답변을 비교한다. 답변 A와 답변 B 중 어느 쪽이 더 좋은지 고른다. 때로는 세 개 이상을 순위로 매기기도 한다. 이때 만들어지는 데이터가 선호 데이터다.

프롬프트: 어린이에게 블랙홀을 설명해 줘.
답변 A: 블랙홀은 중력이 매우 강해서 빛도 빠져나오지 못하는 천체입니다.
답변 B: 블랙홀은 우주에 있는 아주 강한 빨아들이는 구멍처럼 생각할 수 있어요. 너무 힘이 세서 빛조차 도망가기 어렵습니다.
사람의 선택: 답변 B 선호

보상 모델은 이런 비교 데이터를 통해 배운다. 핵심은 사람이 직접 8.7점, 6.2점처럼 점수를 매기지 않아도 된다는 점이다. 사람은 보통 절대 점수를 안정적으로 주기 어렵다. 그러나 둘 중 어느 답변이 나은지는 상대적으로 더 잘 판단할 수 있다.

보상 모델은 이 선호 관계를 학습해 어떤 답변에 더 높은 점수를 줄지 배운다. 이후에는 사람이 매번 평가하지 않아도, 보상 모델이 언어 모델의 답변에 보상 점수를 매길 수 있다.

이 장면을 강화학습의 언어로 바꾸면 다음과 같다. 언어 모델은 정책이다. 프롬프트와 지금까지 생성한 토큰을 상태로 보고, 다음 토큰을 행동으로 선택한다. 답변이 끝나면 보상 모델이 전체 답변을 평가해 보상을 준다. 그러면 정책은 더 높은 보상을 얻는 방향으로 조정된다.

네 번째 단계: 강화학습 미세조정으로 정책을 조정한다

이제 RLHF의 마지막 핵심 단계에 도착했다. 보상 모델이 생겼으니, 언어 모델을 그 보상 기준에 맞게 더 조정할 수 있다. 이것이 강화학습 미세조정이다.

절차는 대략 이렇게 진행된다.

  1. 사용자 프롬프트를 정책 모델에 넣는다.

  2. 정책 모델이 답변을 생성한다.

  3. 보상 모델이 생성된 답변에 점수를 준다.

  4. 강화학습 알고리즘이 더 높은 점수를 받도록 정책 모델을 업데이트한다.

여기서 정책 모델은 답변을 생성하는 현재 언어 모델이다. 우리는 이 모델이 더 유용하고, 더 안전하고, 더 사람의 의도에 맞는 답변을 하도록 만들고 싶다.

이 과정은 격자 세계의 에이전트와 닮았다. 격자 세계에서 에이전트가 오른쪽으로 가서 보상을 받으면, 다음에도 비슷한 상태에서 오른쪽을 선택할 가능성을 높인다. 언어 모델도 마찬가지다. 어떤 답변이 높은 보상을 받으면, 비슷한 문맥에서 그런 답변을 만들 확률을 높인다.

다만 언어 모델의 행동은 훨씬 복잡하다. 한 번의 답변은 수십 개에서 수천 개의 토큰 선택으로 이루어진다. 보상은 보통 답변이 끝난 뒤 한 번에 주어진다. 그러므로 어떤 토큰 선택이 최종 보상에 얼마나 기여했는지 판단하기 어렵다. 앞에서 배운 신용 할당 문제가 다시 등장하는 것이다.

이때 PPO 같은 정책 최적화 방법이 자주 사용된다. PPO는 좋은 방향으로 정책을 업데이트하되, 한 번에 너무 과격하게 바뀌지 않도록 제한하는 방법이다. 다음 장에서 이 연결을 더 자세히 보겠지만, 지금은 PPO가 RLHF 파이프라인의 마지막 조정 단계에서 자주 쓰이는 강화학습 도구라고 이해하면 충분하다.

RLHF 안의 세 모델: 정책 모델, 기준 모델, 보상 모델

RLHF를 처음 볼 때 가장 헷갈리는 부분은 모델이 하나가 아니라 여러 개 등장한다는 점이다. 모두 언어 모델처럼 보이지만 역할이 다르다. 특히 정책 모델, 기준 모델, 보상 모델을 구분해야 한다.

정책 모델은 실제로 답변을 생성하고 업데이트되는 모델이다. 사용자의 질문을 받고 다음 토큰을 고르며 문장을 만들어 낸다. 강화학습의 용어로는 행동을 선택하는 에이전트에 해당한다. RLHF의 마지막 단계에서 우리가 바꾸고 싶은 대상이 바로 이 정책 모델이다.

기준 모델은 원래의 언어 모델을 붙잡아 두는 기준점이다. 보통 지도 미세조정까지 끝난 모델을 복사해 두고, 강화학습 중에는 업데이트하지 않는다. 기준 모델은 이렇게 말하는 감시자에 가깝다. 좋아, 더 나은 답변을 배우는 건 좋지만, 원래의 언어 능력과 너무 멀어지지는 마.

보상 모델은 답변을 평가하는 모델이다. 직접 답변을 생성하는 것이 아니라, 정책 모델이 만든 답변을 보고 점수를 준다. 사람의 선호를 흉내 내는 심사위원이라고 볼 수 있다.

세 모델의 관계를 간단히 정리하면 다음과 같다.

  • 정책 모델은 답변을 만든다.

  • 보상 모델은 답변에 점수를 준다.

  • 기준 모델은 정책 모델이 원래 모델에서 지나치게 멀어지는 것을 막는 비교 대상이 된다.

이 세 역할을 분리해서 이해하면 RLHF의 흐름이 훨씬 선명해진다. 정책 모델은 배우는 학생이고, 보상 모델은 채점자이며, 기준 모델은 학생이 기본기를 잃지 않도록 붙잡아 주는 원래의 모범 습관이다.

왜 기준 모델이 필요할까

보상 모델이 있다면, 그냥 보상 점수를 최대화하면 되지 않을까? 언뜻 보면 그럴듯하다. 하지만 강화학습에서 우리는 이미 중요한 교훈을 배웠다. 에이전트는 우리가 의도한 목표가 아니라, 주어진 보상 함수를 최대화한다.

보상 함수가 완벽하지 않으면 에이전트는 이상한 꼼수를 찾는다. 게임에서 점수를 얻기 위해 같은 장소를 빙빙 돌거나, 로봇이 목적지를 향해 걷는 대신 넘어지며 미끄러지는 방식으로 보상을 얻을 수도 있다. 언어 모델에서도 비슷한 일이 생길 수 있다.

보상 모델은 인간 선호를 근사한 모델일 뿐이다. 완벽한 인간 판단 그 자체가 아니다. 따라서 정책 모델이 보상 모델의 허점을 파고들 가능성이 있다. 예를 들어 실제로는 별 내용이 없는데 그럴듯하고 자신감 있는 문체만 강화될 수 있다. 또는 보상 모델이 선호하는 표현을 과하게 반복하는 식으로 점수를 올리려 할 수도 있다.

이 현상을 보상 해킹이라고 부른다. 에이전트가 우리가 진짜 원한 행동이 아니라 보상 체계의 빈틈을 이용하는 것이다.

그래서 RLHF에서는 정책 모델이 보상 모델의 점수를 높이도록 학습하되, 원래 모델과 너무 달라지지 않도록 제한한다. 이때 기준 모델과 KL 패널티가 등장한다.

KL 패널티: 너무 멀리 가지 않게 하는 끈

KL 패널티는 정책 모델이 기준 모델에서 지나치게 멀어질 때 벌점을 주는 장치다. KL은 두 확률분포가 얼마나 다른지를 재는 방법이라고 생각하면 된다. 언어 모델은 다음 토큰에 대해 확률분포를 만든다. 예를 들어 어떤 문맥에서 다음 토큰 후보마다 이런 확률을 줄 수 있다.

기준 모델: 강화 0.30, 학습 0.25, 모델 0.10, 바나나 0.001
정책 모델: 강화 0.05, 학습 0.03, 모델 0.02, 바나나 0.40

정책 모델이 갑자기 바나나 같은 엉뚱한 토큰에 높은 확률을 주기 시작했다면 기준 모델과 크게 달라진 것이다. 물론 실제 모델에서는 수많은 토큰에 대한 복잡한 확률분포를 비교하지만, 직관은 같다.

KL 패널티는 이렇게 말한다.

보상 모델에게 높은 점수를 받는 것은 좋다.
하지만 원래 모델이 자연스럽다고 생각하던 언어 분포에서 너무 멀어지면 벌점을 받는다.

강화학습 미세조정에서 정책이 실제로 최적화하는 목표는 단순히 보상 모델 점수만이 아니다. 보상 모델 점수에서 기준 모델과의 차이에 대한 벌점을 뺀 값에 가깝다.

최종 목표 ≈ 보상 모델 점수 - KL 패널티

이 식은 RLHF의 균형 감각을 잘 보여 준다. 한쪽에는 인간 선호에 더 잘 맞고 싶은 힘이 있다. 다른 한쪽에는 원래 언어 모델의 안정성과 다양성, 기본 지식을 유지하려는 힘이 있다. KL 패널티는 이 둘 사이에서 정책 모델이 너무 멀리 뛰쳐나가지 않게 묶어 두는 안전줄이다.

RLHF를 한 번에 따라가 보기

전체 흐름을 하나의 이야기로 묶어 보자.

처음에는 거대한 텍스트를 읽으며 다음 토큰을 예측하는 사전학습 모델이 있다. 이 모델은 언어를 꽤 잘 알지만, 사용자의 지시를 따르는 대화형 모델이라고 말하기에는 부족하다. 그래서 사람이 만든 좋은 질문과 답변 예시로 지도 미세조정을 한다. 이제 모델은 질문에 답하고, 설명하고, 요약하고, 코드를 작성하는 대화 능력을 갖춘다.

그러나 좋은 답변에는 정답 하나로 표현하기 어려운 미묘한 기준이 있다. 친절하지만 장황하지 않아야 하고, 정확하지만 딱딱하지 않아야 하며, 도움이 되지만 위험한 행동을 부추기면 안 된다. 그래서 사람에게 여러 답변을 비교하게 하고, 어떤 답변이 더 나은지 선호 데이터를 모은다. 이 데이터로 보상 모델을 학습한다.

그다음 정책 모델이 답변을 만들고, 보상 모델이 점수를 준다. 강화학습은 정책 모델이 더 높은 점수를 받는 답변을 생성하도록 조정한다. 동시에 기준 모델과 KL 패널티를 사용해 정책이 원래 모델에서 지나치게 멀어지지 않도록 붙잡는다.

이것이 RLHF의 기본 흐름이다.

  1. 사전학습으로 언어의 넓은 패턴을 배운다.

  2. 지도 미세조정으로 지시를 따르는 답변 방식을 배운다.

  3. 인간 선호 데이터로 보상 모델을 학습한다.

  4. 보상 모델과 KL 패널티를 사용해 정책 모델을 강화학습으로 조정한다.

중요한 것은 마지막 단계만 보고 RLHF를 이해하려 하면 안 된다는 점이다. 강화학습 미세조정은 앞 단계들이 쌓인 뒤에야 의미를 갖는다. 언어 능력이 없는 모델에 보상만 준다고 좋은 대화 모델이 되지는 않는다. 지시 따르기 능력이 전혀 없는 모델에 사람 선호 점수만 주어도 학습은 매우 불안정해진다.

RLHF는 밑바닥부터 언어를 가르치는 방법이 아니라, 이미 언어를 잘 아는 모델을 인간이 선호하는 방향으로 조심스럽게 조정하는 방법이다.

보상은 답변 전체에 주어지지만 행동은 토큰마다 일어난다

언어 모델 RLHF에서 직관적으로 어려운 지점이 하나 있다. 보상 모델은 보통 완성된 답변 전체를 보고 점수를 준다. 그러나 정책 모델의 행동은 토큰 하나하나를 선택하는 방식으로 일어난다.

예를 들어 모델이 다음과 같은 답변을 만들었다고 하자.

강화학습은 에이전트가 행동을 선택하고, 그 결과로 보상을 받으며, 장기적으로 더 좋은 선택을 하도록 배우는 방법입니다.

이 문장은 여러 토큰 선택의 결과다. 강화, 학습, 은, 에이전트, 가, 행동 같은 조각들이 순서대로 선택되었다. 보상 모델은 답변이 완성된 뒤 전체 품질을 보고 높은 점수를 줄 수 있다. 하지만 그 점수를 개별 토큰에 어떻게 나누어 줄지는 간단하지 않다.

이 문제는 우리가 앞에서 배운 강화학습의 오래된 고민과 같다. 긴 에피소드 끝에 보상을 받았을 때, 어떤 행동이 공을 세웠는지 알아내야 한다. 언어 모델에서는 좋은 문장 구성, 정확한 개념 설명, 적절한 예시, 안전한 표현이 모두 최종 보상에 영향을 준다.

그래서 RLHF에서 정책 업데이트는 단순한 정답 맞히기보다 훨씬 섬세하다. 높은 보상을 받은 답변의 모든 토큰을 무조건 강화하면 안 된다. 답변 안에도 중요한 선택과 덜 중요한 선택이 섞여 있기 때문이다. 또한 보상이 낮다고 해서 모든 토큰이 나쁜 것도 아니다. 앞부분은 훌륭했지만 마지막 한 문장이 위험했을 수도 있다.

이런 이유로 RLHF는 언어 모델 학습 중에서도 특히 조심스럽게 다뤄야 하는 단계다.

RLHF가 해결하려는 것과 해결하지 못하는 것

RLHF는 강력한 방법이지만 마법은 아니다. RLHF가 잘하는 일은 모델의 행동을 사람이 선호하는 방향으로 다듬는 것이다. 사용자의 의도를 더 잘 파악하게 만들고, 불필요하게 공격적이거나 무책임한 답변을 줄이며, 설명의 친절함과 유용성을 높이는 데 도움을 준다.

하지만 RLHF가 모든 문제를 해결하지는 않는다. 보상 모델이 잘못 배웠다면 정책 모델도 잘못된 방향으로 조정될 수 있다. 선호 데이터를 제공한 사람들의 기준이 편향되어 있다면 그 편향이 모델에 반영될 수 있다. 또한 보상 모델이 실제 인간 판단을 완벽히 대체할 수 없기 때문에, 모델이 그 허점을 이용하는 행동을 보일 수도 있다.

특히 사실성 문제는 조심해야 한다. 사람이 보기에 자연스럽고 자신감 있는 답변이 항상 사실인 것은 아니다. 보상 모델이 그럴듯한 문체를 과하게 선호하면, 정책 모델은 모르는 내용을 모른다고 말하기보다 그럴듯하게 꾸며 말하는 쪽으로 기울 수 있다. 따라서 RLHF는 검색, 검증, 안전 정책, 평가 데이터, 인간 검수 같은 다른 장치들과 함께 사용되어야 한다.

강화학습에서 늘 그랬듯이 보상은 목표의 그림자다. 그림자가 선명할수록 에이전트는 우리가 원하는 방향으로 잘 움직인다. 그러나 그림자가 실제 목표와 어긋나면 에이전트는 그림자만 쫓아갈 수 있다.

왜 RLHF가 LLM 정렬의 중심에 놓였을까

언어 모델의 기본 목표는 다음 토큰 예측이다. 이 목표는 놀라울 정도로 강력하다. 하지만 사람이 원하는 것은 단순히 그럴듯한 다음 토큰이 아니다. 우리는 도움이 되는 답변, 안전한 답변, 정직한 답변, 상황을 이해한 답변을 원한다.

여기서 정렬이라는 말이 등장한다. 정렬은 모델의 행동이 인간의 의도와 가치, 사용 목적에 맞도록 맞추는 일을 뜻한다. RLHF는 이 정렬을 위한 대표적인 접근법 중 하나다. 사람이 직접 모든 상황의 정답을 써 주는 대신, 어떤 답변이 더 나은지 비교하고, 그 선호를 보상 모델로 바꾸고, 다시 정책 모델을 조정한다.

이 구조가 매력적인 이유는 현실적인 확장성에 있다. 모든 질문에 완벽한 모범 답안을 쓰는 것은 어렵다. 하지만 두 답변 중 더 나은 것을 고르는 일은 상대적으로 쉽다. RLHF는 이 비교 판단을 학습 신호로 바꾸어 대규모 언어 모델에 전달한다.

물론 이 방법도 비용이 많이 든다. 좋은 선호 데이터를 모으려면 평가 기준을 정해야 하고, 평가자를 훈련해야 하며, 애매한 사례를 관리해야 한다. 보상 모델의 품질을 검증해야 하고, 강화학습 중 모델이 이상한 방향으로 움직이지 않는지도 계속 확인해야 한다.

그럼에도 RLHF는 현대 언어 모델을 이해하는 데 핵심적인 위치를 차지한다. 왜냐하면 이 방법이 강화학습의 오래된 질문을 언어 모델의 세계로 가져오기 때문이다.

정답이 하나로 주어지지 않을 때,
AI는 어떤 행동을 더 좋은 행동으로 배울 수 있을까?

RLHF는 이 질문에 대한 하나의 실용적인 답이다.

다음 장으로 가는 다리

이번 장에서는 RLHF의 전체 파이프라인을 보았다. 사전학습 모델은 언어 능력을 얻고, 지도 미세조정은 지시 따르기 능력을 더한다. 인간 선호 데이터는 보상 모델을 만들고, 보상 모델은 정책 모델을 강화학습으로 조정하는 기준이 된다. 기준 모델과 KL 패널티는 그 조정이 너무 과격해지지 않도록 붙잡아 준다.

이제 남은 질문은 더 구체적이다. 정책 모델을 실제로 어떻게 업데이트할까? 보상 점수가 높으면 그 답변을 더 자주 만들도록 해야 한다는 말은 쉽지만, 거대한 언어 모델의 수많은 파라미터를 안정적으로 바꾸는 일은 쉽지 않다.

여기서 PPO가 다시 등장한다. PPO는 Advantage가 가리키는 좋은 방향을 따르되, 정책이 한 번에 너무 멀리 이동하지 못하게 제한한다. 이 성격은 RLHF와 매우 잘 맞는다. 인간 선호에 맞추고 싶지만, 원래 언어 모델의 능력을 망가뜨리고 싶지는 않기 때문이다.

다음 장에서는 PPO가 언어 모델 정렬에서 어떤 역할을 하는지 살펴본다. 격자 세계와 CartPole에서 배운 정책 업데이트의 감각이 이제 대화형 AI의 답변 조정으로 이어질 차례다.

책 목록

처음 만나는 강화학습: 보상으로 행동을 배우는 AI

전체 목차 보기

이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.

틸노트는 사용자가 AI를 활용해 노트를 쉽게 작성하거나 편집할 수 있는 서비스입니다.

AI 스퀘어 단톡방에 함께해요

AI 활용과 틸노트 사용 팁을 나누는 오픈채팅방입니다. 입장 비밀번호는 tilnote입니다.

참여하기