1
지금 쓰는 방식
지금 우리가 쓰는 방식 — Vector RAG
문서를 임베딩 벡터로 바꿔 다차원 공간에 흩뿌립니다. 질문도 같은 공간의 벡터로 변환해, 방향과 거리가 비슷한 청크를 top-k로 가져와 LLM에 넘기는 구조예요.
한계. 방향과 거리값만으로 검색하는 구조라,
질문의 의미론적 맥락을 온전히 이해하지 못해 엉뚱한 문서를 인용하는 환각(Hallucination) 리스크가 존재합니다.
"비슷해 보이지만 답이 아닌 문서"가 검색 결과 상단에 올라오는 케이스.
"비슷해 보이지만 답이 아닌 문서"가 검색 결과 상단에 올라오는 케이스.
2
한계 · Reranking
그래서 보통 Reranking을 덧댑니다 — 그런데 "정렬"이 끝이 아닙니다
거리만으로는 함정이 안 풀려, 실무에선 Reranking(재정렬)을 한 단계 더 둡니다.
후보를 넓게 모은 뒤, 크로스 인코더·LLM 등으로 순서만 다시 잡아요.
그러나 —— Reranking은 검색이 끝난 뒤에 붙는 "사후 보정"입니다.
Reranking이 잘 돼도 비슷한 문서를 더 잘 줄세운 것일 뿐, 왜 답인지는 설명하지 못합니다.
GraphRAG는 —— 검색한 뒤 고치는 게 아니라, 구조·규칙이 처음부터 의미를 잡아주는 '사전 보정'입니다.
그래서 결국 — 우리가 만드는 건 "문서 검색기"가 아니라 "진단기"입니다.
검색 뒤 재정렬(사후)로는 원리적으로 닿을 수 없는 것이, 구조에서 먼저 정렬하기 때문에 가능해집니다. 무엇이 달라지는지 아래 셋으로 정리합니다.
3
그래서 무엇이 달라지나 —
검색·재정렬로는 닿지 못하는 3가지
위에서 정렬을 앞(구조)에서 한다는 건 단순히 빠른 게 아닙니다.
단순 재정렬(사후)로는 원리적으로 불가능한 것들이 비로소 가능해집니다.
① 근거 추적
지나온 경로 전체가 근거 — Evidence·Rule·매뉴얼 조항까지 100% 추적.
② 인과 추론
단일 문서엔 없던 원인→영향→결론에 관계를 타고 도달.
③ 오답 차단
"경보 해제"처럼 표현만 비슷한 정반대 답을 규칙으로 배제.
Vector는 찾고, Graph는 안다 — 좌뇌와 우뇌를 함께
좌뇌 · Vector — 비슷한 걸 빠르게 끌어와 폭넓은 후보를 컨텍스트로 확보하고,
우뇌 · Graph — 관계·근거를 따라가 구조·인과를 컨텍스트로 확보합니다.
이 두 방식을 통해, 답의 근거가 될 컨텍스트가 두텁게 확보됩니다.