한 줄 요약
AutoIndex는 BM25 기반 검색 성능을 향상시키기 위해 문서 표현 프로그램을 학습하는 프레임워크로, CRUMB 벤치마크에서 평균 +8.4%의 Recall@100 개선을 달성했다.
핵심 기여도
- 문서 표현 프로그램을 실행 가능한 변환으로 정의하고, 이에 대한 최적화를 수행하는 AutoIndex 프레임워크를 제안.
- Validation-guided program search를 통해 현재 프로그램의 실패 원인을 진단하고 개선된 후보를 합성.
- CRUMB 벤치마크에서 8개 태스크 모두에서 BM25 기반 정적 기준 대비 평균 +8.4%의 Recall@100, +8.3%의 nDCG@10 개선.
- Retriever, embedding, 또는 온라인 피드백 없이 학습된 프로그램을 인덱싱 단계에서 적용.
핵심 아이디어
AutoIndex는 기존 검색 시스템에서 문서 표현을 고정된 전처리 단계로 다루는 관행을 탈피, 이를 명시적인 최적화 대상으로 전환한다. 기존 연구는 retriever, reranker, 또는 고정된 헤uristic(예: chunk size, overlap)에 집중했으나, AutoIndex는 문서를 인덱스 가능한 형태로 변환하는 프로그램 자체를 최적화 대상으로 삼는다. 이 프로그램은 문서를 slice, enrich, normalize, reweight, reorganize하는 실행 가능한 변환이며, 이는 검색 성능을 향상시키는 데 직접 기여한다. 핵심 아이디어는, 검색 성능을 개선하기 위해 retriever가 아닌 문서 표현 프로그램을 학습한다는 점이다.
기술적 접근법
AutoIndex는 다음과 같은 주요 모듈로 구성된다:
- **Analysis Agent**: 현재 프로그램의 실패 원인을 진단하는 정책(π_A)으로, `bm25_retrieve`, `read_file`, `grep_search` 도구를 사용.
- **Code-Generation Agent**: 진단 결과를 바탕으로 후보 프로그램을 합성.
- **Validation-guided program search**: 후보 프로그램을 실행 → 인덱싱 → 검색 성능(Recall@100, nDCG@10) 기반 선택.
- **CRUMB 벤치마크**: 8개의 이질적 검색 태스크에서 BM25를 고정하고 AutoIndex 프로그램을 평가.
- **하이퍼파라미터**: Anchors, Recall Violations, Small-Margin Positives로 쿼리를 분류하고, 각 카테고리당 5개 쿼리씩 샘플링.
주요 결과
- CRUMB 벤치마크에서 AutoIndex는 8개 태스크 모두에서 BM25 기반 정적 기준 대비 평균 +8.4%의 Recall@100, +8.3%의 nDCG@10 개선.
- 최대 개선폭은 +30.5% (Recall@100)와 +43.6% (nDCG@10).
- Retriever fine-tuning, embedding update, 또는 online feedback 없이 인덱싱 단계에서 실행 가능한 프로그램만 적용.
의의 및 한계
AutoIndex는 문서 표현을 명시적인 최적화 대상으로 삼아, 기존의 고정된 전처리 헤uristic을 벗어나는 새로운 접근법을 제시한다. CRUMB에서의 결과는 문서 표현 프로그램이 검색 성능에 큰 영향을 미칠 수 있음을 입증하며, 프로그램 합성 기법이 검색 목적에 맞는 문서 표현을 자동화하는 데 유용함을 보여준다. 그러나 현재는 BM25만 고정된 환경에서 실험되었으며, 다른 retriever(예: dense retriever)와의 호환성은 검증되지 않았다. 또한, 학습된 프로그램이 복잡한 경우 실행 시간이나 인덱싱 비용이 증가할 수 있는 한계가 있다.
실용적 활용
AutoIndex는 검색 시스템에서 문서 전처리를 자동화하고, 검색 성능을 향상시키는 데 활용 가능하다. 특히, RAG 파이프라인, 문서 기반 추론, 또는 대규모 문서 저장소에서의 효율적 검색에 적용할 수 있다. 프로그램 합성 기반 접근법은 검색 엔진 개발자들이 복잡한 전처리 헤uristic을 수동으로 설계하는 부담을 줄이는 데 기여할 수 있다.