How Many Tries Does It Take? Iterative Self-Repair in LLM Code Generation Across Model Scales and Benchmarks
본 논문은 현대의 대규모 언어 모델이 실행 오류 피드백을 기반으로 한 반복적 자가 수정을 통해 HumanEval 및 MBPP 벤치마크에서 초기 시도보다 훨씬 높은 코드 생성 정확도를 달성하며, 특히 첫 2 회 시도에서 가장 큰 개선 효과를 보이고 오류 유형에 따라 수정 난이도가 달라진다는 점을 다양한 모델 규모와 아키텍처를 통해 입증했습니다.
원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기
이 논문은 **"인공지능 (AI) 이 코딩을 할 때, 한 번에 완벽하게 만들어내지 못하면 어떻게 해야 할까?"**라는 질문에 대한 답을 찾은 연구입니다.
과거에는 AI 가 코드를 한 번만 작성해서 제출하는 방식 (한 번에 맞아야 점수) 을 주로 평가했지만, 실제 인간 개발자들은 코드를 짜고, 실행해보고, 오류가 나면 수정하고 다시 실행하는 과정을 반복합니다. 이 논문은 최신 AI 모델들이 이 '수정 (Self-Repair)' 과정을 얼마나 잘 해내는지 실험한 결과입니다.
이 내용을 일상적인 비유로 쉽게 설명해 드릴게요.
🍳 비유: "요리 실수한 후 다시 해보는 AI 요리사"
상상해 보세요. AI 는 이제 막 식당에 들어온 요리사입니다. 손님이 "파스타 만들어줘"라고 주문하면 (이게 프로그래밍 문제), 요리사는 처음에 요리를 만들어냅니다.
- 첫 번째 시도 (R0): 요리사가 파스타를 만들어 냅니다. 하지만 소스가 짜거나 면이 덜 익었을 수 있습니다 (코드 오류).
- 오류 메시지 (Feedback): 손님이 "소스가 너무 짜요!"라고 말합니다 (에러 메시지).
- 수정 시도 (Self-Repair): AI 요리사는 이 말을 듣고 "아, 소금 양을 줄여야겠구나"라고 생각하며 다시 요리합니다.
- 반복: 이 과정이 최대 5 번까지 반복됩니다.
이 연구는 **"최신 AI 요리사들은 이 '수정' 과정을 잘해낼까? 그리고 어떤 요리사가 가장 잘할까?"**를 7 가지 다른 AI 모델로 실험해 봤습니다.
🔍 주요 발견 사항 (핵심 내용)
1. "한 번에 완벽할 필요 없어, 수정하면 다 돼!" (모든 AI 가 좋아짐)
과거 연구에서는 "실력이 약한 AI 는 수정을 시도하면 오히려 더 망친다"고 했습니다. 하지만 이 논문은 2024~2025 년 최신 AI 모델들은 모두 수정을 통해 실력이 늘어난다고 밝혔습니다.
- 비유: 초보 요리사라도 "소금 적게 넣으세요"라는 피드백을 받으면, 다음에 더 맛있게 만들어냅니다. AI 도 마찬가지입니다.
2. "수정할수록 점수 폭탄!" (점수가 크게 오름)
처음에 6070 점 정도 받던 AI 가 수정을 23 번 거치면 90 점 이상까지 점수가 뚝뚝 올라갑니다.
- HumanEval (쉬운 문제): 8B(작은 모델) 도 9.8 점, 70B(큰 모델) 도 10 점 이상 올랐습니다.
- MBPP (중간 난이도): 점수 상승폭이 더 컸습니다. 특히 Gemini 2.5 Flash라는 모델은 처음에 63 점에서 수정 후 93 점까지 치솟았습니다.
3. "어떤 실수를 고치는 게 더 쉬울까?" (오류 유형 분석)
AI 가 고치는 데 성공하는 확률은 실수의 종류에 따라 다릅니다.
- 이름 오류 (NameError): "변수 'a'가 없어요" 같은 실수는 77% 확률로 잘 고칩니다. (비유: "소금통이 없네요"라고 하면 바로 찾아서 넣으면 되니까 쉽죠.)
- 문법 오류 (SyntaxError): 문법 틀린 것들도 66% 정도 잘 고칩니다.
- 논리 오류 (Assertion Error): "결과는 맞는데 값이 달라요" 같은 복잡한 실수는 45% 정도만 고칩니다. (비유: "맛이 이상해요"라고 하면, 왜 이상한지 이유를 찾아서 고쳐야 하니까 가장 어렵습니다.)
4. "수정 2 번이면 충분해!" ( diminishing returns)
수정을 5 번까지 해봤지만, 가장 큰 점수 상승은 1~2 번째 수정에서 일어났습니다. 3 번, 4 번 수정은 점수가 거의 오르지 않았습니다.
- 비유: 요리가 너무 짜서 소금 1 번 덜 넣고, 2 번 덜 넣으면 맛있습니다. 3 번, 4 번 덜 넣어도 맛은 거의 변하지 않죠. 그래서 실무에서는 수정을 2 번만 하는 게 가장 효율적입니다.
5. "생각하는 과정 (CoT) 을 말하면 더 잘 고쳐요"
AI 에게 "왜 틀렸는지 설명하고 고쳐줘"라고 요청하면 (Chain-of-Thought), 그냥 "고쳐줘"라고 요청하는 것보다 더 잘 고칩니다. 특히 큰 모델일수록 이 효과가 큽니다.
6. "수정 vs 다시 처음부터 만들기"
코드를 고치는 것 (수정) 과, 처음부터 코드를 5 개 만들어서 그중 하나를 고르는 것 (재시도) 을 비교했습니다.
- 결론: 똑똑한 AI 일수록 수정하는 게 더 빠르고 효율적입니다. (비유: 요리사가 "소금 적게"라고 말한 것을 듣는 게, 처음부터 5 번이나 파스타를 만들어보는 것보다 훨씬 빠르고 저렴하죠.)
🏆 최종 순위 및 결론
- 최고의 성능: Gemini 2.5 Flash가 가장 높은 점수 (96.3%) 를 기록했습니다.
- 가장 큰 성장: Gemini 2.5 Pro가 처음 점수 대비 가장 많이 올랐지만, 처음부터 너무 완벽하지는 않았습니다.
- 작은 모델도 OK: 8B 같은 작은 모델도 수정을 통해 크게 성장했습니다.
💡 이 연구가 우리에게 주는 교훈
- AI 에게 한 번에 완벽을 요구하지 마세요. 오류 메시지를 주고 "수정해줘"라고 하면 훨씬 좋은 결과가 나옵니다.
- 수정은 2 번 정도가 적당합니다. 2 번 수정하면 대부분의 이득을 챙길 수 있습니다.
- 복잡한 논리 오류는 여전히 어렵습니다. AI 가 논리적으로 틀린 코드를 스스로 고치는 건 아직 완벽하지 않으므로, 인간이 확인하거나 다른 방법을 병행해야 합니다.
한 줄 요약:
"AI 가 코딩을 할 때, 실수하면 바로 고쳐주면 처음보다 훨씬 잘해요. 특히 똑똑한 AI 일수록 '수정'을 통해 한 번에 못 만드는 걸 완벽하게 만들어냅니다."
연구 분야의 논문에 파묻히고 계신가요?
연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.