검색기에서 컴파일러로 가는 RAG
질의 시점에 어떤 검색기를 붙이느냐보다 인덱스를 만들 때 무엇을 미리 계산해 두었느냐가 RAG 품질의 상한을 정합니다. 구조 인덱스, 필터 인식 그래프, 정렬 평가로 그 근거를 모았습니다.
질의 시점에 어떤 검색기를 붙이느냐보다, 인덱스를 만들 때 무엇을 미리 계산해 두었느냐가 RAG 품질의 상한을 정합니다.
RAG 개선안은 대개 질의 시점에 몰려 있습니다. 리랭커를 얹고, 희소 점수와 밀집 점수를 섞고, 쿼리를 다시 씁니다. 그런데 최근 연구를 모아 보면 개선의 상한이 인덱스를 만들 때 이미 정해져 있던 사례가 반복해서 나옵니다.
이 글의 주장은 하나입니다. RAG의 설계 무게중심이 질의 시점 검색에서 인덱스 시점 사전 계산으로 옮겨가고 있으며, 검색기 교체로는 넘지 못하는 벽이 인덱스 구조에서 만들어진다는 것입니다.
기본 검색 구조는 RAG와 DPR 밀집 검색에서 다뤘습니다. 여기서는 그 위의 설계 결정만 봅니다. 본문의 arXiv 식별자와 수치는 2026-09 기준으로 각 논문 초록에서 확인했습니다.
인덱스 시점과 질의 시점의 분업
두 시점이 맡는 일을 갈라 놓고 보면 논점이 분명해집니다. 인덱스 시점은 코퍼스 전체를 여러 번 읽을 수 있고 시간 예산이 느슨합니다. 질의 시점은 사용자를 기다리게 하므로 밀리초 단위로 쪼들립니다.
여기서 중요한 건 화살표의 방향입니다. 질의 시점 단계는 인덱스가 만들어 준 후보 공간 안에서만 움직입니다. 인덱스가 잃어버린 정보는 아무리 좋은 리랭커도 되살리지 못합니다.
검색기로 줄지 않는 반복 호출 비용
에이전트가 수십 단계 루프를 도는 동안, 매 단계마다 질의를 다시 임베딩하고 원문 조각을 다시 컨텍스트에 넣습니다. 이 반복 오버헤드는 검색 품질과 무관하게 누적됩니다. Pinecone 계열 논의에서 쓰는 compile-time RAG라는 이름은 학술 정의가 없는 신조어이므로 용어 자체는 신호 정도로만 받아들이는 편이 안전합니다.
같은 발상을 검증 가능한 형태로 다룬 연구가 WiCER입니다(arXiv:2605.07068). 원문을 미리 하나의 지속 산출물로 압축해 두고 KV 캐시로 서빙하는 LLM Wiki 패턴을 17개 RepLiQA 도메인, 6,800개 질문으로 측정했습니다. 정제된 지식에서는 전체 컨텍스트 KV 캐시 방식이 5점 만점에 4.38점으로 RAG의 4.08점을 앞섰습니다.
문제는 압축 자체입니다. 검증 없이 한 번에 압축한 wiki는 2.14점에서 2.32점으로 떨어졌고, 원문 전체 대비 53%에서 60% 구간의 치명적 실패율을 보였습니다. WiCER는 진단 프로브로 빠진 사실을 찾아 다음 압축에 강제로 남기는 반복 절차를 제안했고, 1회에서 2회 반복으로 손실 품질의 80%를 회복했습니다.
이 결과가 주장에 보태는 것은 두 가지입니다. 사전 계산은 실제로 이득이 있지만, 검증 루프 없는 사전 계산은 원문보다 나쁜 산출물을 만든다는 점입니다. 인덱스 시점으로 일을 옮기는 것은 비용을 없애는 게 아니라 위치를 바꾸는 결정입니다.
구조를 미리 만들어 두는 두 방식
문서의 원래 계층을 인덱스로 쓰는 접근이 PageIndex입니다. LLM이 PDF를 읽어 목차 구조를 복원하고, 노드마다 페이지 범위와 요약을 붙인 트리를 만듭니다. 질의가 오면 에이전트가 루트에서 리프로 내려가며 열어 볼 노드를 고릅니다.
성능 주장은 조심해서 읽어야 합니다. FinanceBench에서 98.7% 정확도를 냈다는 제작사 발표가 있습니다. 이는 자체 측정이고 채점도 LLM 심판입니다.
FinanceBench 원논문은 150건 표본을 사람이 채점했습니다(arXiv:2311.11944). 그 조건에서 검색을 붙인 GPT-4-Turbo조차 81%를 오답이나 거부로 처리했습니다. 채점 축이 다르므로 두 수치를 나란히 놓을 수 없습니다.
수치를 걷어내고 남는 설계 아이디어는 분명합니다. 임베딩을 버리는 부분이 아니라, 문서 고유의 계층을 인덱스 구조로 그대로 쓰고 인용에 페이지를 남기는 부분이 실질입니다. 공식 문서의 하이브리드 트리 탐색 모드가 값 함수 초기화에 벡터 검색을 쓴다고 밝힌 것도 같은 방향을 가리킵니다.
지식그래프는 같은 일을 문서 사이에서 합니다. 엔티티를 추출하고 표기 변형을 정본으로 합친 뒤 관계 간선에 출처를 붙이는 작업은 전부 인덱스 시점에 끝납니다. 질의 시점에 남는 일은 시드 엔티티에서 k-홉 서브그래프를 잘라 직렬화하는 것뿐입니다. GraphRAG의 기본 동작은 RAG의 GraphRAG 절에 정리해 두었습니다.
질의 시점에 복구되지 않는 필터 단절
주장을 가장 직접적으로 떠받치는 근거는 필터 결합 벡터 검색입니다. 메타데이터 조건과 벡터 유사도를 함께 만족시켜야 할 때, 조건을 만족하는 노드만 남긴 유도 서브그래프는 원래 그래프의 연결성을 잃습니다. 두 유효 노드를 잇던 중간 노드가 조건 불일치로 빠지면 경로가 끊기고, 탐색은 국소 최적점에 갇힙니다.
| 전략 | 인덱스 시점에 하는 일 | 낮은 선택도에서의 실패 |
|---|---|---|
| 사후 필터링 | 없음 | 후보 큐가 고갈되어 재현율 급락 |
| 사전 필터 전수 조사 | 없음 | 거리 계산량이 선형으로 증가 |
| 인라인 필터링 | 없음 | 무효 노드 경유 비용 폭증 |
| 필터 인식 그래프 | 간선 규칙에 술어·범위를 반영 | 단일 인덱스로 연결성 유지 |
ACORN은 술어별 인덱스를 새로 만들지 않습니다(arXiv:2403.04871, SIGMOD 2024). 대신 HNSW 위에서 술어 서브그래프 순회를 흉내 냅니다. 논문은 고정 재현율 기준으로 기존 방법 대비 2배에서 1,000배 높은 처리량을 보고했습니다. 핵심은 질의 시점 순회 규칙과 구축 시점 이웃 선택 규칙을 함께 바꿨다는 점입니다.
수치 범위 조건에는 RNSG가 더 나아갑니다(arXiv:2603.12913, 2026-03). 공간 근접성과 속성 근접성을 함께 고려하는 범위 인식 상대 근접 그래프를 정의하고, 임의의 범위로 잘라낸 유도 서브그래프가 여전히 유효한 같은 종류의 그래프임을 증명했습니다. 이 구조적 유전성 덕분에 범위마다 그래프를 따로 만들 필요가 없습니다.
두 연구가 말하는 바는 같습니다. 필터는 질의 시점 정보지만, 필터를 견디는 능력은 인덱스 시점 간선 규칙에서 나옵니다. 그래프 탐색 자체의 복잡도 문제는 그래프 기반 근사 최근접 탐색의 복잡도에서 따로 다뤘습니다.
재순위 뒤에 평가하는 임베딩 선택
인덱스 시점의 가장 흔한 결정은 임베딩 모델 선택입니다. 이 선택을 MTEB 단독 점수로 하면 뒤에 붙는 재순위 단계와 어긋날 수 있습니다.
Rao 외의 실험이 이를 보여 줍니다(arXiv:2506.00049, 2025-05). 밀집·희소·그래프 세 신호를 융합한 하이브리드 검색에서, 재순위 전에는 BGE-Large가 nDCG@10 0.6608로 MiniLM-v6의 0.6505보다 높았습니다. GPT-4o 재순위를 붙이자 순서가 뒤집혀 SciFact에서 MiniLM-v6가 0.6681, BGE-Large가 0.6170을 기록했습니다.
| 데이터셋 | MiniLM-v6 nDCG@10 | BGE-Large nDCG@10 |
|---|---|---|
| SciFact | 0.6681 | 0.6170 |
| FIQA | 0.3648 | 0.2963 |
| NFCorpus | 0.3144 | 0.2920 |
파라미터가 93% 적은 모델이 이긴 이유를 논문은 임베딩 공간과 LLM 관련성 판단의 정렬로 설명합니다. 결정의 시점은 인덱스 시점이지만 평가의 단위는 파이프라인 전체여야 한다는 뜻입니다.
SPLATE는 같은 논리를 비용 쪽에서 보여 줍니다(arXiv:2404.13950, SIGIR 2024). ColBERTv2의 고정된 토큰 임베딩에 경량 MLM 어댑터를 붙여 희소 어휘 공간으로 미리 매핑해 두면, 후보 생성을 표준 역색인으로 처리할 수 있습니다. 논문은 10 ms 이내에 검색한 문서 50건을 재순위해 PLAID ColBERTv2와 같은 효과를 냈다고 보고했습니다. 지연 예산을 인덱스 시점 어댑터 학습으로 산 셈입니다. 리랭커 계열 비교는 Late Interaction 리랭킹에 정리해 두었습니다.
인덱스 시점으로 옮겨지지 않는 것
주장이 성립하지 않는 구간이 분명히 있습니다. 가장 큰 것이 지식 충돌입니다. 검색된 문서가 모델의 파라메트릭 지식과 어긋날 때 무엇을 믿을지는 후보 집합이 나온 뒤에야 정해집니다.
Chen 외는 표준 RAG의 취약점을 측정했습니다(arXiv:2605.14473). 잘못된 검색 결과를 주입한 TruthfulQA 최악 조건에서 표준 RAG 정확도는 15.0%에 그쳤습니다. 컨텍스트 답변과 사전지식 답변을 분리 유도하는 개입을 넣자 Entity Swap 조건에서 79.3%가 88.0%로 올라갔지만, 개선은 모델마다 갈렸습니다.
ConflictRAG는 생성 전에 충돌을 걸러내는 파이프라인입니다(arXiv:2605.17301). 경량 분류기로 1차 탐지하고 애매한 경우만 LLM으로 재확인해 API 비용을 62% 줄였습니다. 그러면서 탐지 F1 88.7%를 유지했다고 보고했습니다.
두 연구 모두 개입 지점이 질의 시점입니다. 인덱스 시점에 미리 할 수 있는 일은 출처 신뢰도의 근거가 될 메타데이터와 유효 기간, 스키마 버전을 간선과 청크에 붙여 두는 데까지라는 것이 제 판단입니다. 소스가 인덱스 시점 충돌 해소 기법을 직접 제시하지는 않았습니다.
나머지 한계도 같은 성격입니다. 사전 계산된 산출물은 스냅샷이라 재컴파일 일정 없이는 조용히 낡습니다. 질의 시점에 강제해야 하는 접근 권한은 인덱스에 구울 수 없습니다. 지식그래프의 후보 축소 규칙은 도메인마다 달라, 추출 프롬프트가 범용이어도 그 부분은 매번 다시 만들고 평가해야 합니다.
무엇을 먼저 옮길지 정하는 기준
결정 순서는 코퍼스의 성질부터입니다. 아래 표는 인덱스 시점 투자의 우선순위를 정리한 것입니다.
| 상황 | 인덱스 시점에 넣을 것 | 근거 |
|---|---|---|
| 메타데이터 필터가 항상 붙는다 | 필터 인식 그래프 또는 범위 인식 인덱스 | 사후 필터링은 낮은 선택도에서 재현율이 무너진다 |
| 목차가 뚜렷한 장문 문서 소수 | 계층 구조 인덱스와 페이지 단위 인용 | 청크 경계가 문서 구조를 지운다 |
| 문서 간 2-홉 이상 조인이 필요하다 | 엔티티 해소와 출처가 붙은 관계 간선 | 유사도 검색은 어휘가 겹치지 않는 문서를 잇지 못한다 |
| 재순위를 반드시 붙인다 | 재순위 포함 평가로 고른 임베딩 | 재순위 전 우열이 뒤집힐 수 있다 |
| 코퍼스가 안정적이고 질의가 반복된다 | 검증 루프를 붙인 사전 압축 | 검증 없는 압축은 원문보다 나쁘다 |
| 운영 데이터가 계속 바뀐다 | 옮기지 않는다 | 스냅샷 신선도 비용이 이득을 넘는다 |
점검 항목은 세 개면 충분합니다. 첫째, 질의당 비용이 사용자 수보다 빠르게 늘고 있는지 봅니다. 둘째, 지금 인덱스가 질의에 붙는 필터 조건을 알고 있는지 확인합니다. 셋째, 사전 계산한 산출물의 재생성 주기와 검증 세트가 있는지 확인합니다.
정리
RAG 개선의 여지는 질의 시점보다 인덱스 시점에 더 많이 남아 있습니다. 필터 결합 검색에서 연결성은 간선 규칙에서 나오고, 문서 구조와 엔티티 관계는 인덱스 시점을 놓치면 복원되지 않으며, 임베딩 선택의 우열도 재순위를 포함해야 제대로 보입니다. 다만 지식 충돌 판정과 접근 권한처럼 후보 집합이 있어야 성립하는 판단은 질의 시점에 남고, 사전 계산은 검증 루프와 재생성 일정을 함께 설계할 때만 이득이 됩니다. 결정 기준은 한 줄로 줄일 수 있습니다. 코퍼스가 안정적이고 질의 형태가 반복되며 필터가 늘 붙는다면 인덱스 시점으로 옮기고, 데이터가 계속 바뀌거나 권한이 질의마다 달라진다면 질의 시점에 남깁니다.