← 최신 논문
🤖 AI

Self-Improving Code Generation via Semantic Entropy and Behavioral Consensus

이 논문은 외부 교사 모델이나 테스트 오라클 없이도 코드 의미 엔트로피 기반의 커리큘럼 학습과 행동 일관성 기반의 직접 선호 최적화 (Con-DPO) 를 통해 대규모 언어 모델의 코드 생성 능력을 스스로 향상시키는 'ConSelf' 방법을 제안하고 그 유효성을 입증합니다.

원저자: Huan Zhang, Wei Cheng, Wei Hu

게시일 2026-04-01
📖 3 분 읽기☕ 가벼운 읽기

원저자: Huan Zhang, Wei Cheng, Wei Hu

원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기

이 논문은 **"스스로를 가르치는 AI 프로그래머"**에 대한 이야기입니다. 보통 AI 가 코드를 더 잘 짜게 하려면, 뛰어난 인간 선생님 (또는 더 똑똑한 AI) 이 정답을 알려주거나, 코드가 맞는지 틀리는지 확인해주는 '시험지 (테스트 정답)'가 필요합니다. 하지만 현실에서는 정답을 구하기가 너무 어렵고 비쌉니다.

이 논문은 **"정답도, 선생님도 없이, AI 가 스스로 실력을 늘릴 수 있을까?"**라는 질문에 답하기 위해 **'ConSelf'**라는 새로운 방법을 제안합니다.

이 방법을 이해하기 쉽게 세 가지 비유로 설명해 드릴게요.


1. 문제: "혼란스러운 연습장" (Noisy Data)

상상해 보세요. 어떤 학생이 어려운 수학 문제를 풀려고 합니다. 하지만 정답을 모르고, 선생님도 없습니다. 학생은 혼자서 10 가지 다른 해법을 써보는데, 모두가 틀린 답입니다.

  • A: "정답은 5 입니다." (틀림)
  • B: "정답은 7 입니다." (틀림)
  • C: "정답은 100 입니다." (틀림)

이 학생이 이 10 가지 답을 모두 보고 "아하, 정답은 5, 7, 100 사이인가?"라고 공부하면 어떨까요? 오히려 더 혼란스러워지고 실력이 떨어지겠죠. AI 도 마찬가지입니다. 스스로 만든 답이 다 틀렸는데, 그걸 가지고 학습하면 AI 는 엉뚱한 방향으로만 나아갑니다.

2. 해결책 1: "실력 측정기" (Code Semantic Entropy)

이제 이 학생에게 스스로의 실력을 측정하는 도구를 줍시다. 바로 **'코드 의미 엔트로피 (Code Semantic Entropy)'**입니다.

  • 기존 방식 (내부 신뢰도): "내가 이 문제를 풀 때 얼마나 확신이 있었어?"라고 묻는 겁니다. (AI 가 "나는 99% 확신해!"라고 말하더라도, 그 답이 틀릴 수 있습니다.)
  • 이 논문의 방식 (행동 기반 측정): "네가 만든 10 가지 답을 실행해 봤는데, 결과가 서로 얼마나 달라?"를 봅니다.
    • 결과가 모두 제각각이면 (엔트로피 높음): "아, 이 문제는 내가 아직 너무 모르고 있어. 답이 제각각이니까 공부해도 소용없어." → 이 문제는 건너뜁니다.
    • 결과가 모두 똑같으면 (엔트로피 낮음): "이 문제는 내가 이미 다 알고 있네. 답이 하나뿐이야." → 이 문제도 건너뜁니다. (이미 마스터했으니까)
    • 결과가 비슷하지만 약간의 차이가 있으면 (중간 엔트로피): "이 문제는 내가 대략 알고 있지만, 아직 완벽하지 않아. 여기서 배울 게 있어!" → 이 문제만 골라 공부합니다.

이처럼 AI 는 자신이 풀 수 있는 '적당한 난이도'의 문제들만 골라내는 (커리큘럼 구성) 능력을 갖게 됩니다.

3. 해결책 2: "다수결의 지혜" (Behavioral Consensus)

고민이 생깁니다. "적당한 난이도"의 문제만 골랐다고 해도, 그 문제의 정답이 무엇인지 AI 는 여전히 모릅니다. AI 가 만든 답들 중 어떤 게 맞는지 어떻게 알까요?

여기서 ConSelf'다수결 (Consensus)' 원리를 씁니다.

  • AI 가 같은 문제를 10 번 풀어서 10 가지 답을 냈다고 칩시다.
  • 그중 8 개가 "A 라는 결과"를 내고, 2 개가 "B 라는 결과"를 냈다면?
  • ConSelf는 "아마도 A가 맞을 확률이 높겠지?"라고 추측합니다.
  • 그리고 A를 '선생님 (정답)'으로, B를 '학생 (오답)'으로 정해서 학습시킵니다.

하지만 여기서 중요한 건, 모든 다수결을 맹신하지 않는다는 점입니다.

  • 8 대 2 로 압도적이면? → "이건 거의 확실해!"라고 강하게 학습합니다.
  • 5 대 5 로 팽팽하면? → "아직 확실하지 않네."라고 약하게 학습합니다.

이처럼 신뢰도 (일치하는 정도) 에 따라 학습 강도를 조절하는 것이 **'합의 기반 최적화 (Con-DPO)'**입니다.


🌟 요약: ConSelf 가 어떻게 작동할까?

  1. 생각하기 (Observation): AI 가 문제를 보고 "이 문제는 이런 식으로 풀어야겠다"는 다양한 아이디어 (관찰) 를 먼저 떠올립니다.
  2. 실행해보기 (Sampling): 그 아이디어들을 바탕으로 코드를 여러 개 작성하고, 실제로 실행해 봅니다.
  3. 선별하기 (Filtering): 실행 결과가 너무 뒤죽박죽이면 (너무 어려움) 버리고, 결과가 모두 똑같으면 (너무 쉬움) 버립니다. 적당한 난이도인 문제만 남깁니다.
  4. 학습하기 (Consensus): 남은 문제들에서, 실행 결과가 가장 많이 일치하는 답을 '정답'으로 삼아 학습합니다. 하지만 그 일치도가 낮으면 학습을 가볍게만 시킵니다.

🏆 결과

이 방법을 사용하면, 정답지나 선생님 없이도 AI 는 스스로 실력을 3~4% 정도 향상시킬 수 있었습니다. 이는 기존에 정답이 있는 데이터로만 학습하던 방식보다 훨씬 효율적이며, 실제 현실 세계 (정답을 알기 힘든 상황) 에서 AI 가 스스로 발전할 수 있는 길을 열었습니다.

한 줄 평: "AI 가 스스로를 가르칠 때, '무작정 많이 하는 것'보다 '어떤 문제를 골라, 어떻게 믿고 학습할지'를 아는 것이 핵심이다."

연구 분야의 논문에 파묻히고 계신가요?

연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.

Digest 사용해 보기 →