베이지안 앵커링으로 진화하는 코드·테스트 공동 생성 프레임워크 BACE

BACE는 코드와 테스트를 각각 다수의 후보군으로 유지하고, 실행 결과를 ‘노이즈가 섞인 센서’로 간주해 베이지안 업데이트를 수행한다. 최소 1~3개의 공개 입출력 예시(앵커)를 이용해 믿음(belief)을 고정시켜 자기 강화 루프를 방지한다. 베이지안 공동 진화와 앵커링을 결합한 이 방법은 LiveCodeBench v6에서 최신 상용 모델과 소형 오픈 모델 모두에게 기존 멀티에이전트 기법보다 3~5%p 높은 통과율을 기록한다.

저자: Kaushitha Silva, Srinath Perera

베이지안 앵커링으로 진화하는 코드·테스트 공동 생성 프레임워크 BACE
본 논문은 LLM 기반 자동 코드 생성에서 테스트 자동 생성이 초래하는 피드백 루프의 취약성을 해결하고자 한다. 기존의 AgentCoder와 같은 멀티에이전트 시스템은 프로그래머 에이전트와 테스트 디자이너 에이전트를 순환시켜 코드와 테스트를 교정한다. 그러나 테스트가 잘못 생성되면 ‘거짓 양성’(잘못된 코드가 통과)과 ‘거짓 음성’(올바른 코드가 거부) 현상이 빈번히 발생한다. 이러한 문제 때문에 최신 프레임워크들은 테스트 생성을 포기하고 입출력 예시 기반 계획·추론에 집중하고 있다. 저자들은 테스트가 완전하지 않더라도 여전히 유용한 신호가 될 수 있다고 주장하며, 이를 ‘노이즈가 섞인 센서’로 모델링하는 베이지안 접근법을 제안한다. BACE(Bayesian Anchored Co‑Evolution)의 핵심 아이디어는 코드와 테스트를 각각 다수(N, M)의 후보군으로 유지하고, 실행 결과를 관측값 행렬 D(N×M)로 수집한다. 각 후보는 정답 여부를 나타내는 이진 잠재 변수 X_i(코드)와 Y_j(테스트)를 갖고, 사후 확률 b(c_i)=P(X_i=1), b(t_j)=P(Y_j=1) 로 표현한다. 실행 결과 d_ij는 ‘Pass’(1) 혹은 ‘Fail’(0)이며, 이는 다음 세 가지 노이즈 확률에 의해 왜곡될 수 있다: α(정답 코드가 깨진 테스트를 통과), β(오답 코드가 정답 테스트를 통과), γ(오답 코드가 깨진 테스트를 통과). 베이지안 업데이트는 로그오즈 공간에서 수행되며, 학습률 η 로 증거 축적 속도를 조절한다. 코드 후보 c_i에 대한 업데이트는 테스트 t_j의 현재 신뢰도 b(t_j)와 관측 d_ij에 기반해 Δ_code_ij 를 계산하고, logit(b(c_i))에 가산한다. 테스트 후보 역시 코드 집단을 센서로 삼아 대칭적인 업데이트를 수행한다. 중요한 점은 ‘신뢰 임계값’(Equation 5)으로, 코드·테스트 중 하나의 신뢰도가 일정 수준 이하이면 Pass가 오히려 신뢰도를 감소시키는 역효과가 발생한다. 이는 저신뢰 후보가 시스템을 오염시키는 것을 방지한다. 앵커링 메커니즘은 문제 명세에 포함된 1~3개의 공개 입출력 예시를 고신뢰 테스트 집합 T_anchor 로 정의한다. 이 앵커 테스트는 b(t_anchor)≈1 로 초기화되며, 코드가 앵커를 통과하면 강력한 긍정적 증거(Δ≈ln(1/β))가 부여되고, 실패하면 무한대의 패널티(−∞)가 부여되어 해당 코드 후보는 즉시 신뢰도가 0이 된다. 이렇게 함으로써 공동 진화가 자체 검증 루프에 빠지는 것을 방지한다. 다양성 유지 전략으로는 행동 기반 엘리트 정책을 도입한다. 각 코드 후보는 실행 결과를 행동 벡터(예: 테스트 통과/실패 패턴)로 변환하고, 이 벡터가 서로 다른 후보들을 보존한다. 또한 차등 테스트를 활용해 동일 코드가 서로 다른 테스트에 대해 상이한 결과를 보이는 경우를 탐지하고, 이를 새로운 테스트 후보로 추가한다. 이는 탐색 공간을 넓히고, 지역 최적에 빠지는 위험을 감소시킨다. 실험은 2025년 3월 이후 공개된 LiveCodeBench v6 데이터셋을 사용했다. 평가 모델로는 GPT‑5‑Mini(상용), Qwen2.5‑Coder‑7b(오픈‑소스) 등 다양한 규모의 LLM을 포함했다. BACE는 기존 멀티에이전트 프레임워크인 CodeSIM, MapCoder, AgentCoder 등을 모두 앞서며, GPT‑5‑Mini 기준 3.8%p, Qwen2.5‑Coder‑7b 기준 5.0%p의 절대적 성능 향상을 기록했다. Ablation 실험에서는 (1) 앵커링을 제거하면 성능이 급격히 저하되고, (2) 노이즈 파라미터 α, β, γ 를 부정확하게 설정하면 공동 진화가 드리프트하여 테스트와 코드 모두 신뢰도가 낮아지는 현상이 관찰되었다. 결론적으로 BACE는 (i) 코드·테스트 공동 진화, (ii) 베이지안 노이즈 모델링, (iii) 최소 공개 예시 기반 앵커링, (iv) 행동 다양성 보존이라는 네 가지 핵심 메커니즘을 결합해, 테스트 자동 생성의 불확실성을 정량적으로 다루면서도 실제 벤치마크에서 의미 있는 성능 향상을 달성한 새로운 프레임워크이다. 향후 연구에서는 더 복잡한 다중 입력/출력 문제, 실시간 사용자 피드백 통합, 그리고 베이지안 파라미터 자동 튜닝 등을 통해 시스템을 확장할 여지가 있다.

원본 논문

고화질 논문을 불러오는 중입니다...

댓글 및 학술 토론

Loading comments...

의견 남기기