Introduction
2020년 이전에도 GAN으로 데이터를 생성해서 training set에 추가하면 성능이 좋아진다는 연구가 있었다. 지금은 LLM이 만든 문제와 답변으로 다른 LLM을 학습하고, 모델이 생성한 풀이를 다시 자신의 학습에 사용하는 연구도 나온다.
이 흐름을 보다 보니 한 가지가 궁금해졌다.
모델이 만든 데이터로 모델을 학습하고, 그 모델이 만든 데이터로 또 학습해도 괜찮은 걸까?
원본을 계속 복사하면 조금씩 정보가 사라질 것 같은데, 어떤 연구에서는 오히려 성능이 좋아진다. GenAI가 충분히 좋아져서 이제 이런 반복이 가능해진 것일까?
관련 논문을 읽어보니, 먼저 구분해야 할 것이 있었다.
생성 데이터가 도움이 된다는 것과, 생성 데이터를 무조건 반복 학습해도 괜찮다는 것은 다른 이야기다.
요즘 모델이라고 해서 이 문제가 사라진 것은 아니다. 중요한 것은 데이터가 AI에서 나왔다는 사실보다, 무엇을 생성하고 무엇을 남겨서 다시 학습하는가였다.
사전 지식: Augmentation과 Recursive Training
GAN 기반 augmentation의 한 예로 DAGAN이 있다. 기존 sample을 조건으로 같은 class에 속하는 변형을 생성하고, 이를 classifier 학습에 활용한다. 논문은 데이터가 적은 환경에서 분류와 few-shot learning 성능 향상을 보고한다. 물론 모든 생성 데이터가 모든 task에 도움이 된다는 결과는 아니다. (DAGAN 논문)
이때의 목적은 생성 모델을 끝없이 복제하는 것이 아니라, 기존 데이터를 더 다양하게 보여주어 downstream model의 일반화를 돕는 것이다. 예를 들어 class는 유지하면서 배경이나 외형의 변화를 추가하면, classifier가 학습 sample의 우연한 특징에만 의존하는 것을 줄일 수 있다.
반면 recursive training은 다음과 같은 상황까지 포함한다.
Augmentation:
실제 데이터 + 생성한 변형 --> Classifier 학습
생성 데이터로 대체하는 재귀 학습:
실제 데이터 --> Model 0 --> 생성 데이터 0
|
Model 1 --> 생성 데이터 1 --> Model 2 --> ...
두 번째 구조에서 매 세대 이전 데이터를 버리고 새 생성 데이터만 사용한다면, 모델은 점점 원본보다 이전 모델의 근사를 배우게 된다. 한 번의 augmentation에서 성능이 좋아졌다고 해서, 이 재귀 과정도 안전하다는 뜻은 아니다.
Model Collapse: 드문 정보가 사라지는 과정
모델은 학습 데이터의 분포를 완벽하게 복사하지 못한다. 여기에 유한한 개수의 sample만 생성하는 과정까지 더해지면, 원래 드물었던 패턴은 다음 세대의 데이터에서 빠질 수 있다.
직관을 위한 예를 들어보자. 어떤 패턴의 생성 확률이 0.1%이고 독립적으로 1,000개를 생성한다면, 그 패턴이 한 번도 나오지 않을 확률은 약 37%다(한 번 생성할 때 나오지 않을 확률이 1 − 0.001 = 0.999이므로, 1,000번 모두 나오지 않을 확률은 0.999¹⁰⁰⁰ ≈ 0.368이다). 이는 특정 모델의 측정 결과가 아니라, 드문 사건이 유한한 sample에서 누락될 수 있음을 보여주는 계산이다.
원본 데이터도 버렸다면 다음 모델에는 그 패턴을 배울 근거가 더 적어진다. 이런 누락과 근사 오차가 반복되면서 원래 분포의 tail, 즉 드물지만 실제로 존재하는 사례를 잃을 수 있다. 이와 같은 세대 간 학습의 퇴화를 model collapse라고 한다. (Shumailov 등의 논문, Nature 게재본)
GAN에서 말하던 mode collapse와도 구분해야 한다. Mode collapse가 한 모델이 제한된 종류의 sample만 생성하는 문제라면, 여기서 다루는 model collapse는 생성 데이터를 다시 학습하는 세대 간 과정에서의 퇴화다. 둘 다 다양성 감소와 관련되지만 같은 현상을 가리키는 용어는 아니다.
따라서 ‘요즘 모델은 recursive training을 해도 잘 동작한다’는 전제부터 조금 수정해야 한다. 어떤 방식으로 반복하느냐에 따라 좋아질 수도, 나빠질 수도 있다.
차이 1: 원본을 대체하지 않고 보존하는 학습
이전 데이터를 버리는 것과, 원본 및 이전 데이터를 유지하면서 생성 데이터를 추가하는 것은 다르다.
Replacement: 다음 세대는 새 생성 데이터로 이전 데이터를 대체
Accumulation: 원본과 이전 데이터를 유지하고 새 생성 데이터를 누적
“Is Model Collapse Inevitable?”은 이 차이를 분석한다. 논문은 여러 생성 모델 실험과 선형 회귀의 이론적 설정에서, 데이터를 대체할 때와 달리 누적할 때 collapse를 피할 수 있는 결과를 제시한다. (논문)
다만 이를 ‘실제 데이터를 조금만 섞으면 어떤 모델이든 안전하다’로 이해하면 안 된다. 데이터 누적은 저장량과 학습 비용을 늘릴 수 있고, 고정된 training budget에서는 어떤 sample을 얼마나 자주 보여주는지도 달라진다. 원본 파일을 보관하는 것만으로 충분한 것도 아니다. 실제 학습에서 그 정보가 계속 반영되어야 한다.
차이 2: 자기 복제가 아닌 Teacher의 지식 전달
Synthetic data 학습에는 다른 모델이 만든 데이터를 사용하는 경우도 있다. Teacher가 가진 능력을 student가 학습하기 좋은 형태의 예제로 전달하는 것이다.
대표적으로 Textbooks Are All You Need의 phi-1은 선별된 web 데이터와 GPT-3.5가 생성한 교재·연습문제를 사용한다. 이것은 동일한 모델의 출력을 아무 조건 없이 다시 먹이는 과정과 다르다. (phi-1 논문)
Student 입장에서는 teacher가 정리한 개념과 풀이가 유용한 supervision이 될 수 있다. 이는 넓은 의미에서 knowledge distillation과 연결되지만, teacher의 logit을 직접 맞추는 전통적인 방식과는 학습 형태가 다르다.
여기서 정보의 출처는 사라진 것이 아니다. Teacher가 이전 학습에서 얻은 지식과 사람이 설계한 데이터 생성 조건이 student에게 전달되는 것이다. 따라서 student의 성능 향상이 모델 전체 계보에서 새로운 사실이 저절로 만들어졌다는 뜻은 아니다.
차이 3: 생성 결과를 검증하고 선별하는 Self-Training
같은 모델의 출력으로도 개선이 가능하다는 점은 조금 더 흥미롭다. 핵심은 출력을 그대로 복사하는 대신, 성공한 출력을 골라 학습하는 것이다.
ReST-EM은 모델이 sample을 생성하고, 정답 여부와 같은 binary feedback으로 선별한 뒤 fine-tuning하는 과정을 반복한다. 논문은 수학 문제와 코드 생성 benchmark에서 이 접근을 평가한다. (Beyond Human Data 논문)
문제 --> 모델이 여러 후보 생성 --> 정답 확인 / 테스트
|
통과한 후보로 학습
|
다음 모델
예를 들어 어떤 문제에서 모델이 100번 중 20번은 올바른 풀이를 만든다고 가정해보자. 그 20개를 식별할 수 있다면, 이를 학습해 비슷한 상황에서 성공하는 출력을 더 자주 내도록 만들 수 있다. 이 숫자는 원리를 설명하기 위한 가정이며, 논문의 실험 수치가 아니다.
내가 이해한 직관은 여러 번 시도해서 가끔 얻던 성공을, 다음에는 더 적은 시도로 얻도록 학습한다는 것이다. 이때 모델 바깥의 정답, 테스트, 환경 feedback이 무엇을 남길지 결정한다. 새로운 사실을 무에서 만들어낸다기보다, 기존 능력에서 발견한 좋은 해법을 검증 신호로 강화하는 과정에 가깝다.
단, 검증도 완벽하지는 않다. 일부 unit test를 통과한 코드가 모든 입력에서 맞는 것은 아니고, 최종 답이 맞다고 풀이 전체가 올바른 것도 아니다. 같은 모델에게 ‘내 답이 맞니?’라고 묻는 것만으로 독립적인 검증이 생기지도 않는다.
남는 위험: 좋은 답만 고르면 다양성도 줄어듦
선별은 잘못된 출력을 줄일 수 있지만, 쉬운 문제나 익숙한 표현만 남길 수도 있다. 현재 모델이 잘 푸는 문제만 반복해서 학습하면 어려운 영역은 계속 빠질 수 있다. 특정 task의 정확도를 높이는 것과 원래 데이터 분포의 다양한 경우를 보존하는 것은 서로 다른 목표다.
Vision에서도 생성 이미지가 그럴듯하다는 사실만으로 학습 label까지 정확하다고 볼 수는 없다. Object의 모양을 바꾸었는데 segmentation mask는 그대로이거나, 생성 과정에서 작은 구조가 사라졌다면 오히려 잘못된 supervision이 된다. 따라서 단순한 생성 품질뿐 아니라 task에 맞는 label 일관성도 확인해야 한다.
결국 synthetic data의 효과는 실제 배포 분포를 반영하는 별도 평가 데이터에서 확인해야 한다. 생성에 사용한 문제를 다시 평가하거나, teacher가 benchmark 정답을 노출한 상태라면 성능 향상을 잘못 해석할 수 있다.
정리: 달라진 것은 반복 자체보다 학습 과정
| 방식 | 기대할 수 있는 이점 | 주의할 점 |
|---|---|---|
| GAN 등의 augmentation | 제한된 실제 sample에 유효한 변형 추가 | 생성 artifact와 label 오류 |
| Teacher가 만든 학습 데이터 | 지식 전달과 학습하기 좋은 예제 구성 | Teacher의 오류와 편향도 전달 |
| 검증 기반 self-training | 성공한 해법을 더 자주 생성하도록 학습 | 검증의 한계와 쉬운 사례 쏠림 |
| 원본을 대체하는 무분별한 재귀 학습 | 생성 데이터 확보 자체는 쉬움 | 분포의 tail 소실과 model collapse |
GAN 시대와 지금을 ‘그때는 augmentation, 지금은 무한한 자기 개선’으로 나누면 중요한 조건을 놓치게 된다. 좋은 생성 모델은 유용한 학습 sample을 얻을 가능성을 높여주지만, 그것만으로 반복 학습이 안전해지는 것은 아니다.
이제는 ‘AI가 만든 데이터로 학습해도 되는가’보다 다음을 먼저 물어야겠다는 생각이 든다.
원본 정보는 어디에 남아 있고, 생성된 데이터의 오류는 누가 확인하며, 반복할수록 어떤 사례가 빠지고 있는가?
성공적인 synthetic data 학습과 단순한 자기 복제의 차이는 여기에 있다.