RAG
Jump to navigation
Jump to search
RAG
Overview
RAG(Retrieval-Augmented Generation)은 외부 지식베이스에서 관련 정보를 검색하여 LLM 응답의 정확성과 최신성을 향상시키는 아키텍처. Hallucination 감소가 주요 목적.
Summary
- * 무엇인가? 검색+생성 하이브리드 아키텍처. LLM에 외부 지식 제공
- * 왜 필요한가? LLM의 Hallucination 감소. 최신 정보 반영
- * 언제 사용하는가? QA 시스템, 지식 기반 챗봇, 문서 검색
---
Purpose
이 문서가 존재하는 이유
- Goal: RAG의 개념, 사용법, 설정 가이드 제공
- Scope: 기본 개념, 설치/설정, 사용 예제, 모범 사례
- Non-goals: 고급 커스터마이징, 내부 소스 코드 분석
---
Key Concepts
---
Architecture
RAG는 3단계 파이프라인: (1) Indexing: 문서 -> 청킹 -> 임베딩 -> 벡터 DB 저장, (2) Retrieval: 질문 -> 임베딩 -> 유사도 검색 -> 상위 k 문서, (3) Generation: 검색 결과 + 질문 -> LLM 응답.
---
Workflow
1. 1. 데이터 수집 및 청킹 (100-500 토큰)
2. 2. 임베딩 모델로 벡터 생성 (text-embedding-3-small)
3. 3. 벡터 DB에 저장 (Pinecone, Weaviate, Milvus)
4. 4. 사용자 질문 -> 임베딩 -> 유사도 검색
5. 5. 검색 결과 + 질문 -> LLM 프롬프트 구성
6. 6. LLM 응답 생성 + 출처 참조
---
Configuration
{config_code}---
Best Practices
- 청크 크기 100-500 토큰으로 최적화
- 임베딩 모델은 text-embedding-3-small 권장
- 벡터 DB는 Milvus/Pinecone/Weaviate 중 선택
- 검색 결과 k=3-5로 정확도/속도 균형
- 출처 참조(Latitude) 필수로 포함
---
Limitations
- 검색 품질이 응답 정확도 결정
- 벡터 DB 관리 오버헤드
- 대용량 문서 처리 시 지연 발생
---
References
---