**RAG(Retrieval-Augmented Generation, 검색 증강 생성)**는 LLM의 가장 큰 한계인 환각(Hallucination)과 최신/사내 데이터 미비 문제를 해결하기 위해, 관련 문서 검색 시스템과 LLM을 결합하는 최신 표준 기술입니다.
1. 텍스트 임베딩 (Embedding)이란?
단어나 문장의 **"의미적인 유사도"**를 수백~수천 차원의 숫자 벡터(Vector)로 변환하는 기술입니다.
- 예:
"강아지"와"개"는 단어 형태는 다르지만 벡터 공간 상에서 거리가 매우 가깝게 배치됩니다.
# OpenAI 임베딩 생성 예시
emb_response = client.embeddings.create(
model="text-embedding-3-small",
input="DAVHAVE 웹 개발 교육 파이프라인"
)
vector = emb_response.data[0].embedding # 1536 차원의 숫자 리스트
2. RAG 파이프라인 3단계 구조
- 문서 색인 (Indexing): 사내 PDF/매뉴얼 텍스트 분할(Chunking) $ ightarrow$ 임베딩 변환 $ ightarrow$ 벡터 데이터베이스(Vector DB)에 저장
- 검색 (Retrieval): 사용자 질문 입력 $ ightarrow$ 질문을 임베딩하여 Vector DB에서 가장 유사한 문서 Top-3 추출
- 생성 (Generation): 추출된 문서 조각을 프롬프트 맥락(Context)에 넣어 LLM에게 "이 문서를 바탕으로 답변해 줘" 요청
3. RAG 도입 시 얻는 3대 장점
- 환각 현상 최소화: AI가 검증된 검색 문서에 기반해서만 답변함.
- 사내 보안 문서 학습 비용 절감: 모델을 새로 미세조정(Fine-tuning)하지 않고도 즉시 최신 데이터 반영.
- 출처 명시 가능: 답변 끝에 참조한 문서 페이지나 링크를 제공할 수 있음.
4. 자주 묻는 질문 (Q&A)
Q. 파이낸튜닝(Fine-tuning)과 RAG 중 어떤 것을 선택해야 하나요? A. 새로운 지식을 지속적으로 업데이트하고 출처 제공이 필요한 경우 RAG가 훨씬 유리하며, 특정한 말투나 출력 포맷 스타일 자체를 고정시키고 싶을 때 파인튜닝을 선택합니다.