← 최신 논문
💬 NLP

Code-A1: Adversarial Evolving of Code LLM and Test LLM via Reinforcement Learning

이 논문은 코드 생성 모델과 테스트 생성 모델을 적대적으로 공진화시켜 자기 공모를 방지하고 정적 보상 한계를 극복하며, 인간이 주석한 테스트보다 우수한 성능을 달성하는 'Code-A1' 프레임워크를 제안합니다.

원저자: Aozhe Wang, Yuchen Yan, Nan Zhou, Zhengxi Lu, Weiming Lu, Jun Xiao, Yueting Zhuang, Yongliang Shen

게시일 2026-03-17
📖 3 분 읽기☕ 가벼운 읽기

원저자: Aozhe Wang, Yuchen Yan, Nan Zhou, Zhengxi Lu, Weiming Lu, Jun Xiao, Yueting Zhuang, Yongliang Shen

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

🚀 코드-A1: 코딩 실력을 기르는 '악마의 사도'와 '천재 코더'의 대결

이 논문은 인공지능이 코딩을 더 잘하게 만드는 새로운 방법을 소개합니다. 제목은 Code-A1입니다.

기존의 방식은 인공지능이 코드를 짤 때, 인간이 미리 만들어둔 '정답 키 (테스트)'로만 점수를 매겼습니다. 하지만 이 방식에는 큰 문제가 있었습니다.

  1. 정답 키가 부족하고 단순함: 인간이 만든 테스트는 많지 않고, 너무 쉬워서 실제 실수를 찾아내지 못합니다.
  2. 고정된 기준: 인공지능이 실력이 늘어도, 테스트 기준은 그대로라 더 이상 성장할 수 없습니다.

Code-A1은 이 문제를 해결하기 위해 **'두 명의 인공지능'**을 서로 싸우게 하는 방식을 도입했습니다. 마치 마라톤 선수와 훈련 코치가 서로를 밀어올리는 것과 같습니다.


🎭 두 주인공의 역할

이 시스템에는 두 명의 AI 가 있습니다.

  1. 코딩 AI (Code LLM): "나는 이 문제를 해결하는 코드를 짤 거야!"
    • 목표: 가능한 한 많은 테스트를 통과해서 점수를 높이는 것.
  2. 테스트 AI (Test LLM): "나는 너의 코드가 왜 틀렸는지 찾아낼 거야!"
    • 목표: 코딩 AI 의 코드를 찾아내서 실패하게 만드는 '치명적인' 테스트를 만드는 것.

🥊 싸움의 방식: '화이트박스' 대결

여기서 가장 중요한 차이가 있습니다.

  • 기존 방식 (흑상자): 코딩 AI 가 코드를 짤 때, 테스트 AI 는 그 코드를 볼 수 없습니다. 문제 설명만 보고 "아마 이런 실수를 할 거야"라고 추측해서 테스트를 만듭니다. 그래서 테스트가 너무 뻔하거나, 실제 코드의 숨은 결함을 못 찾습니다.
  • Code-A1 방식 (백상자): 코딩 AI 가 코드를 짠 후, 테스트 AI 가 그 코드를 직접 뜯어볼 수 있습니다. 마치 코딩 AI 가 "이게 내 코드야"라고 보여주고, 테스트 AI 가 "아하! 이 부분에서 변수가 0 이 되면 죽겠네?"라고 코드를 직접 분석하여 딱 그 부분을 찌르는 테스트를 만듭니다.

비유:

  • 기존 방식: 시험지 답안지를 보지 않고, "학생들이 틀릴 만한 문제"를 출제하는 선생님.
  • Code-A1: 학생이 쓴 답안지를 직접 들고 가서 "여기 논리 오류가 있네?"라고 찾아내는 악마 같은 감시관.

📝 '실수 노트 (Mistake Book)'의 비밀

두 AI 가 싸우면 어떤 일이 일어날까요?
처음에는 테스트 AI 가 약해서 코딩 AI 가 쉽게 이깁니다. 하지만 코딩 AI 가 실력이 늘면, 테스트 AI 는 더 어려운 테스트를 만들어야 점수를 받습니다.

하지만 여기서 **실수 노트 (Mistake Book)**라는 장치가 등장합니다.

  • 과거에 코딩 AI 가 틀렸던 테스트들을 노트에 적어둡니다.
  • 코딩 AI 가 이 노트에 있는 테스트를 다시 풀 때, 반드시 통과해야 점수를 받습니다.
  • 만약 코딩 AI 가 과거에 고쳤던 실수를 다시 저지르면 (잊어버리면), 노트에서 다시 점수를 뺏깁니다.

비유:
이는 마치 운동선수의 훈련 일지와 같습니다. "어제 다리를 다쳤던 동작"을 기록해두고, 오늘 훈련할 때 그 동작을 다시 해보며 "이번엔 다치지 않게 해라"라고 훈련시키는 것입니다. 실수를 잊지 않고, 계속 발전하게 만듭니다.

🏆 결과는 어떨까요?

이 실험은 Qwen2.5-Coder 라는 AI 모델을 가지고 진행되었습니다. 결과는 놀라웠습니다.

  1. 코딩 실력: 인간이 직접 만든 정답 테스트로 훈련한 AI 보다 더 좋은 점수를 받았습니다.
  2. 테스트 능력: 테스트를 만드는 AI 는 인간이 만든 테스트보다 더 치명적이고 정확한 실수를 찾아냈습니다.
  3. 효율성: 30 억 개의 파라미터를 가진 작은 모델이, 70 억 개의 파라미터를 가진 큰 모델보다 더 뛰어난 성능을 냈습니다. (즉, 싸움 훈련이 단순히 모델을 키우는 것보다 더 효과적입니다.)

💡 요약

Code-A1은 인공지능이 코딩을 배울 때, 정해진 답안지에 의존하지 않고 스스로를 시험하는 '악마의 코치'와 '열혈 선수'를 만들어 서로를 밀어올리게 합니다.

  • 코딩 AI는 더 튼튼한 코드를 짜고,
  • 테스트 AI는 더 교활한 버그를 찾아내며,
  • 실수 노트는 과거의 실수를 잊지 않게 합니다.

이렇게 서로 싸우며 함께 성장하는 (공진화) 방식 덕분에, 인간이 일일이 테스트를 만들어주지 않아도 인공지능은 스스로 더 똑똑하고 안전한 코드를 만들어낼 수 있게 되었습니다.

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

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

Digest 사용해 보기 →