527 / 528
RAG 네 갈래, 검색부터 추론까지
챗봇에게 회사 규정이나 최신 논문을 물으면 종종 그럴듯한 거짓말이 돌아온다. 언어 모델이 배운 적 없는 내용을 상상으로 메우기 때문이다. 이를 막는 방법이 검색 증강 생성(RAG, 답을 짓기 전에 외부 자료에서 관련 내용을 먼저 찾아 와 그것을 근거로 삼는 방식)이다. 모델을 다시 훈련하지 않고도 최신 정보와 우리 조직의 문서를 답에 반영할 수 있다.
그런데 RAG라고 다 같은 RAG가 아니다. 자료를 어떻게 찾고 얼마나 깊이 이해하느냐에 따라 성격이 네 갈래로 갈린다. 하나는 그저 비슷한 조각을 빠르게 긁어모으고, 다른 하나는 흩어진 조각 사이의 관계까지 밟아가며 추론한다. 순서대로 보면 검색이 점점 똑똑해지는 사다리에 가깝다.
벡터 RAG — 비슷한 조각을 찾아온다
거대한 도서관에서 “이 주제랑 비슷한 책 좀”이라고 부탁하면, 사서가 내용을 정독하진 않아도 관련될 법한 책을 한 아름 뽑아온다. 벡터 RAG가 딱 이렇다.
문서를 잘게 자르고(청킹), 각 조각을 의미가 담긴 숫자 배열로 바꾼 뒤(임베딩), 벡터 데이터베이스에 넣어 둔다. 질문이 들어오면 질문과 가장 가까운 조각 몇 개(Top-K)를 유사도로 골라 온다.
방대한 비정형 자료(PDF, 회의록, 리포트)를 폭넓게 훑는 데 강하고 빠르다. 약점은 조각이 앞뒤 맥락을 잃기 쉽다는 것, 그리고 여러 정보를 이어 붙여 따져야 하는 질문에는 힘을 못 쓴다는 것이다.
컨텍스트 RAG — 찾기 전에 조각을 똑똑하게 만든다
책을 찢어 조각내기 전에, 각 조각 귀퉁이에 “이건 A사 3분기 매출 이야기”라고 포스트잇을 붙여 두면 어떨까. 나중에 조각만 봐도 출처와 맥락을 알 수 있다. 컨텍스트 RAG의 발상이 이것이다.
임베딩하기 전에 조각마다 짧은 맥락 설명을 앞에 덧붙인다. 예를 들어 “매출 3% 성장”이라는 조각은 그 자체로는 어느 회사, 어느 분기인지 알 수 없다. 앞에 맥락을 심어 두면 검색이 훨씬 정확해진다. 검색 뒤에는 결과를 한 번 더 추려내는 재정렬(리랭킹) 단계가 붙는다.
Anthropic은 이 방식으로 상위 20개 조각을 놓치는 검색 실패율을 49% 낮췄고(5.7%에서 2.9%로), 재정렬까지 더하자 67%까지 줄였다(1.9%). 대신 조각마다 맥락을 붙이는 전처리 비용이 든다.
온톨로지 RAG — 연결된 개념을 이해한다
회사 용어 사전과 조직도를 손에 쥔 베테랑 사서를 떠올려 보자. “부장은 팀장의 윗사람”, “환불은 결제 규칙의 하위 항목” 같은 관계와 위계를 이미 알고 있어서, 규칙에 어긋나지 않는 답을 짚어준다. 온톨로지 RAG가 여기에 해당한다.
온톨로지(개념, 관계, 계층, 제약, 규칙을 정리해 둔 지식 지도)를 미리 만들어 둔다. 질문에서 핵심어(엔티티)를 뽑아 이 지도에 대응시키고, 관계를 따라 탐색한 뒤 필요하면 논리 추론까지 거쳐 답을 낸다.
법률, 의료, 컴플라이언스처럼 도메인의 의미와 규칙이 엄격한 곳에 강하다. 답이 어느 근거에서 나왔는지 연결된 채로 남아 추적성(출처를 되짚어 확인하는 능력)이 높다. 단, 개념 지도를 사람이 미리 설계해 둬야 한다.
그래프 RAG — 관계를 넘나들며 추론한다
인맥 지도를 펼쳐 놓고 “A의 동료의 스승은 누구?”를 따라가는 탐정을 생각해 보자. 한 걸음이 아니라 여러 걸음을 이어 밟아 흩어진 단서를 엮는다. 그래프 RAG의 방식이다.
질문의 핵심어를 지식 그래프의 노드에 연결하고(엔티티 링킹), 그래프의 관계를 여러 단계 타고 넘으며(멀티홉) 관련된 하위 그래프를 회수해 답을 만든다. Microsoft의 GraphRAG는 문서에서 뽑은 개념들을 그래프로 엮은 뒤 라이덴 알고리즘으로 비슷한 것끼리 묶어 계층적 커뮤니티를 만들고, 묶음마다 요약을 미리 써 둔다. 덕분에 “이 자료 전체의 큰 흐름은 무엇인가” 같은 전역 질문에도 답한다.
여러 엔티티와 문서를 가로지르는 복잡한 질의에 강하다. 대신 단순 조회보다 준비와 연산 부담이 크다.
네 방식을 한 문장으로 이으면 이렇다. 벡터가 관련 정보를 찾고, 컨텍스트가 찾은 것을 날카롭게 다듬고, 온톨로지가 연결된 의미를 이해하고, 그래프가 관계를 밟아 추론한다.
네 방식 한눈에 비교
| 방식 | 핵심 동작 | 잘 맞는 곳 |
|---|---|---|
| 벡터 RAG | 유사도로 비슷한 조각 회수 | 대규모 비정형 자료 폭넓은 검색 |
| 컨텍스트 RAG | 맥락을 붙여 정밀하게 회수 | 맥락을 갖춘 정밀 검색 |
| 온톨로지 RAG | 개념·규칙 지도로 안내 | 도메인 의미·제약·계층·컴플라이언스 |
| 그래프 RAG | 관계를 밟아 다단계 추론 | 관계 중심·문서 교차 검색 |
능력별로 매긴 별점(5점 만점)은 성격 차이를 더 뚜렷하게 보여준다.
| 항목 | 벡터 | 컨텍스트 | 온톨로지 | 그래프 |
|---|---|---|---|---|
| 속도·확장성 | ★★★★★ | ★★★☆☆ | ★★★☆☆ | ★★★☆☆ |
| 검색 정확도 | ★★★☆☆ | ★★★★★ | ★★★★☆ | ★★★★☆ |
| 추론 깊이 | ★☆☆☆☆ | ★★☆☆☆ | ★★★★☆ | ★★★★★ |
| 설명 가능성 | ★☆☆☆☆ | ★★☆☆☆ | ★★★★★ | ★★★★★ |
언제 무엇을 쓰나
| 이런 상황이면 | 이 방식 |
|---|---|
| 방대한 문서 더미에서 관련된 걸 일단 빠르게 모으고 싶다 | 벡터 RAG |
| 검색 결과가 자꾸 엉뚱해서 정확도를 끌어올리고 싶다 | 컨텍스트 RAG |
| 답의 근거와 규칙 준수를 반드시 추적해야 한다 | 온톨로지 RAG |
| 여러 문서에 흩어진 관계를 엮어야 답이 나온다 | 그래프 RAG |
네 방식은 서로 싸우는 경쟁자가 아니라 함께 쓰는 도구에 가깝다. 실제 시스템은 대개 벡터로 넓게 훑고, 컨텍스트로 조각을 다듬고, 필요할 때 온톨로지나 그래프를 얹는다. 그러니 무엇이 가장 좋은지 묻기 전에, 내가 다루는 자료가 얼마나 구조를 갖췄는지 그리고 질문이 몇 단계의 사고를 요구하는지부터 살피는 편이 낫다. 그 답이 어느 갈래로 갈지를 먼저 정해 준다.
출처
- 원본 인포그래픽: @rakeshgohel01, “From retrieval to reasoning: 4 RAG patterns” (X 게시물)
- Anthropic, “Contextual Retrieval in AI Systems” — https://www.anthropic.com/engineering/contextual-retrieval
- Microsoft Research, “GraphRAG: New tool for complex data discovery” — https://www.microsoft.com/en-us/research/blog/graphrag-new-tool-for-complex-data-discovery-now-on-github/
- AWS, “What is Retrieval-Augmented Generation (RAG)?” — https://aws.amazon.com/what-is/retrieval-augmented-generation/
- IBM, “What is RAG (Retrieval Augmented Generation)?” — https://www.ibm.com/think/topics/retrieval-augmented-generation









