VITAL-RAG: 코딩 에이전트의 컨텍스트 할당을 위한 불변성 경주 (Invariance Race)
요약
코딩 에이전트의 RAG 과정에서 발생하는 코드 파편의 중복 문제를 해결하기 위한 VITAL-RAG를 소개합니다. 코드 객체별로 의미론적 중복을 제거하여 토큰 효율성을 높이고 검색 성능을 대폭 향상시켰습니다.
핵심 포인트
- 코드 파편 간 중복으로 인한 컨텍스트 낭비 문제 해결
- 정준 코드 객체 기반의 증거 구성 방식 도입
- RepoBench 기준 증거 토큰 35.63% 절감
- Recall@4K 성능을 39.59%에서 63.67%로 향상
- 다양한 벤치마크에서 기존 베이스라인 대비 우수한 성능 입증
코딩 에이전트(Coding agents)는 종종 전체 저장소(repository)에서 코드를 검색하지만, 최종 모델 입력에는 제한된 증거(evidence)만 포함될 수 있습니다. 코딩 에이전트를 위한 기존의 검색 증강 생성 (RAG, Retrieval-Augmented Generation) 방식은 동일한 코드 객체에서 나온 파편(fragments)들을 별개의 결과로 취급하므로, 중복된 관점들이 여러 컨텍스트 위치를 차지하여 유용한 코드를 밀어낼 수 있습니다. 코드 객체별로 파편들을 그룹화하면 이러한 중복성을 줄일 수 있지만, 작업에 필요한 국소적 정보(local information)를 버릴 위험이 있습니다. 우리는 이러한 긴장 관계를 불변성 경주 (invariance race)라고 설명합니다. 즉, 할당은 중복된 렌더링(renderings) 하에서도 안정적으로 유지되어야 하지만, 파편이 작업 관련 의미론 (semantics)을 추가할 때는 변경되어야 합니다. 이 경주를 해결하기 위해, 우리는 VITAL-RAG를 소개합니다. VITAL-RAG는 정준 코드 객체 (canonical code object)에 따라 증거를 구성하며, 이미 표현된 의미가 아닌 새로운 의미를 추가하는 경우에만 쿼리 관련 동반 파편을 하나 유지하고, 객체별 및 전역 토큰 예산 (token budgets) 하에서 선택된 증거를 렌더링합니다. RepoBench에서 VITAL-RAG는 증거 토큰을 35.63% 줄이면서 Recall@4K를 39.59%에서 63.67%로 향상시켰습니다. 세 가지 모델 백엔드(model backends) 전반에 걸쳐, 이 방식은 RepoClassBench에서 최근의 베이스라인(baselines)과 대등하거나 이를 능가하며, RepoExec에서 가장 높은 원시 Pass@1을 달성했습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 arXiv Codex (cs.SE)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기