RAG란 무엇인가 — 외부 지식을 LLM에 연결하는 법
한줄 요약
RAG는 LLM에게 오픈북 시험을 치르게 하는 기술이다 — 모르는 건 찾아보고 답한다.
본문
LLM의 치명적 약점
LLM은 학습 시점까지의 데이터만 알고 있다. 이 말은 곧:
- 2024년 이후 논문: 모른다
- 우리 병원 프로토콜: 모른다
- 특정 환자의 차트: 당연히 모른다
- 최신 가이드라인 개정: 반영 안 됨
게다가 모르는 걸 물으면 아는 척하며 그럴듯한 거짓말을 한다. 이걸 환각(Hallucination)이라 부른다.
진료실에서 비유하면: 5년 전 교과서만 읽은 레지던트에게 최신 가이드라인을 물어보는 것과 같다.
RAG = 전자차트 + 레지던트
RAG(Retrieval-Augmented Generation) 는 이 문제를 해결하는 아키텍처다.
작동 원리를 전자차트 비유로 설명하면:
[기존 LLM]
교수: "이 환자 약 뭐 쓰고 있지?"
레지던트: "아마... 아토르바스타틴... 아닌가요?" (환각)
[RAG가 적용된 LLM]
교수: "이 환자 약 뭐 쓰고 있지?"
레지던트: (전자차트를 검색) "아토르바스타틴 20mg, 암로디핀 5mg입니다." (정확)
RAG의 3단계 프로세스
1. 질문 입력
└→ "이 환자의 최근 HbA1c 추이는?"
2. 검색 (Retrieval)
└→ 벡터 DB에서 관련 문서 검색
└→ 환자 차트, 검사 결과, 가이드라인 등
3. 생성 (Generation)
└→ 검색된 문서 + 질문을 LLM에 전달
└→ "최근 3개월간 HbA1c: 7.2 → 6.8 → 6.5로 개선 추세입니다.
현재 메트포르민 1000mg으로 목표치(7.0 미만)를 달성했습니다."
| 단계 | 비유 | 기술 |
|---|---|---|
| 질문 | 교수의 질문 | 사용자 프롬프트 |
| 검색 | 전자차트 조회 | 벡터 DB + 임베딩 검색 |
| 생성 | 레지던트의 답변 | LLM이 검색 결과 기반으로 생성 |
벡터 DB란?
일반 데이터베이스는 키워드로 검색한다. “고혈압”을 검색하면 “고혈압”이라는 글자가 있는 문서만 나온다.
벡터 DB는 의미로 검색한다. “혈압이 높은 환자의 관리”를 검색하면 “HTN management”, “항고혈압제”, “BP control” 등 의미적으로 관련된 문서가 모두 나온다.
이게 가능한 이유는 텍스트를 벡터(숫자 배열) 로 변환하기 때문이다. 의미가 비슷한 문장은 벡터 공간에서 가까운 위치에 놓인다.
"고혈압 치료" → [0.82, 0.15, 0.93, ...]
"HTN management" → [0.81, 0.14, 0.91, ...] ← 가까움!
"요리 레시피" → [0.12, 0.88, 0.03, ...] ← 멀음
의료 분야에서 RAG가 중요한 이유
1. 환각 감소
RAG는 LLM이 “찾아본 문서”를 기반으로 답변하기 때문에, 근거 없는 답변(환각)이 크게 줄어든다. 출처도 함께 제시할 수 있다.
2. 최신 정보 반영
새 가이드라인이 나오면 벡터 DB에 추가하기만 하면 된다. LLM 자체를 재학습시킬 필요가 없다.
3. 기관별 맞춤
우리 병원의 프로토콜, 약품 목록, EMR 데이터를 벡터 DB에 넣으면, 우리 병원에 최적화된 AI 어시스턴트가 된다.
4. 개인정보 보호
환자 데이터를 외부 LLM에 보내지 않고, 병원 내부 서버의 벡터 DB에서만 처리할 수 있다.
현재 사용 가능한 RAG 기반 의료 도구
| 도구 | 용도 | 특징 |
|---|---|---|
| Consensus | 논문 검색 + 요약 | 실제 논문 기반 답변, 출처 링크 제공 |
| Elicit | 연구 질문 답변 | 논문 자동 분석, 메타분석 지원 |
| Perplexity | 범용 검색 + 생성 | 실시간 웹 검색 기반, 출처 명시 |
| NotebookLM | 내 문서 기반 Q&A | 논문/가이드라인 업로드 후 질의 |
핵심 정리
- RAG = 검색(Retrieval) + 생성(Generation). LLM에게 참고자료를 주고 답하게 하는 기술
- 환각을 줄이고, 최신 정보를 반영하며, 기관별 맞춤이 가능
- 벡터 DB는 의미 기반 검색으로 키워드 한계를 극복
임상 적용
| 활용 시나리오 | 방법 |
|---|---|
| 최신 논문 기반 답변 | Consensus, Elicit 사용 |
| 내 논문/자료 기반 Q&A | NotebookLM에 PDF 업로드 |
| 병원 프로토콜 AI | 사내 RAG 시스템 구축 (IT팀 협업) |
| 환각 검증 | AI 답변의 출처 링크를 반드시 클릭해서 확인 |
관련 글
- [[what-is-token-llm|토큰이란 무엇인가 — LLM의 언어 단위 이해하기]]
- [[llm-context-window-explained|LLM의 컨텍스트 윈도우, 의사처럼 이해하기]]
- [[prompt-engineering-for-doctors|프롬프트 엔지니어링 기초 — 의사를 위한 실전 가이드]]
© S-Reborn clinic | s-reborn-blog.pages.dev