AI가 스스로를 가르쳐 코딩 실력을 올린다 — 셀프 디스틸레이션이라는 놀랍도록 단순한 방법
AI 코딩 도구가 날이 갈수록 똑똑해지고 있습니다. 그런데 그 비결이 더 크고 비싼 모델을 만드는 게 아니라, 모델이 스스로를 가르치는 것이라면 어떨까요. 셀프 디스틸레이션(Self-Distillation)이라 불리는 이 기법이 코드 생성 분야에서 조용하지만 확실한 성과를 내고 있습니다.
셀프 디스틸레이션이 뭔가요
디스틸레이션(Distillation)은 원래 큰 모델(교사)의 지식을 작은 모델(학생)에게 전달하는 기법입니다. GPT-4 수준의 출력을 더 가볍고 빠른 모델이 흉내 내도록 훈련시키는 것이죠. 셀프 디스틸레이션은 여기서 한 발 더 나갑니다. 교사와 학생이 같은 모델입니다. 모델이 자기 자신의 출력물 중 잘된 것만 골라서 다시 자기 학습 데이터로 쓰는 겁니다.
비유하자면, 수학 문제집을 풀고 채점한 뒤 맞은 풀이만 모아서 자기만의 오답 노트를 만드는 것과 비슷합니다. 외부 과외 선생님 없이, 자기 실력으로 자기를 끌어올리는 셈이죠.
코드 생성에서 왜 특히 잘 먹히나
코드는 다른 자연어 텍스트와 결정적으로 다른 특성이 하나 있습니다. 정답을 자동으로 검증할 수 있다는 점입니다. 에세이의 좋고 나쁨은 주관적이지만, 코드는 테스트를 돌려보면 됩니다. 컴파일이 되는지, 테스트 케이스를 통과하는지, 실행 결과가 맞는지를 기계적으로 확인할 수 있죠.
이 특성 덕분에 셀프 디스틸레이션의 핵심 단계인 좋은 출력 고르기가 자동화됩니다. 모델에게 같은 코딩 문제를 여러 번 풀게 한 뒤, 테스트를 통과한 코드만 걸러내서 다시 학습 데이터로 쓰면 됩니다. 사람이 일일이 품질을 평가할 필요가 없습니다. 이래서 연구자들이 이 접근법을 embarrassingly simple, 민망할 정도로 단순하다고 부르는 겁니다.
실제로 얼마나 효과가 있나
이 분야 연구들이 보여주는 패턴은 일관됩니다. 셀프 디스틸레이션을 1~3라운드 반복하면 코드 생성 벤치마크에서 유의미한 성능 향상이 나타납니다. HumanEval이나 MBPP 같은 표준 벤치마크에서 5~15% 포인트 개선을 보고한 연구들이 다수 있습니다.
특히 흥미로운 점은 기존에 잘 못 풀던 유형의 문제에서 개선 폭이 크다는 것입니다. 모델이 10번 시도해서 1~2번 맞추던 문제가 있다면, 그 맞춘 풀이를 학습한 뒤에는 성공률이 눈에 띄게 올라갑니다. 모델이 이미 잠재적으로 알고 있었지만 안정적으로 꺼내지 못하던 능력을 끌어올리는 효과라고 볼 수 있습니다.
한계도 분명합니다
만능은 아닙니다. 가장 큰 한계는 모델이 한 번도 맞추지 못하는 문제는 개선할 수 없다는 점입니다. 자기 출력에서 배우는 것이니, 애초에 정답을 한 번도 생성하지 못하면 학습 데이터 자체가 없습니다. 즉, 모델의 현재 능력 범위 안에서의 최적화이지 능력 범위 자체를 넓히는 것은 아닙니다.
또한 라운드를 무한정 반복한다고 성능이 계속 오르지 않습니다. 보통 2~3라운드 이후로는 개선 폭이 급격히 줄어들거나 오히려 다양성이 떨어지는 현상이 관찰됩니다. 모델이 자기 스타일에 갇혀버리는 것이죠. 이걸 연구자들은 모드 붕괴(mode collapse)라고 부릅니다.
왜 지금 주목해야 하나
셀프 디스틸레이션이 중요한 이유는 기술 자체의 혁신성보다 경제성에 있습니다. 대형 언어 모델을 처음부터 학습시키려면 수천만 달러가 듭니다. 고품질 코드 데이터를 사람이 직접 만들거나 검수하는 것도 비용이 만만치 않습니다. 그런데 셀프 디스틸레이션은 이미 있는 모델과 이미 있는 테스트 케이스만으로 성능을 끌어올립니다. 추가 데이터 수집도, 사람의 개입도 최소화됩니다.
실제로 이 원리는 이미 산업 현장에 스며들고 있습니다. OpenAI, Google, Anthropic 등 주요 AI 기업들이 RLHF(사람 피드백 강화학습)와 함께 자체 출력 기반 학습을 병행하고 있다는 것은 공공연한 사실입니다. 오픈소스 진영에서도 WizardCoder, Magicoder 같은 프로젝트들이 비슷한 전략으로 소규모 모델의 코딩 능력을 끌어올려 주목받았습니다.
결국 셀프 디스틸레이션이 보여주는 것은 이런 교훈입니다. AI 발전이 항상 더 큰 모델, 더 많은 데이터, 더 비싼 인프라를 요구하는 것은 아니라는 점. 때로는 이미 가진 것을 더 잘 쓰는 방법이 놀라울 정도로 효과적일 수 있습니다. 다만, 자기 자신에게서만 배우는 모델이 결국 어디까지 갈 수 있을지, 그 천장은 아직 명확하지 않습니다. 여러분은 이 접근법이 AI 코딩 도구의 미래를 얼마나 바꿀 수 있다고 보시나요?
댓글
댓글을 불러오는 중...