정답을 알려주는 대신 결과에 점수(보상)만 주고, 그 점수가 커지도록 행동을 스스로 고치게 하는 학습 방법이다. 정답 데이터는 만들기 어려워도 결과가 좋은지 나쁜지는 가릴 수 있을 때 쓰며, LLM에서는 사람 선호 맞추기(RLHF)와 자동 채점이 되는 추론 모델 학습에 쓴다.
| 구분 | 지도학습 | 강화학습 |
|---|---|---|
| 배우는 재료 | 입력과 정답 쌍 | 행동과 그 결과로 받은 보상 |
| 배우는 방식 | 정답을 따라 한다 | 시행착오로 점수를 올린다 |
| 잘 맞는 일 | 정답이 분명한 분류·번역 | 정답은 여러 개지만 채점은 되는 일 |
LLM에 적용하면 모델이 만든 답변이 행동이고, 그 답변에 매긴 점수가 보상이다. 규칙을 코딩하거나 모범 답안을 일일이 쓰지 않아도 채점 기준만 있으면 모델을 원하는 쪽으로 끌고 갈 수 있다. 보상을 어디서 얻느냐에 따라 크게 두 갈래로 나뉜다.
| 방식 | 보상은 어디서 | 주로 쓰는 곳 |
|---|---|---|
| RLHF | 사람이 두 답변 중 나은 쪽을 고른 데이터로 만든 보상 모델 | 말투·도움이 되는 정도·안전성 맞추기 |
| 검증 가능한 보상 | 수학 정오답, 코드 테스트 통과, 형식 준수 같은 자동 채점 | 추론 모델 학습 |
DeepSeek-R1은 수학 문제의 정오답을 보상으로 삼아 사고 과정 자체를 강화했다. 정답에만 점수를 줬는데도 모델이 풀이를 되짚어 보는 행동을 보였다는 보고가 나오면서 이 방식이 널리 퍼졌다.
보통 강화학습만으로 처음부터 학습하지는 않는다. 먼저 예시 데이터로 지도 미세조정(SFT)을 해서 기본 답변 형식을 잡고, 그다음 강화학습으로 점수를 끌어올린다. Hugging Face TRL 라이브러리의 GRPOTrainer나 PPOTrainer를 쓰면 보상 함수만 정의해서 학습을 돌릴 수 있다.
| 방법 | 특징 | 이럴 때 |
|---|---|---|
| PPO | 답변의 가치를 따로 평가하는 모델이 필요하다 | 고전적인 RLHF |
| GRPO | 같은 질문에 답을 여러 개 뽑아 서로 비교한다. 평가 모델이 필요 없다 | 자동 채점이 되는 추론·코딩 학습 |
| DPO (비교용) | 보상 모델 없이 선호 데이터로 바로 학습한다 | 선호 데이터만 있고 RL 학습 환경이 부담될 때 |
DPO는 엄밀히 말해 강화학습은 아니지만 RLHF와 목적이 같아 함께 비교된다.
가장 흔한 실패는 보상 해킹이다. 모델은 점수만 보고 움직이므로, 길게 쓸수록 점수가 오르면 쓸데없이 길어지고 테스트만 통과하면 되면 테스트를 속이는 코드를 짠다. 보상 함수를 만들 때는 편법으로 점수를 딸 구멍이 없는지부터 따져 봐야 한다.
학습하면서 원래 모델에서 너무 멀어지지 않도록 차이만큼 벌점(KL 페널티)을 주는 것도 일반적이다. 채점 기준을 세울 수 없는 일이나 SFT만으로 충분한 일이라면 강화학습을 굳이 쓰지 않는 편이 낫다.
실제로는 SFT로 기본기를 잡은 모델에 자동 채점이나 선호 데이터를 보상으로 붙여 마무리 학습을 하는 방식이 가장 흔하다. 보상을 무엇으로 정하느냐가 곧 쓰임새를 가른다.
| 어디서 | 어떻게 쓰나 |
|---|---|
| 대화형 어시스턴트 | 사람이 고른 더 나은 답변으로 보상 모델을 만들어 말투·도움 정도·안전성을 맞춘다 |
| 수학·코딩 추론 모델 | 정오답이나 테스트 통과 여부를 보상으로 GRPO 학습을 돌려 풀이 능력을 끌어올린다 |
| 정해진 형식의 출력 | JSON 형식 준수처럼 규칙으로 채점되는 보상을 줘서 작은 모델이 형식을 지키게 한다 |
| 게임·로봇 제어 | 이기거나 목표에 닿으면 점수를 주고 시뮬레이션에서 시행착오를 반복시킨다 |