RAG란 무엇인가 — AI에게 책을 펼쳐주는 기술
한줄 요약
RAG는 AI에게 시험 전날 모든 교재를 외우게 하는 대신, 시험장에 오픈북을 허용하는 방식이다.
본문
AI의 근본적인 한계
ChatGPT나 Claude에게 “오늘 코스피 지수가 얼마야?”라고 물어보면 대부분 “제 학습 데이터 기준일 이후의 정보는 모릅니다”라고 한다. 그게 솔직한 답변이다.
하지만 솔직하지 않을 때가 더 문제다. 모르는 걸 그럴싸하게 지어내는 것 — 이걸 할루시네이션(Hallucination)이라 한다. AI가 없는 논문을 인용하고, 틀린 수치를 자신 있게 말하고, 오래된 정보를 최신인 것처럼 제공하는 이유가 여기 있다.
왜 이런 일이 생기는가? AI는 학습 데이터의 패턴을 압축해서 파라미터에 저장한 것이다. 어떤 정보가 파라미터 어디에 어떻게 저장됐는지 모른다. 꺼내려 하면 원래 정보와 다른 형태로 나올 수 있다. 그리고 학습이 끝난 이후의 정보는 아예 없다.
RAG의 탄생
2020년 Facebook AI Research(현 Meta AI)에서 Lewis et al.이 논문을 발표했다. 제목은 “Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks”. 여기서 RAG라는 이름이 붙었다.
핵심 아이디어는 단순했다:
AI가 답하기 전에 관련 문서를 먼저 찾아서 AI에게 제공하면 어떨까?
오픈북 시험처럼. 학생이 모든 걸 외울 필요 없이, 교재를 보면서 답을 찾게 하는 것이다. AI가 더 정확해지고, 최신 정보를 쓸 수 있게 된다.
RAG가 동작하는 방식
사용자: "삼성서울병원의 당뇨 입원 기준이 뭔가요?"
1. 검색 (Retrieval)
→ 질문을 벡터로 변환
→ 병원 내부 문서 DB에서 관련 문서 검색
→ "당뇨 입원 지침 v3.2", "혈당 관리 프로토콜" 등 3~5개 문서 발견
2. 증강 (Augmentation)
→ 발견한 문서 내용을 프롬프트에 추가
→ AI에게 보내는 실제 프롬프트:
"[참고 문서]
당뇨 입원 기준 (2025.06 개정):
- HbA1c > 11% 이상 또는
- 공복혈당 300 이상 반복...
[질문]
삼성서울병원의 당뇨 입원 기준이 뭔가요?"
3. 생성 (Generation)
→ AI가 참고 문서를 바탕으로 답변 생성
→ "삼성서울병원 기준에 따르면, HbA1c 11% 초과 또는..."
AI가 자체 기억에 의존하지 않는다. 방금 검색한 문서를 보고 답한다.
RAG의 3가지 핵심 구성요소
- 문서 저장소
답변의 근거가 될 문서들을 저장하는 곳. 병원의 진료 지침, 약물 DB, 논문, 내부 문서 등. 중요한 건 이 문서들이 벡터(숫자 배열) 형태로 변환되어 저장된다는 점이다.
- 검색 엔진 (Retriever)
사용자 질문과 가장 관련 있는 문서를 찾는 시스템. 키워드 검색이 아니라 의미 기반 검색이다. “심장 문제”로 검색해도 “심근경색 관리 프로토콜”이 나온다.
- 생성 모델 (Generator)
검색된 문서를 참고해서 자연어 답변을 만드는 LLM.
RAG vs 일반 LLM
| 일반 LLM | RAG | |
|---|---|---|
| 지식 범위 | 학습 데이터까지만 | 외부 DB와 연결 가능 |
| 최신성 | 학습 컷오프 이후 모름 | 실시간 업데이트 가능 |
| 할루시네이션 | 높음 | 낮음 (근거 문서 있음) |
| 근거 제시 | 불가능 | 출처 문서 표시 가능 |
| 비용 | 낮음 | 높음 (검색 + 생성) |
| 지연 시간 | 낮음 | 높음 (검색 시간 추가) |
의료 현장에서 RAG가 중요한 이유
의료는 RAG가 가장 필요한 도메인 중 하나다.
- 진료 가이드라인은 매년 바뀐다. 2022년 기준 당뇨 치료 가이드를 2026년에 쓰면 안 된다
- 병원마다 내부 프로토콜이 다르다. A병원의 항생제 처방 기준과 B병원이 다르다
- 틀린 의료 정보의 비용은 크다
RAG를 쓰면:
- “이 병원 현재 프로토콜 기준으로” 답할 수 있다
- 답변 근거 문서를 같이 제시할 수 있다
- 가이드라인이 바뀌면 문서만 업데이트하면 AI도 즉시 업데이트된다
다음 글에서 RAG의 핵심 기술인 벡터 데이터베이스와 임베딩을 다룬다.