AI Briefing

동적 데이터 유예

·2026.01.23 03:22

핵심 내용

GRPO에서 너무 쉬운 예제를 잠시 재우는 방식으로 계산 낭비를 줄여 최대 3배 효율을 얻는다.

1 / 2

자세히 보기

GRPO에서 모든 rollout의 보상이 같아 advantage가 0이 되는 예제는 학습 신호가 없다. 이런 예제를 그대로 처리하면 동적 샘플링이나 대체 전략을 써도 생성 비용만 늘어나고, 실제로는 학습에 쓰이지 않는 배치가 많아져 훈련이 크게 느려진다.

이를 줄이기 위해 먼저 offline difficulty stratification을 적용한다. 여러 baseline 모델의 completion 성공률을 바탕으로 데이터의 난이도를 나누고, 너무 어려운 예제는 뒤로 미루며 너무 쉬운 예제는 적절한 시점에 제거하거나 가중치를 조정해 커리큘럼을 만든다.

그다음에는 dynamic difficulty filtering을 사용한다. 보상이 0~1 범위라고 할 때, 그룹 내 모든 rollout의 보상이 1이면 그 예제를 너무 쉬운 것으로 판단해 필터링하고, 이후 다시 등장해도 계속 걸러서 rollout 생성 비용을 아낀다. 이 방식은 GSM8K에서 약 3X의 compute efficiency 향상을 보였고, 최종 테스트 점수는 모두 **84%**로 비슷하게 유지됐다.

하지만 멀티태스크 환경에서는 문제가 생긴다.

  • 어떤 데이터셋은 다른 데이터셋보다 더 빨리 필터링되어 task starvation이 발생할 수 있다.
  • 상충하는 목표를 가진 데이터, 예를 들어 safety, grounded question-answering, open-ended question-answering 같은 경우에는 한쪽 행동으로 mode collapse가 일어날 수 있다.
  • 실제 실험에서는 answerable / non-answerable 비율이 한쪽으로 쏠리면서, answerable subset 성능이 떨어지는 현상이 나타났다.

이 문제를 해결하기 위해 제안한 것이 dynamic data snoozing이다. 너무 쉬운 예제를 영구 제거하지 않고, 정해진 snoozing factor만큼만 잠시 제외한 뒤 다시 확인하는 방식이다. 이렇게 하면 효율성은 유지하면서도, 시간이 지나면 쉬웠던 예제를 다시 학습에 포함시켜 데이터 분포가 한쪽으로 무너지는 것을 막을 수 있다.

실험에서는 snoozing factor가 커질수록 일시적인 성능 하락은 더 커지지만, 이후 회복 가능했다. GSM8K에서는 aggressive한 dynamic filtering이 3X 효율 개선을 보였고, dynamic data snoozing은 여전히 2X의 compute gain을 제공했다.

실무적으로는 다음과 같이 적용할 수 있다.

  • 데이터셋이 비교적 독립적이면 더 큰 snoozing factor를 써서 계산량을 더 아낀다.
  • 데이터셋 간 상호작용이 크면 1~2 epochs처럼 낮게 잡아 안정성을 우선한다.
  • 확률적으로 각 epoch마다 1/N 확률로 snooze하는 방식도 가능하며, 이는 deterministic snoozing의 대안이 될 수 있다.
  • 더 나아가, 쉬운 예제뿐 아니라 모든 예제의 샘플링 가중치를 동적으로 조정하는 dynamic example weighting으로 확장할 수 있다.

핵심은 온라인 RL에서 가장 비싼 부분이 점점 생성 비용이 되면서, 데이터 효율이 학습 효율을 좌우한다는 점이다. dynamic data snoozing은 쉬운 예제를 무작정 버리지 않고 적절히 쉬게 만들어, 학습 안정성과 compute efficiency를 함께 잡는 단순한 해법이다.

이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.

AI 처리 방식을 확인하거나, 요약 오류와 출처 표기 문제, 삭제 요청을 문의 · 건의로 알려주세요.