“아니, 왜 자꾸 틀린 정보를 말해?”
ChatGPT를 쓰면서 가장 당황스러웠던 순간...
분명히 질문에 맞는 대답을 했는데,
막상 확인해보면 사실이 아니라 허구라는 거.(다들 경험 많으실거다)
이게 바로 AI의 ‘환각 현상(Hallucination)’ 문제다.
그래서 나는 특정 도메인 정보를 정확하게 제공할 수 있는 방법을 찾기 시작했고,
그때 접하게 된 게 바로 RAG(Retrieval-Augmented Generation) 시스템이다.
직접 구축해보니 확실히 다르더라.
정확도, 응답 신뢰도, 데이터 업데이트 유연성까지 전부 향상된다.
RAG가 뭐냐면
Retrieval-Augmented Generation은 말 그대로
“검색(Retrieval)을 기반으로 생성(Generation)하는 방식”이다.
즉,
❌ AI가 기억 속에서 대답하는 구조가 아니라
✅ 외부 지식(DB나 문서)에서 실시간으로 정보를 불러와 그걸 바탕으로 답을 생성하는 구조다.
지피티가 자꾸 틀린 대답을 한 이유는, 실시간 검색 구조가 아니라 기억속에 있는 걸 꺼내와서 그런거다.
최신성이 반영이 잘 안된다고 해야할까..
기존 GPT 구조 vs RAG 구조 비교
데이터 | 학습된 정적 지식 | 실시간 외부 문서 기반 |
업데이트 | 거의 불가 | 문서만 바꾸면 즉시 반영 |
정확도 | 고정된 지식 기반 | 최신 정보 반영 가능 |
활용도 | 범용 대화 | 특정 도메인 챗봇, 지식 검색 특화 |
RAG 시스템 구조 한눈에 보기
- User Prompt 입력
- Embedding 모델이 입력 쿼리 벡터화
- 벡터DB(Chroma, FAISS 등)에서 관련 문서 검색
- 검색된 문서 + 원래 질문 → GPT에게 전달
- GPT가 종합해서 답변 생성
이게 RAG 시스템의 기본 구조다.
쉽게 말하면 “GPT에게 참조할 참고자료를 실시간으로 넘겨주는 구조”인 것이다.
실제 써본 후기: 문서 챗봇 만들기
나는 한 프로젝트에서
내부 사규와 업무 프로세스가 담긴 PDF 100개를 넣고
GPT 기반 문서 상담 챗봇을 만들었다.
그냥 GPT에 “이 문서 읽고 답변해줘” 해봤자 토큰 초과에다 엉뚱한 말만 하거든.
그래서 RAG 구조를 도입했더니…
- 질문에 정확히 문서 내 항목을 인용해서 답함
- 수정된 문서를 바로 반영할 수 있음
- GPT가 헛소리를 거의 안 함
진짜 체감 확 왔다.
그 후로 나는 어떤 GPT 프로젝트를 할 때든
“RAG 구조부터 짜고 간다.”
RAG 구현에 필요한 구성요소
- Embedding 모델
- 예: OpenAI text-embedding-ada-002, bge-small-ko, E5, Instructor
- 질문과 문서의 의미를 숫자 벡터로 바꾸는 역할
- 벡터 데이터베이스
- 예: FAISS, Chroma, Weaviate
- 의미가 비슷한 문서를 빠르게 찾아줌
- LLM (GPT 등)
- 검색된 문서를 기반으로 자연어로 답변 생성
- 문서 분할 & 전처리
- 너무 긴 문장은 쪼개고, 불필요한 부분 제거
- Chunking이 품질 좌우함 (보통 300~500 tokens)
- LangChain or LlamaIndex
- 위 요소를 연결하는 파이프라인 구축 툴
RAG가 특히 빛나는 분야
- 기업 지식 챗봇 (FAQ + 문서 검색 + 답변)
- 뉴스 요약 & 인용 기반 Q&A
- 논문 기반 연구 보조 챗봇
- 법률/세무/보험 등 정확한 근거 기반 응답이 중요한 분야
- 교육 플랫폼 내 교재 + 질문 답변
주의할 점도 있다
- 검색된 문서 품질이 낮으면 답변도 이상해짐
→ Garbage In, Garbage Out - 문서 분할 기준이 부정확하면 문맥 깨짐
→ 문단 단위 or 의미 기준으로 쪼개는 게 중요 - 프롬프트 설계가 여전히 필요함
→ 예: “다음 문서를 기반으로, 한국어로 정확하고 간결하게 설명해줘.” - 임베딩 모델 선택에 따라 정확도가 달라짐
→ 한글 문서면 무조건 한국어 임베딩 써야 함!
결론: 진짜 실무는 RAG부터 시작이다
GPT가 아무리 똑똑해도,
기억은 2023년 기준으로 멈춰 있고,
사실 확인 없이 말하는 능력은 여전히 치명적이다.
(물론 버전5가 나오고 나서는 조금 개선됐을지도?)
그럴 땐 답은 단 하나다.
“문서를 읽혀라. 그리고 그걸 GPT에게 넘겨줘라.”
이게 RAG다.
이제 진짜 쓸 만한 AI 시스템을 만들고 싶다면
RAG 구조는 선택이 아니라 필수다.
FAQ
1. RAG 시스템은 GPT API 없이도 가능한가요?
가능합니다. 오픈소스 LLM(Mistral, LLaMA 등)을 쓰면 GPT 없이도 구현 가능합니다.
2. GPT-4에 RAG 붙이면 더 좋아지나요?
훨씬 좋아집니다. 정확도와 신뢰도 모두 상승합니다.
3. 코드 없이 RAG 시스템 만들 수 있나요?
LangChain의 Streamlit 데모나 LlamaIndex 기반 GUI 도구를 활용하면 비교적 쉽게 가능합니다.
4. 어떤 벡터DB가 가장 좋나요?
FAISS는 속도가 빠르고 가볍고, Chroma는 LangChain과 연동이 쉬워서 추천됩니다.
5. 한글 문서 처리도 잘 되나요?
한국어 특화 임베딩 모델을 쓰면 RAG의 성능이 확실히 올라갑니다.
오늘도 긴 포스팅 읽어주셔서 감사합니다!
모두 즐거운 하루 보내세요 *^^*