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

 

  1. 사용자 질문: “How to reset TPMS?”
  2. 벡터 DB에서 매뉴얼 문서 chunk 검색
  3. 검색된 내용을 포함한 prompt 생성:

  4. 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