LLM에게 인덱스에 없는 도시(예: 신장)에 대해 질문하면, 실제 지진 규모 7.1을 6.1이라고 답하는 것처럼 그럴듯하지만 틀린 답을 내놓습니다. 같은 질문을 인덱스에 포함된 도시에 대해 물으면 정확한 답이 나옵니다. 이 차이가 이 시리즈의 출발점입니다 — 아무리 큰 LLM도 검색이라는 외부 장치와 결합하지 않으면, “안다고 착각하는 것"과 “정말로 아는 것"을 스스로 구분하지 못합니다.
LLM만으로는 부족한 세 가지 이유
검색이 필요한 이유는 크게 세 가지입니다. 첫째, 지식의 시점 제한(Knowledge cutoffs)입니다 — 모델 파라미터는 특정 시점까지의 데이터로만 학습되어 최신 정보를 모릅니다. 둘째, 비공개 데이터(Private data)입니다 — 회사 내부 문서처럼 애초에 모델 학습에 쓰이지 않은 데이터가 있습니다. 셋째, 학습 실패(Learning failures)입니다 — LLM 시리즈 07장에서 다룬 것처럼, 설령 학습 데이터에 포함되었던 내용이라도 모델이 정확히 기억·재현하지 못할 수 있습니다. RAG(Retrieval-Augmented Generation)는 이 세 가지 한계를 “모델이 가진 지식의 범위를, 검색 대상 문서의 범위로 명시적으로 제한·보강"하는 방식으로 우회합니다.
Patrick Lewis 외, “Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks”, arXiv:2005.11401 (2020) — RAG라는 이름 자체가 이 논문에서 나왔습니다.
이 시리즈가 다루는 범위
이 시리즈는 검색(Retrieval)의 고전 이론에서 시작해 LLM과 결합하는 지점까지를 다룹니다. 역색인·TF-IDF·BM25 같은 Sparse Retrieval, BERT 기반 Dense Retrieval, 검색과 생성을 잇는 RAG 파이프라인, 텍스트 대신 지식그래프를 검색하는 GraphRAG, 정형 데이터베이스를 자연어로 조회하는 MCP 기반 Text2SQL, 그리고 검색 품질을 끌어올리는 Cross-Encoder를 직접 학습시키는 방법까지가 범위입니다. LLM 자체의 아키텍처는 LLM 밑바닥부터 이해하기 시리즈를, 멀티모달 검색에 쓰이는 CLIP 같은 모델은 Vision AI 파운데이션 시리즈를 전제로 합니다.
커리큘럼
| 챕터 | 제목 | 핵심 질문 |
|---|---|---|
| 01 | Classical IR | 단어가 정확히 일치해야만 검색이 되는가 |
| 02 | Dense Retrieval | 의미가 비슷한 문서를 어떻게 신경망으로 찾는가 |
| 03 | RAG 파이프라인 구축 | 검색된 문서를 LLM에 어떻게 넘겨야 하고, 그 결과를 어떻게 평가하는가 |
| 04 | 고차원 근사 검색 | 임베딩이 수백 차원일 때도 빠르게 검색할 수 있는가 |
| 05 | GraphRAG | 문서 대신 지식그래프를 검색하면 무엇이 달라지는가 |
| 06 | MCP 기반 Text2SQL | LLM이 정형 데이터베이스를 안전하게 조회하려면 |
| 07 | Cross-Encoder 파인튜닝 | 재정렬 모델은 무엇을 정답·오답으로 학습하는가 |
01–02장은 검색 자체의 두 갈래(Sparse·Dense)를, 03–04장은 그 검색을 LLM 생성과 실제로 결합하는 방법을, 05–07장은 텍스트 문서를 넘어선 확장(그래프, 정형 데이터, 재정렬 모델 직접 학습)을 다룹니다. 이 순서를 따르는 이유는 05–07장에서 다루는 응용이 모두 01–04장에서 다지는 검색·유사도 계산의 기본기를 전제하기 때문입니다. BM25·Dense Retrieval에 익숙하다면 01–02장을 건너뛰고 03장부터 시작해도 무리가 없습니다. 검색 질의를 검색에 유리한 형태로 바꾸는 쿼리 재작성(HyDE)과, 완성된 파이프라인의 품질을 정량적으로 측정하는 평가 프레임워크(RAGAS)는 별도 장을 두지 않고 03장 안에서 함께 다룹니다.
flowchart LR
ch01["01 Classical IR"] --> ch02["02 Dense Retrieval"]
ch02 --> ch03["03 RAG 파이프라인"]
ch03 --> ch04["04 근사 검색"]
ch04 --> ch05["05 GraphRAG"]
ch04 --> ch06["06 MCP Text2SQL"]
ch04 --> ch07["07 Cross-Encoder"]
학습 결과
이 시리즈를 완주하면 “이 검색 문제에는 Sparse가 나은가 Dense가 나은가”, “재정렬(re-ranking)이 필요한 상황인가”, “텍스트 검색으로 충분한가 아니면 그래프·정형 데이터 결합이 필요한가"를 판단할 수 있게 됩니다. 이는 실무에서 RAG 시스템을 설계할 때 청킹 전략, 검색 트리거 시점, Bi-encoder와 Cross-encoder의 조합 같은 구체적인 설계 선택을 “왜 그렇게 해야 하는가"까지 설명하며 내리는 역량으로 이어집니다.
다음 장에서는 신경망 이전부터 검색 엔진의 근간이 되어 온 역색인·TF-IDF·BM25를 다룹니다.
![Featured image of post [RAG] 00. Introduction: RAG와 정보검색](/post/rag-and-retrieval/getting-started-rag-and-retrieval/wordcloud_hu_4c3eeff6e9e2f180.webp)
![[RAG] 00. Introduction: RAG와 정보검색](/post/rag-and-retrieval/getting-started-rag-and-retrieval/wordcloud_hu_c8242c9c0b4e63d0.webp)
![[RAG] 01. Classical IR — 역색인, TF-IDF, BM25](/post/rag-and-retrieval/classical-information-retrieval/wordcloud_hu_420f03aeea398218.webp)
![[RAG] 02. Dense Retrieval — BERT로 의미를 검색하기](/post/rag-and-retrieval/dense-retrieval-fundamentals/wordcloud_hu_1b82ae9cb449d940.webp)
![[RAG] 03. RAG 파이프라인 구축 — Retriever-Reader](/post/rag-and-retrieval/rag-pipeline-fundamentals/wordcloud_hu_a07e7f8fe0df8e27.webp)
![[RAG] 04. 고차원 근사 검색 — LSH와 그래프 인덱스](/post/rag-and-retrieval/approximate-nearest-neighbor-search/wordcloud_hu_c6a9052b0fd92cdd.webp)
![[RAG] 07. Cross-Encoder 파인튜닝 — InfoNCE로 재정렬 모델 학습하기](/post/rag-and-retrieval/cross-encoder-fine-tuning/wordcloud_hu_400a9aa73fcdab9f.webp)
![[RAG] 05. GraphRAG — 지식을 그래프로 검색하기](/post/rag-and-retrieval/graph-rag-fundamentals/wordcloud_hu_7aa2074581588021.webp)