| Released | 2020-05 |
|---|---|
| Developed by | Meta AI (Lewis et al., FAIR) |
| Type | Technique |
| Aliases | RAG, rag |
| Related | AI 에이전트, 에이전틱 AI, API, GPT-5.5 |
무엇인가
검색 증강 생성(RAG)은 AI가 질문에 답할 때 자기 머릿속 지식만 쓰는 게 아니라, 먼저 외부 자료를 찾아본 뒤 그걸 읽고 답하게 하는 방식이다.
비유하자면 시험 보는 학생이 두 명 있다고 생각해 보자. 한 명은 평소 외운 것만으로 답을 쓰고, 다른 한 명은 책을 펼쳐 관련 페이지를 먼저 찾은 뒤 그 내용을 보고 답을 쓴다. RAG는 두 번째 학생이다.
왜 필요한가
언어 모델은 학습이 끝난 시점까지의 지식만 알고, 그 이후의 새 사건이나 회사 내부 문서 같은 건 모른다. 또 모델은 가끔 그럴듯하지만 틀린 답을 자신만만하게 지어내는 문제(흔히 환각이라 부른다)를 안고 있다.
RAG는 이 두 문제를 동시에 누른다. 답하기 전에 진짜 자료를 먼저 보여주니까, 모델이 추측 대신 근거를 보고 답할 수 있다.
어떻게 작동하나
RAG의 흐름은 크게 세 단계다.
- 검색 — 사용자 질문을 받으면, 미리 준비해 둔 문서 데이터베이스에서 질문과 관련 있는 조각을 찾아낸다.
- 주입 — 찾은 문서 조각을 질문과 함께 모델 프롬프트에 넣는다. "다음 자료를 참고해서 이 질문에 답하라" 같은 식이다.
- 생성 — 모델이 그 자료를 읽고 답을 만든다. 답에는 보통 어느 문서에서 가져왔는지 출처도 같이 붙는다.
어디에 쓰이나
회사가 사내 매뉴얼로 챗봇을 만들 때, 의료·법률처럼 정확한 근거가 중요한 분야의 어시스턴트, 그리고 [[ai-agent]]가 웹을 검색해 최신 정보를 가져올 때 모두 RAG 패턴이 쓰인다. ChatGPT의 검색 기능이나 검색 엔진의 AI 요약도 본질적으로 RAG다.
한계
검색이 잘못되면 답도 잘못된다. 엉뚱한 문서를 가져오면 모델은 그 잘못된 자료를 근거 삼아 자신 있게 틀린 답을 내놓는다. 그래서 좋은 RAG 시스템을 만들려면 모델 못지않게 검색의 품질이 중요하다.
핵심 구성
RAG 시스템은 보통 세 컴포넌트로 나뉜다.
- 인덱싱 파이프라인: 원본 문서를 청크로 자르고, 임베딩 모델로 벡터화한 뒤 벡터 DB에 저장한다.
- 리트리버: 사용자 질의를 같은 임베딩 공간에 넣고 코사인 유사도 등으로 top-k 청크를 뽑는다.
- 제너레이터: 검색된 청크를 시스템 프롬프트나 컨텍스트 윈도에 끼워 넣고 LLM이 답을 만든다.
실무 도구 스택
- 벡터 DB: pgvector, Qdrant, Weaviate, Pinecone, Chroma. 데이터 규모와 운영 환경에 따라 고른다.
- 임베딩: OpenAI
text-embedding-3-large, Cohere embed v3, 한국어라면 BGE-M3·KURE 같은 모델. - 오케스트레이션: LangChain, LlamaIndex, Haystack. 직접 짜도 충분하다 — 핵심 로직은 의외로 단순하다.
- 재랭커(reranker): Cohere Rerank, BGE-Reranker. top-k를 더 정확히 정렬해 답 품질을 끌어올리는 표준 한 수.
자주 쓰는 패턴
Hybrid search. 임베딩 유사도(semantic)만으로는 고유명사·정확한 코드명에 약하다. BM25 같은 키워드 검색을 병행해 두 결과를 합치면 리콜이 눈에 띄게 좋아진다.
Query rewriting. 사용자의 짧은 질문을 LLM이 한 번 다시 써서 검색 쿼리로 만든다. "그거 어떻게 했지?" 같은 모호한 질의에서 특히 효과가 크다.
Chunking. 너무 잘게 자르면 맥락이 끊기고, 너무 크면 노이즈가 끼어 답이 흐려진다. 보통 300–800 토큰에 50–100 토큰 오버랩이 출발점이고, 문서 구조(헤딩·문단)를 살려 자르는 게 일관되게 더 낫다.
Citation 강제. 시스템 프롬프트에서 "각 주장 뒤에 [doc_id] 형식으로 출처를 달라"고 못 박아 두면 사용자도 검증할 수 있고 환각 자체도 줄어든다.
평가
RAG는 모델 평가와 검색 평가를 따로 봐야 한다. RAGAS, TruLens 같은 라이브러리가 retrieval recall, answer faithfulness, answer relevancy를 계산해 준다. "답이 그럴듯한가"가 아니라 "검색된 문서에서 실제로 도출된 답인가"를 묻는 게 핵심이다.
에이전트와의 관계
[[ai-agent]] 시대에 들어서면서 단순한 retrieve-then-generate 한 번이 아니라, 모델이 도구처럼 검색을 여러 번 호출하는 [[agentic-ai]] 패턴이 표준으로 자리 잡고 있다. [[gpt-5-5]] 같은 최신 모델은 [[api]] 호출 한 번 안에서 스스로 검색·필터링·재질의를 반복한다.
정의와 기원
검색 증강 생성(Retrieval-Augmented Generation)은 Lewis et al.(2020)1이 NeurIPS에 발표한 동명의 논문에서 형식화되었다. 사전학습된 seq2seq 생성기(BART)와 dense passage retriever(DPR)를 end-to-end로 결합하여, 파라미터에 모든 지식을 저장하지 않고도 open-domain QA에서 closed-book LLM을 능가했다.
원 논문은 두 변형을 제시한다. RAG-Sequence는 한 출력 시퀀스 전체에 같은 검색 문서 집합을 사용하고, RAG-Token은 토큰마다 다른 문서를 marginalize한다. 형식적으로는 다음과 같이 표현된다.
p(y|x) ≈ Σ_{z ∈ top-k(p(·|x))} p_η(z|x) · p_θ(y|x, z)
여기서 z는 검색된 문서, p_η는 retriever, p_θ는 generator다.
이후 흐름
2020년 이후 RAG는 크게 두 갈래로 발전했다.
프롬프트-시간 retrieval (in-context RAG)
모델 파라미터를 건드리지 않고 검색된 컨텍스트를 프롬프트에 주입하는 단순한 방식이 압도적으로 우세해졌다. ChatGPT browsing, Perplexity, Bing Chat이 모두 이 갈래다. dense retrieval은 sentence-transformers·E5·BGE 같은 contrastive 사전학습 임베딩으로, sparse retrieval은 SPLADE·BM25로 굳어졌다.
파라메트릭 통합
REALM(Guu et al., 2020), Atlas(Izacard et al., 2022), RETRO(Borgeaud et al., 2022)는 retrieval을 학습 단계에 통합해 cross-attention으로 검색된 청크를 직접 모델에 주입한다. 학계 관심은 꾸준하지만 운영 비용 때문에 산업계는 in-context RAG를 더 선호한다.
Long-context vs RAG
100만 토큰 컨텍스트 모델이 등장하면서 "RAG는 곧 사라질 것인가" 논의가 반복되었지만, 비용·지연·정확도 측면에서 RAG는 여전히 유리하다(lost-in-the-middle 현상2). 두 접근은 보완적이다.
Agentic retrieval
최근 흐름은 retrieval을 단발 호출이 아니라 [[ai-agent]]가 호출하는 도구로 모델링한다. ReAct(Yao et al., 2022), Self-RAG(Asai et al., 2023)는 모델 스스로 언제·무엇을·몇 번 검색할지 결정한다. [[agentic-ai]] 시스템에서 [[reinforcement-learning-from-verifiable-rewards]]로 retrieval-then-reason 정책을 학습시키는 작업이 활발하다.
핵심 한계
- Retriever bottleneck. 검색되지 않은 사실은 생성될 수 없다. recall@k가 낮으면 generator가 아무리 좋아도 답이 틀린다.
- Distractor sensitivity. Liu et al.(2024)는 관련 없는 청크가 함께 들어가면 정답률이 급락함을 보였다. 재랭킹과 noise filtering이 사실상 필수다.
- Citation faithfulness. 모델이 출처를 명시해도 실제로는 그 출처에 없는 내용을 인용하는 경우가 흔하다. attribution 평가(Bohnet et al., 2022)가 별도 연구 분야로 자리 잡았다.
- Multi-hop reasoning. 두 문서 이상을 조합해야 하는 질문에서 단발 retrieval은 약하다. iterative·decomposition 접근이 필요하다.
평가 벤치마크
Natural Questions, TriviaQA, HotpotQA, FEVER가 고전적이고, 최근에는 KILT, BEIR, RAGTruth, MIRAGE 같은 RAG 특화 벤치마크가 통용된다. 평가 차원은 retrieval quality(recall, MRR), grounded answer quality(faithfulness, attribution), end-task accuracy로 나뉜다.
- Lewis, P. et al. (2020). Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks. NeurIPS 2020.↩
- Liu, N. F. et al. (2024). Lost in the Middle: How Language Models Use Long Contexts. TACL.↩