AI 네이티브 시리즈 · 강화학습
확률의 대장간
1분 요약 — 이 글에서 얻어갈 것
정책 그레이디언트는 모델에 사실을 가르치는 것이 아니다 — 그것은 확률 질량을 이동시킨다. 잘 됐던 것을 밀어 올리면, 나머지는 모두 조금씩 내려간다. 이 한 문장이 알고리즘 계열 전체를 이해 가능하게 만드는데, 그것이 모두가 다투는 단 하나의 지점을 드러내기 때문이다: 우리는 얼마나 놀랐어야 했는가? 운 좋은 궤적에 보상을 주면 운을 더 자주 일어나게 만드는 셈이다. 먼저 기댓값을 빼고 나면, 예상을 뛰어넘은 부분에만 보상을 주게 된다. REINFORCE는 아무것도 빼지 않는다. RLOO는 형제 샘플들의 평균을 뺀다. 액터-크리틱(actor-critic)은 두 번째 모델로 기댓값을 학습한다. GRPO는 그 두 번째 모델을 해고하고 그룹을 사용한다. 기준선을 제거해도 추정량이 틀려지지는 않는다 — 여전히 불편향(unbiased)을 유지한다. 다만 비용이 커질 뿐이다. 분산 문제는 오류를 일으키지 않으며, 바로 이 때문에 이 분야가 이 문제를 해결하는 데 하루 오후가 아니라 몇 년이 걸린 것이다.
기술적인 디테일처럼 들리지만 사실은 이 글 전체의 주제인 것이 하나 있다.
정책 그레이디언트 업데이트는 모델에 어떤 사실을 심어 넣는 것이 아니다. 그것은 확률 질량을 재분배한다. 롤아웃이 잘 풀리면 그것을 만들어낸 토큰들의 확률을 높이게 되는데 — 분포의 총합은 여전히 1이어야 하므로 — 나머지 모든 것의 확률은 조금씩 떨어진다.
이 틀은 곧바로 이 분야의 가장 오래된 문제를 드러낸다. 어떤 모델이 열 번 중 한 번꼴로 문제를 맞게 풀고, 그 성공 사례로 학습을 시킨다고 해보자. 그렇다고 해서 반드시 그 방법을 가르친 것은 아니다. 어쩌면 그저 그 특정한 운 좋은 경로만 더 그럴듯하게 만들었을 수도 있다.
하나의 아이디어: 예상했어야 할 값을 빼라
이번 에피소드의 모든 내용은 하나의 수리(修理)를 다섯 가지 방식으로 적용한 것이다.
이 결과가 우리가 예상했어야 할 것보다 더 나았는가?
원래의 리턴에 그대로 보상을 주면 운에 보상을 주는 셈이다. 리턴과 그 기댓값의 차이에 보상을 주면 예상을 뛰어넘은 부분에만 보상을 주게 된다. 이 차이에는 이름이 있다 — 바로 어드밴티지이며, 아래의 각 알고리즘은 그 기댓값이 어디서 오는가에 대한 저마다 다른 답이다.
REINFORCE[1]은 아무것도 빼지 않는다. 편향은 없고 정직하지만, 그만큼 흔들린다. RLOO[2]는 같은 프롬프트에 대해 여러 개의 완성을 샘플링하고, 나머지들의 평균을 기댓값으로 사용한다 — 즉 형제 샘플들이 기준선이 되는 셈이다. 액터-크리틱(actor-critic)은 두 번째 네트워크를 고용해 기댓값을 예측하게 한다. GRPO [3]는 이 두 번째 네트워크를 해고하고 그룹으로 돌아가는데, 메모리 면에서 더 저렴한 대신 4화에서 보게 되듯 새로운 종류의 실패를 사들이는 셈이다.
다섯 개의 이름, 하나의 항.
한 겹 더 들어가면: 문제는 편향이 아니라 분산이다
이것은 내가 오랫동안 잘못 알고 있던 부분이라, 정확히 짚고 넘어갈 가치가 있다.
기준선을 제거한다고 해서 정책 그레이디언트 추정량이 틀리게 되는 것은 아니다. 행동에 의존하지 않는 어떤 양을 빼도 추정량은 여전히 불편향이다 — 기대 업데이트는 동일하다. 달라지는 것은 분산이다, 그 업데이트의 분산이다.
게다가 분산 문제는 스스로 신호를 보내지 않는다. 에러도, NaN도, 실패한 assertion도 없다. 대신 매끄럽지 않고 들쭉날쭉한 학습 곡선, 서로 어긋나는 두 개의 랜덤 시드, 같은 지점에 도달하는 데 네 배의 샘플이 필요한 실행 결과를 얻게 된다. 이 모든 것은 그저 운이 나빴거나 하이퍼파라미터가 잘못됐다는 식으로 읽히는데, 바로 이것이 이 수정이 하루가 아니라 몇 년이 걸린 이유다.
계속 읽기 전에 먼저 예측해보기
쉬운 과제에 대해 정책 그레이디언트를 두 번 돌려본다 — 한 번은 평균 기준선을 써서, 한 번은 없이. 시드도 같고 나머지 조건도 모두 같다. 기준선 없는 쪽은 어떻게 될까?
(a) 학습에 실패한다. (b) 더 낮은 최종 점수로 학습된다. (c) 같은 지점까지 학습되지만, 더 느리고 더 불규칙하다.
정답은 (c)이며, 이는 불편한 답이다. 왜냐하면 불편향이지만 잡음이 많은 방법은 작동하는 방법처럼 보이기 때문인데, 무차별 대입으로 뚫을 수 있을 만큼 작은 문제에서는 특히 그렇다. 이번 화의 실습은 그것을 눈에 보이게 만든다: 최종 수치가 아니라 분산 밴드를 보라.
속도 제한기: PPO가 존재하는 이유
어드밴티지를 추정할 수 있게 되면 두 번째 문제가 나타난다. 행동을 샘플링한 것은 이전(old) 정책으로부터인데, 그 데이터로 여러 번 업데이트를 하려는 것이다. 하지만 첫 번째 업데이트 이후로는, 데이터를 생성한 정책은 더 이상 지금 개선하고 있는 정책이 아니다.
중요도 샘플링 비율(importance-sampling ratio)은 이 둘이 얼마나 멀어졌는지를 측정한다. PPO가 보탠 것은 속도 제한기다: 그 비율을 클리핑해서, 하나의 배치가 신뢰 영역이 허용하는 것보다 정책을 더 멀리 밀어붙일 수 없게 만든다. 그게 전부다. 클리핑된 대리 목적함수(clipped surrogate objective)는, 그렇지 않으면 자신의 낡은 데이터 위에서 스스로 과회전할 기계에 볼트로 고정된 조속기인 셈이다.
약어에 무슨 일이 벌어졌는지 눈여겨보자. REINFORCE, RLOO, GRPO는 기댓값을 둘러싼 논쟁이다. PPO는 업데이트 한 번이 얼마나 멀리 갈 수 있는가를 둘러싼 논쟁이다. 기계에 비유하자면 이들은 서로 경쟁하는 부품이 아니라 저마다 다른 자리에 박힌 볼트일 뿐이다.
솔직히 말해, 이것이 치르는 대가
"하나의 뺄셈"이라는 틀은 압축이며, 실제로 중요한 것들을 놓친다.
GAE는 여기에 들어 있지 않다. 일반화된 어드밴티지 추정량(GAE)은 시간 단계에 걸친 편향-분산 다이얼인데, 이를 "기댓값"으로 환원해 버리면 그것이 드러내려는 트레이드오프 자체가 가려진다.
서로 다른 두 개의 KL이 뒤섞인다. 이전 정책과 참조 정책은 서로 다른 역할을 하는 별개의 대상이다 — 하나는 업데이트의 한계를 정하고, 다른 하나는 처음 출발한 모델로부터의 이탈 정도를 제한한다. 이 둘을 똑같이 "KL"이라 부르다 보면 결국 엉뚱한 대상을 향해 정규화를 하게 된다.
불편(unbiased)하다는 것이 안전하다는 뜻은 아니다. 추정량은 불편할 수 있으면서도, 평가가 미처 포착하기도 전에 운 좋은 영역으로 확률을 집중시켜 버릴 수 있다.
직접 돌려보기, 약 15분
이 실습은 동일한 과제와 시드로 세 개의 팔(arm)을 돌린다: 기준선 없음, 평균 기준선, 그리고 — 확장한다면 — 학습된 기준선. 여기서는 리턴뿐 아니라 업데이트의 분산도 그래프로 그린다.
직접 확장해 볼 때 유의할 점이 하나 있는데, 이 실습을 훨씬 넘어서는 이야기다. 세 개의 시드로 팔들을 비교했는데 차이가 보이지 않는다면, 그것은 기준선에 대해 뭔가를 알게 된 것이 아니라 당신의 예산(budget)에 대해 알게 된 것이다. 분산에 관한 주장을 하려면 그 효과를 검출할 만큼 충분한 시드가 필요하다. 실행하기 전에 몇 개가 필요할지 먼저 적어 두자.
이 이야기의 다음 행선지
여기 나온 모든 알고리즘은 누군가가 선택한 어떤 숫자를 최적화할 뿐이다. 그 숫자가 애초에 좇을 만한 옳은 숫자였는지는 이들 중 무엇도 말해주지 않는다.
3화는 스코어보드 자체가 잘못되었을 때 무슨 일이 벌어지는지를 다룬다 — 그리고 어느 경제학자가 1975년, 그러니까 누군가 보상 모델을 훈련시키기 반세기도 더 전에 이미 이 실패 양상을 기술했다는 사실도 함께 다룬다.
2화, Intelligence Engineering Adventures, Season 1 — The Consequence Engine. 시리즈 원문에 담긴 주장들은 정의, 도출, 증거, 엔지니어링 선택, 미해결 질문 등 유형별로 태그가 붙어 있으며, 은유는 주장을 도입할 수는 있어도 그 주장의 증거로 쓰이는 일은 결코 없다. 각 화마다 CPU로 돌릴 수 있는 실습이 딸려 있다. 이 글에는 어떤 고용주나 클라이언트의 자료도 들어 있지 않다. — Paul Jialiang Wu · agentic-portfolio-lovat.vercel.app
참고문헌
- Williams, R. J. (1992). Simple statistical gradient-following algorithms for connectionist reinforcement learning. Machine Learning. REINFORCE를 처음 제시한 논문. link.springer.com/article/10.1007/BF00992696
- Ahmadian, A. et al. (2024). Back to Basics: Revisiting REINFORCE Style Optimization for Learning from Human Feedback in LLMs. LLM 피드백 학습을 위한 leave-one-out 기준선. arxiv.org/abs/2402.14740
- Shao, Z. et al. (2024). DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models. GRPO를 소개한다. arxiv.org/abs/2402.03300
- Schulman, J. et al. (2017). Proximal Policy Optimization Algorithms. 클립된 대리 목적함수(clipped surrogate objective). arxiv.org/abs/1707.06347
- Schulman, J. et al. (2015). High-Dimensional Continuous Control Using Generalized Advantage Estimation. GAE, 그리고 편향-분산 다이얼. arxiv.org/abs/1506.02438
- Sutton, R. & Barto, A. (2018). Reinforcement Learning: An Introduction, 2판. incompleteideas.net/book/the-book-2nd.html