Mara Chain이 버려지던 실패 후보를 이어받아 AI 시스템 자동 최적화를 가속한다
Mara Chain: Rethinking Failure as a Stepping Stone for AI System Auto-Evolution
무엇인가
배포된 AI 시스템을 개선하는 작업은 이제 모델 가중치 갱신이 아니라 프롬프트, 스킬(SKILL.md 같은 자연어 지침·참조·실행 스크립트), 하네스, 설정 파일, 소스 코드를 고치는 일이 됐다. 이 논문이 겨냥하는 문제는 이런 산출물을 최적화하는 표준 절차인 제안–평가–선택(propose–evaluate–select) 루프가 실패를 그냥 버린다는 점이다. 저자들은 실행 로그를 들여다본 결과, 탈락한 후보가 확장 가능한 부분 수정, 구현 버그만 고치면 되는 올바른 방향, 또는 한 경로를 배제해 주는 정보를 담고 있는데도 폐기되며, 그 결과 이후 제안이 같은 실패 모드를 다시 진단하느라 롤아웃 예산을 태운다고 주장한다. 논문은 이를 '지속적 실패 장벽(persistent failure barrier)'으로 개념화한다. 과제 τ에 대해 설정 σ를 실행하면 충족되지 않은 조건들의 잔차 δ(σ,τ)가 나오는데, 후보를 바꾸고 롤아웃을 늘려도 이 잔차가 불변으로 남는 상태다. 즉시 점수 향상이 없는 정당한 수정, 실행 단계에서 발현되지 않는 올바른 수정, 선행 조건에 막힌 목표 조건 등이 원인이며, 추가 롤아웃은 잔차를 바꾸지 못한다.
어떻게 동작하나
Mara Chain은 이 루프 안에서 탈락 후보를 폐기 대신 계보로 이어 refined하는 절차다. 바깥 루프는 후보 풀 P를 유지하고, 각 후보의 차원별 점수 z_j(P)에 대해 리더십 카운트 ℓ(P)=Σ_j I[z_j(P) ≥ max_Q z_j(Q) − ε]를 계산해 서로 다른 점수 차원에서 앞서는 후보를 부모로 확률적으로(비복원) 뽑는다. 슬롯은 부모 P를 미니배치 B에서 평가해 기준선을 잡고 후보 P_n을 제안하는데, P_n이 임계값 δ 이상으로 부모를 앞서면 전체 검증셋 V에서 평가하고, 그렇지 않으면 Mara Chain 정련을 호출한다. 체인은 탈락 후보의 롤아웃 기록, 잔차 실패, 구조화된 분석, 산출물 변경 이력을 저장소에 보존하고, i번째 단계에서 제안자가 축적된 문맥 Γ_i를 읽어 P_n^i를 만든다. 모든 체인 노드는 동일한 고정 미니배치에서 채점되고, 체인은 직접 후보와 같은 수용 기준을 통과한 최고 점수 노드만 반환한다. 체인 깊이 d로 추가 롤아웃 비용을 묶고, 초기 후보를 이기는 자손이 없으면 체인 전체를 버려 실패한 체인이 지속 비용을 남기지 않게 한다. 후보 풀은 두 단계로 갱신된다. 먼저 다른 후보 Q가 모든 검증 과제 j에서 z_{V,j}(Q)+ε ≥ z_{V,j}(P)를 만족하면 P를 제거하고(동일 벡터면 더 최근 후보 유지), 그다음 비지배 집합이 N개를 넘으면 평균 검증 점수 상위 N개만 남긴다. 실험 설정은 N=3, d=5다.
무엇과 다른가
실험은 서로 다른 산출물 유형을 최적화하는 세 벤치마크에서 이뤄졌다. AppWorld(스킬 구성, 585개 과제 = test_normal 168 + test_challenge 417)에서 Mara Chain은 Normal TGC/SGC 89.9/83.9, Challenge TGC/SGC 76.7/59.0을 기록해 모든 지표에서 최고였고, 스킬 최적화기 GEPA·ACE·SkillOpt-Lite 대비 상대 성능 최대 20.5% 향상을 보였다. 검증 점수 0.8에 3,280 롤아웃으로 도달해 GEPA의 9,514 롤아웃보다 65.5% 적었고(ACE와 SkillOpt-Lite는 0.8에 도달하지 못함), 벽시계로도 11.9시간 대 GEPA 35.8시간이었다. 최종 점수는 0.87로 GEPA의 0.805를 앞섰다. TerminalBench 2.1(89개 에이전트-OS 과제, 하네스 구성)에서는 최적화된 하네스가 통과율 71.9%를 기록해 AHE·Codex·미최적화 Kira 베이스의 51.7%보다 20.2%p, Meta-Harness·OpenCode의 49.4%보다 22.5%p 높았다. MuSiQue(검색 파이프라인 구성)에서는 손으로 작성한 기본 파이프라인 대비 테스트 nDCG@10 +0.104, Recall@10 +0.131(검증 +0.134/+0.210)을 얻었다.
어떻게 쓰나
절제 실험은 두 메커니즘이 난이도에 따라 다르게 기여함을 보여준다. 쉬운 Normal 분할에서는 Mara Chain 효과가 거의 보이지 않지만(TGC 86.9 대 86.9, SGC 75.0 대 76.8), 어려운 Challenge 분할에서는 TGC 76.7 대 71.9(+4.8%p), SGC 59.0 대 51.8(+7.2%p)로 벌어지고, 가장 어려운 TerminalBench 2.1에서는 통과율이 57.3%에서 71.9%로 14.6%p 올랐다. MuSiQue에서 Mara Chain을 끄면 테스트 nDCG@10이 0.034, Recall@10이 0.039 떨어지고, Top-N 선택을 끄면 AppWorld 전 지표가 하락한다(Normal 83.3/67.9, Challenge 73.6/53.2). 표본 효율에서는 전체 설정이 2,356 롤아웃에 검증 0.79에 도달해 최종 0.87까지 가는 반면, Top-N만 쓰면 3,480 롤아웃에 0.79·최종 0.81, Mara Chain만 쓰면 5,388 롤아웃에 0.79에 그쳤다. 모델 일반화도 확인됐다. AppWorld에서 빈 스킬 기준선 대비 4개 지표 평균 개선이 GLM-5 +40.3%p, DeepSeek-V4-Pro +32.7%p, Qwen3.5-397B-A17B +23.4%p였다. 사례 연구로 제시된 TerminalBench 2.1의 sanitize-git-repo 추적에서는 체인을 따라가며 산문 지침에서 스크립트로 해법이 escalate되고, 체인 없이는 산문 수준 수정에 머무는 모습이 기록됐다.
전제와 한계
실무 관점에서 이 논문이 주는 메시지는 명확하다. 에이전트 스킬·하네스·검색 파이프라인을 자동 최적화할 때 롤아웃 예산이 병목이라면, 수용 기준을 통과하지 못한 후보를 즉시 버리는 대신 그 실행 기록과 변경 이력을 보존해 다음 제안의 문맥으로 쓰는 것이 같은 예산에서 더 나은 결과를 낸다. 특히 즉시 점수가 오르지 않는 정당한 수정이 많은 장기 과제에서 효과가 크다. 도입을 검토한다면 산출물 스키마(디렉터리 구조와 각 파일의 의미 역할)를 먼저 정의해야 하고, 수용 기준 임계값 δ, 체인 깊이 d, Pareto Top-N 값이 비용과 성능을 함께 좌우한다는 점을 확인해야 한다. 논문의 구현은 타깃·옵티마이저·후보 저장소가 교체 가능한 모듈형 프레임워크로 제공된다.
저자들이 밝힌 한계도 분명하다. Mara Chain은 한 번에 하나의 배치를 진단하기 때문에 그 배치의 실패 모드에 과적합될 수 있고, 배치 간 per-instance Pareto 선택은 이를 완화할 뿐 해결하지 못한다. 문맥 구성과 진단 로직은 손으로 설계한 첫 버전이며 탐색 내내 고정된다. 향후 과제로는 문제 난이도에 따라 체인 깊이를 적응적으로 조절하고 더 저렴한 제안자 모델과 예산화된 깊이로 벽시계·토큰 비용을 줄이는 방향, 단일 테스트 점수를 넘어선 다양성 인식 선택과 직렬 계보를 병렬 'Mara-tree'로 분기하는 방향, 노드별 신뢰도 추정과 기준선 폴백, 그리고 산출물 구성과 도메인을 넘나들며 메타 학습되는 공유 경험 뱅크를 제시한다.