인지야공

인지야공/딥러닝 기초 정리/49번째 글

RAG — 검색 증강 생성, 모르는 것을 찾아서 답하기

실행: python NN_26_rag.py (검증 환경: torch 2.8.0+cu129, RTX 5080) 이 글의 수치는 전부 그 스크립트를 돌려 얻은 것이다.


모델의 지식은 가중치 안에 있다. 그런데 어제 나온 뉴스, 회사 내부 문서, 방금 바뀐 가격은 가중치에 없다. 다시 학습시킬 수도 없다(비싸고 느리다). RAG(검색 증강 생성)는 다른 길을 간다 — 필요할 때 찾아서 맥락에 넣어 준다. 그 산수와 한계를 잰다.


1. 벡터 검색 — 뜻이 가까운 것을 찾는다

문서를 토크나이저와 임베딩 편처럼 벡터로 바꿔 두고, 질문도 벡터로 바꿔 가장 가까운 것을 찾는다. 가까움의 척도는 보통 코사인 유사도(방향이 얼마나 같은가)다.

sim(q,e)=q⋅e∥q∥ ∥e∥\mathrm{sim}(q, e) = \frac{q \cdot e}{\lVert q\rVert\,\lVert e\rVert}

키워드가 겹치지 않아도 뜻이 비슷하면 가까워지는 것이 핵심이다(“강아지 사료” ↔ “반려견 먹이”).

직접 재 보기 A

문서 500개를 두고, 질문에 잡음을 섞어 가며 top-k 재현율(정답 문서를 가져온 비율)을 쟀다.

RAG

질문 잡음0.10.30.50.8
top-1 재현율100%59.6%16.2%4.2%
top-5 재현율100%81.2%37.4%15.4%

질문이 문서와 가까우면 정확히 찾지만, 질문이 흐려질수록 급격히 떨어진다. 그래서 실무는 top-1 대신 top-k를 여러 개 가져와(여기선 top-5가 훨씬 높다) 모델에게 함께 준다.


2. 외운 모델 vs 찾는 모델

직접 재 보기 B

문서 절반만 학습해 외운 모델과, 학습 없이 검색해서 읽는 RAG를 비교했다.

학습에서 본 사실본 적 없는 사실
외운 모델(파라메트릭)92.0%6.0% (무작위 5% 수준)
RAG(검색)99.6%100.0%

본 적 없는 사실에서 외운 모델은 사실상 찍는 수준(6%)이지만, RAG는 그대로 맞힌다(100%). 지식이 가중치가 아니라 검색 가능한 저장소에 있기 때문이다. 그래서 RAG는:

  • 재학습 없이 지식을 추가·수정·삭제할 수 있다(문서만 갈아 끼우면 된다).
  • 답의 출처를 댈 수 있다(어느 문서에서 왔는지).
  • 모르는 것을 지어내는 환각을 줄인다(근거를 함께 주므로).

3. 한계 — 검색이 천장이다

RAG는 마법이 아니다. 검색이 정답 문서를 못 가져오면, 모델이 아무리 똑똑해도 답은 틀린다.

직접 재 보기 C

잡음별로 검색 재현율과 최종 정답률을 함께 봤다(위 그림 오른쪽).

검색 재현율100%55.2%16.6%4.0%
최종 정답률100%57.8%20.0%9.6%

정답률이 재현율을 거의 그대로 따라간다(대각선). 재현율보다 조금 높은 것은 우연히 같은 답을 가진 다른 문서를 집은 경우뿐이다. 즉 RAG 시스템의 품질은 대부분 검색기의 품질이고, 생성 모델을 키워도 검색이 나쁘면 소용없다. 실무에서 재순위화(rerank)·하이브리드 검색(키워드+벡터)·청킹 전략에 공을 들이는 이유다.


4. 흔한 오해와 한계

  1. “RAG면 환각이 사라진다” — 줄지만 사라지지 않는다. 틀린 문서를 가져오면 근거 있어 보이는 틀린 답이 되어 오히려 위험할 수 있다.
  2. “모델을 키우면 된다” — 검색이 천장이라 소용이 적다(3절).
  3. “파인튜닝 대신 RAG” — 목적이 다르다. 지식은 RAG, 형식·말투·능력은 미세조정(LoRA 편 LoRA)이 맞다.
  4. 이 글의 실험 — 임베딩·검색·답변을 축소한 모형이다. 100%·6% 같은 수는 이 설정의 값이고, 요점은 못 본 지식은 검색이 해결하고, 검색 재현율이 천장이라는 구조다.

5. 한 문단 요약

RAG는 지식을 가중치가 아니라 밖의 저장소에 두고, 질문과 뜻이 가까운 문서를 코사인 유사도로 찾아 맥락에 넣는다. 학습에서 본 적 없는 사실을 외운 모델은 6%(무작위)만 맞혔지만 검색은 100% 맞혔다 — 재학습 없이 지식을 더하고, 출처를 댈 수 있으며, 환각이 준다. 다만 정답률은 검색 재현율을 넘지 못한다(재현율 55%면 정답률 58%). 그래서 RAG 시스템의 승부처는 생성 모델이 아니라 검색기다.


참고

표시는 이 브라우저에만 남는다. 서버로 가는 것은 없다.