AI ML
Retrieval-Augmented Generation (RAG)
DevOps Engineer
2025. 4. 20. 18:00
728x90
RAG는 LLM(예: GPT)이 외부 지식(문서, DB 등)을 검색해서, 그걸 바탕으로 답변을 생성하는 방식이에요.
Retrieval-Augmented Generation, 줄여서 RAG는 요즘 AI 기반 Q&A 시스템, 문서 요약, 챗봇 등에 가장 널리 쓰이는 핵심 기술입니다.
왜 필요한가?
일반 LLM (예: GPT, Claude)은 학습된 지식만 알고 있어요.
→ 최신 정보나 특정 기업 문서 같은 건 못 알아요.
해결책: RAG
외부 지식을 검색 + 요약해서 답변하도록 함
RAG 구조
[ 사용자 질문 ]
↓
[ 1. 검색기 (Retriever) ]
↓ ← 벡터 DB에서 관련 문서 검색
[ 관련 문서 ]
↓
[ 2. LLM ]
↓ ← 검색된 문서를 Prompt에 포함해 응답 생성
[ 정답 생성 ]
구성요소
구성 | 역할 | 예시 도구 |
벡터 DB | 문서 임베딩 저장 & 검색 | Qdrant, Weaviate, Pinecone |
임베딩 모델 | 텍스트 → 벡터 변환 | HuggingFace, OpenAI |
Retriever | 질문에 유사한 문서 찾기 | LangChain, LlamaIndex |
LLM | 답변 생성 | GPT, Claude, Mistral, LLaMA |
장점
장점 | 설명 |
실시간 지식 반영 | DB 업데이트만 하면 됨 (LLM 재학습 불필요) |
프라이빗 데이터 반영 | 사내 문서, 매뉴얼, 고객 정보 등 |
저비용 학습 | Fine-tuning 없이도 고품질 응답 가능 |
예시: Tesla 매뉴얼 RAG
- 사용자 질문: “How to reset TPMS?”
- 벡터 DB에서 매뉴얼 문서 chunk 검색
- 검색된 내용을 포함한 prompt 생성:
- GPT가 이 문맥을 읽고 자연어 답변 생성
Context: "To reset TPMS, go to Settings > Service > Reset TPMS"
Q: How do I reset TPMS?
A: ...
RAG 없으면?
LLM은 “몰라도 아는 척” 하면서 **헛소리(hallucination)**를 할 수 있어요.
→ RAG는 그런 헛소리를 줄이고, 정확한 정보에 기반한 응답을 생성해 줍니다.
RAG는 “검색(Search)” + “생성(Generate)”을 합친 방식
최신 AI 시스템(예: ChatGPT + 웹브라우저 플러그인, 기업 Q&A 봇 등)의 핵심입니다.
Q. LLM 추론에 필요한 토큰 소비??
왜 RAG는 토큰을 더 쓰게 될까?
RAG는 질문과 함께 검색된 문서(Context)도 LLM에 넣기 때문에,
→ 입력 토큰(Input tokens)이 훨씬 많아집니다.
방식 | 입력 길이 | 설명 |
일반 LLM | 10~50 tokens | 사용자 질문만 |
RAG LLM | 1000~2000 tokens | 질문 + 검색된 문서들 포함 |
GPT-3.5 기준 토큰 비용
구분 | 단가 (/1K token) |
입력 | $0.0015 |
출력 | $0.0020 |
예시: RAG 응답 1회 비용
입력: 1200 tokens = $0.0018
출력: 300 tokens = $0.0006
합계 ≈ $0.0024 (기존 대비 2~5배)
그렇다고 꼭 손해일까?
항목 | 일반 LLM | RAG 기반 LLM |
질문 커버 범위 | 제한적 (사전 학습) | 외부 지식 반영 가능 |
최신성 | ❌ 불가 | ✅ 실시간 가능 |
도메인 문서 반영 | ❌ 불가 | ✅ 가능 |
정답률 | 낮음 (헛소리 가능) | 높음 (정확한 출처 기반) |
실제 효과 예
예를 들어,
- GPT-4만 쓰면 응답 1회 $0.06
- GPT-3.5 + RAG 쓰면 $0.0024로 25배 절감 + 정확도↑
RAG 토큰 최적화 전략
전략 | 설명 |
chunk 크기 최적화 | chunk_size=300~500, 너무 긴 문서 입력 방지 |
Top-K 제한 | 상위 2~3개 문서만 LLM에 전달 |
문서 길이 제한 | 문장 수 또는 토큰 수 기준 슬라이스 |
압축 Retriever 사용 | 검색된 문서를 요약한 뒤 전달 (e.g. MapReduce RAG) |
Prompt 압축 | “Q: … A: …” 양식 등으로 간결화 |
질문 | 답 |
RAG가 토큰 더 쓰나요? | Yes, 입력 토큰 증가함 |
그런데도 쓸 가치 있나요? | Yes, 훨씬 정확하고 의미 있음 |
최적화 가능하나요? | 충분히 가능, 비용 절감 전략도 다양함 |
728x90