본문 바로가기
AI 생성 글 정리/modeling

Training Language Models to Self-Correct via Reinforcement Learning 논문 정리

by Honbul 2026. 4. 21.

한 줄 요약

이 논문은 대규모 언어 모델이 외부 피드백 없이 자기 답을 다시 보고 고치는 능력을 어떻게 학습할 수 있는지 다룬다.

핵심 방법은 SCoRe다.

SCoRe는 단일 모델을 사용한다.
교사 모델도, 별도 수정 모델도 쓰지 않는다.
모델이 직접 만든 답변 흐름을 바탕으로 강화학습을 수행한다.

가장 중요한 결론은 단순하다.

자기수정은 “다시 생각해 봐”라는 프롬프트만으로 잘 생기지 않는다.
모델이 실제로 자기 실수 분포 위에서 고치는 행동을 학습해야 한다.

왜 자기수정이 중요한가

수학 문제나 코드 생성에서는 첫 답이 틀려도, 모델 안에 정답을 찾을 단서가 남아 있는 경우가 많다.

문제는 그 단서를 스스로 꺼내 쓰지 못한다는 점이다.

기존 모델은 다음과 같은 실패를 자주 보인다.

  • 틀린 답을 그대로 반복한다.
  • 맞는 답을 불필요하게 바꿔 틀리게 만든다.
  • 표면적인 문장만 고치고 핵심 오류는 놓친다.
  • “수정”을 요청받아도 실제 추론 전략은 바뀌지 않는다.

SCoRe는 이 문제를 정면으로 다룬다.

아래 결과가 논문의 출발점이다. 기본 모델은 자기수정 후 성능이 오히려 크게 떨어진다. 반면 SCoRe는 두 번째 시도에서 성능이 오른다. 또한 같은 추론 예산을 쓸 때, 무작정 병렬 답변을 많이 뽑는 것보다 각 답변을 한 번씩 고치게 하는 방식이 더 효율적이다.

 

 

Crop 포인트: 왼쪽에서는 SCoRe만 두 번째 시도 성능이 뚜렷하게 오르고, 오른쪽에서는 순차적 자기수정 곡선이 병렬 샘플링보다 위로 벌어진다.

문제 설정

논문이 다루는 설정은 intrinsic self-correction이다.

이는 모델이 다음 조건에서 자기 답을 고쳐야 한다는 뜻이다.

  • 테스트 시점에 정답 여부를 알려주지 않는다.
  • 외부 도구나 채점 결과를 제공하지 않는다.
  • 같은 모델이 첫 답과 수정 답을 모두 만든다.
  • 훈련 중에는 정답 확인기를 사용해 보상을 계산한다.

일반적인 훈련은 모델이 한 번에 좋은 답을 내도록 압박한다.

SCoRe는 다르다.
처음부터 “마지막 시도에서 더 좋은 답을 만들 수 있는 모델”을 목표로 둔다.

 

 

Crop 포인트: 오른쪽 흐름에서 첫 답이 다시 입력으로 들어가고, 모델이 그 답을 바탕으로 개선된 응답을 만드는 경로가 핵심이다.

기존 방식은 왜 부족했나

논문은 먼저 지도학습 기반 접근을 분석한다.

대표적으로 두 가지 방식이 있다.

  • STaR 계열: 모델이 만든 수정 흔적 중 성공 사례만 골라 학습한다.
  • Pair-SFT 계열: 틀린 답과 맞는 답을 짝지어 “수정 예시”처럼 학습한다.

겉보기에는 합리적이다.
하지만 자기수정 능력은 크게 좋아지지 않았다.

이유는 두 가지다.

실패 원인 1: 행동 붕괴

모델이 “고치는 방법”을 배우지 않는다.

대신 다음처럼 쉬운 행동으로 무너진다.

  • 첫 답을 거의 그대로 복사한다.
  • 아주 작은 표현만 바꾼다.
  • 애초에 수정하지 않는 쪽으로 치우친다.

논문은 첫 번째 답과 두 번째 답이 얼마나 달라졌는지를 비교했다.

그 결과 STaR와 SFT 기반 모델은 수정 폭이 매우 작아지는 경향을 보였다. 이는 모델이 실제 오류를 찾기보다 “바꾸지 않는 전략”을 학습했다는 신호다.

 

 

Crop 포인트: STaR와 SFT 쪽 분포가 낮은 수정 폭에 몰리는 구간을 보면, 모델이 적극적으로 오류를 고치기보다 답을 보존하려는 경향이 드러난다.

실패 원인 2: 분포 불일치

오프라인 데이터로 학습한 수정기는 과거 모델의 실수를 본다.

하지만 학습이 진행된 모델은 다른 방식으로 실수한다.

즉, 훈련 때 본 실수와 실제 자기 실수가 달라진다.

이 차이가 커지면 모델은 자신이 지금 만드는 오류를 제대로 고치지 못한다.

논문은 고정된 첫 답에 대한 수정 성능과, 학습 중인 모델이 직접 만든 첫 답에 대한 수정 성능을 비교했다.

고정된 답에서는 개선이 보인다.
하지만 모델 자신의 답에서는 성능이 떨어진다.

 

 

Crop 포인트: 자기 생성 검증 곡선이 내려가는 흐름은 오프라인 수정 데이터가 실제 자기 실수 분포를 따라가지 못한다는 점을 보여준다.

단순한 강화학습도 충분하지 않다

그렇다면 모델이 직접 만든 답으로 강화학습을 하면 해결될까?

논문은 그것만으로도 부족하다고 말한다.

단순한 multi-turn 강화학습은 두 시도의 성능을 함께 올릴 수 있다.
하지만 모델이 실제로 “두 번째 시도에서 고치는 전략”을 배우는 것은 아니다.

모델은 더 쉬운 해법을 택한다.

첫 번째 답을 최대한 잘 만들고, 두 번째 답은 거의 바꾸지 않는다.

 

이 전략은 훈련 보상 관점에서는 좋아 보인다.
그러나 자기수정 능력은 약하다.

 

 

Crop 포인트: 오른쪽 그래프에서 기본 multi-turn RL의 ‘다른 답을 제안하는 빈도’가 빠르게 낮아지는 흐름이 행동 붕괴를 보여준다.

SCoRe의 핵심 아이디어

SCoRe는 두 단계로 훈련한다.

목표는 분명하다.

  • 모델이 자기 실수 분포 위에서 학습하게 한다.
  • 첫 답과 두 번째 답이 지나치게 묶이지 않게 한다.
  • “바꾸지 않는 전략”보다 “실제로 고치는 전략”이 더 유리하게 만든다.

Stage I: 두 시도를 분리하는 초기화

첫 단계에서는 모델이 두 번째 시도에서 좋은 답을 만들도록 훈련한다.

동시에 첫 번째 시도는 원래 모델의 답변 분포와 크게 달라지지 않도록 묶어 둔다.

 

이 설계가 중요하다.

첫 답까지 바로 최적화하면 모델은 첫 답에 모든 것을 몰아넣는다.
그러면 두 번째 시도는 의미 없는 반복이 되기 쉽다.

Stage I은 두 번째 시도가 독립적으로 개선될 여지를 만든다.

Stage II: 진짜 수정에 보너스를 주는 강화학습

두 번째 단계에서는 첫 번째 답과 두 번째 답을 함께 훈련한다.

여기서 핵심은 보상 설계다.

모델이 다음 행동을 하면 강하게 보상한다.

  • 첫 번째 답은 틀렸지만 두 번째 답은 맞게 고친 경우

반대로 다음 행동은 강하게 억제한다.

  • 첫 번째 답은 맞았지만 두 번째 답에서 틀리게 바꾼 경우

이 방식은 단순히 정답을 맞히는 것보다 수정으로 인한 진전을 더 중요하게 만든다.

 

 

Crop 포인트: Stage I은 첫 답을 원래 모델에 가깝게 묶고 두 번째 답을 개선하며, Stage II는 두 시도를 함께 최적화하되 수정 진전에 추가 보상을 준다.

실험 결과: 수학 문제

논문은 MATH 벤치마크에서 Gemini 1.5 Flash를 사용했다.

핵심 결과는 다음과 같다.

방법 1차 정확도 2차 정확도 정확도 변화 틀림→맞음 맞음→틀림
기본 모델 52.6% 41.4% -11.2%p 4.6% 15.8%
Self-Refine 52.8% 51.8% -1.0%p 3.2% 4.2%
STaR 53.6% 54.0% +0.4%p 2.6% 2.2%
Pair-SFT 52.4% 54.2% +1.8%p 5.4% 3.6%
SCoRe 60.0% 64.4% +4.4%p 5.8% 1.4%

 

SCoRe의 특징은 두 가지다.

첫째, 첫 번째 답부터 더 강하다.
둘째, 두 번째 답에서 더 좋아진다.

특히 맞는 답을 틀리게 바꾸는 비율이 크게 낮다.
이는 모델이 “언제 고쳐야 하는지”를 더 잘 배운다는 뜻이다.

실험 결과: 코드 생성

코드 생성에서는 MBPP로 훈련하고 HumanEval로 평가했다.

방법 MBPP-R 1차 정확도 2차 정확도 정확도 변화 틀림→맞음 맞음→틀림
기본 모델 47.3% 53.7% 56.7% +3.0%p 7.9% 4.9%
Self-Refine 30.7% 53.7% 52.5% -1.2%p 9.8% 11.0%
Pair-SFT 59.8% 56.1% 54.3% -1.8%p 4.3% 6.1%
SCoRe 60.6% 52.4% 64.6% +12.2%p 15.2% 3.0%

 

흥미로운 점은 Pair-SFT다.

고정된 코드 수리 과제에서는 잘한다.
하지만 자기수정 설정에서는 오히려 성능이 떨어진다.

이는 논문의 핵심 주장과 맞닿아 있다.

오프라인 수리 능력과 실제 자기수정 능력은 다르다.

추론 예산을 쓰는 방식도 달라진다

보통 성능을 올리려면 답을 여러 개 병렬로 뽑고 다수결을 한다.

SCoRe에서는 다른 선택지가 생긴다.

적은 수의 답을 뽑고, 각 답을 한 번씩 자기수정하게 만드는 것이다.

논문은 이 순차적 방식이 같은 샘플 예산에서 더 나은 성능을 낸다고 보고한다.

이는 자기수정이 단순한 후처리가 아니라, 추론 컴퓨트를 쓰는 실질적 방법이 될 수 있음을 보여준다.

여러 번 고치면 어떻게 되나

SCoRe는 기본적으로 두 번의 시도를 기준으로 훈련됐다.

부록에서는 더 많은 수정 시도를 시켜 본다.

기본 모델은 여러 번 고쳐도 흔들리고, Pair-SFT는 크게 나아지지 않는다.
SCoRe는 두 번째 시도 이후에도 높은 성능을 유지하지만, 계속 상승하지는 않는다.

 

 

Crop 포인트: SCoRe 곡선은 여러 시도 동안 높은 정확도를 유지하지만 완만히 포화되며, 이는 더 긴 자기수정 훈련이 후속 과제임을 시사한다.

이 논문의 의미

SCoRe의 기여는 “자기수정 프롬프트”가 아니다.

핵심은 자기수정을 하나의 학습된 전략으로 다룬 점이다.

논문이 주는 메시지는 세 가지다.

  • 자기수정은 단순 지도학습으로 잘 생기지 않는다.
  • 모델 자신의 현재 실수 분포에서 학습해야 한다.
  • 보상 설계가 없으면 모델은 고치는 대신 안 바꾸는 전략으로 무너진다.

이 관점은 수학과 코드에만 국한되지 않는다.

향후 도구 사용, 에이전트 계획, 장기 추론에서도 비슷한 문제가 나타날 수 있다.
모델이 “한 번 답하기”가 아니라 “자기 출력을 점검하고 개선하기”를 배워야 하기 때문이다.

한계

논문도 몇 가지 한계를 명확히 둔다.

  • 두 번의 시도만 훈련했다.
  • 훈련 중에는 정답 확인기나 테스트 통과 여부 같은 보상이 필요하다.
  • 주요 실험은 수학과 코드처럼 자동 채점이 가능한 영역에 집중됐다.
  • 개방형 질문이나 사실 검증 문제에서는 신뢰할 수 있는 보상 설계가 더 어렵다.

따라서 SCoRe는 모든 자기수정 문제의 완전한 해답이라기보다, 검증 가능한 과제에서 자기수정을 학습시키는 강한 출발점에 가깝다.

핵심 정리

SCoRe는 모델에게 이렇게 가르친다.

  • 첫 답을 만든다.
  • 그 답을 다시 본다.
  • 틀린 경우에는 실제로 고친다.
  • 맞는 경우에는 불필요하게 망치지 않는다.

이 네 가지가 동시에 가능해야 진짜 자기수정이다.

논문의 가장 중요한 통찰은 다음 문장으로 요약할 수 있다.

자기수정은 프롬프트가 아니라 훈련 분포와 보상 구조의 문제다.

Source

  • Paper: Training Language Models to Self-Correct via Reinforcement Learning
  • Authors: Aviral Kumar, Vincent Zhuang, Rishabh Agarwal, Yi Su, JD Co-Reyes, Avi Singh, Kate Baumli, Shariq Iqbal, Colton Bishop, Rebecca Roelofs, Lei M Zhang, Kay McKinney, Disha Shrivastava, Cosmin Paduraru, George Tucker, Doina Precup, Feryal Behbahani, Aleksandra Faust
  • Organization: Google DeepMind
  • Version: arXiv:2409.12917v2
  • Date: 2024-10-07
  • Link: https://arxiv.org/abs/2409.12917