왜 RAG가 중요한가
검색 증강 생성(RAG)은 LLM 응답을 자신의 데이터에 기반시키는 가장 실용적인 방법입니다. 하지만 생산 준비가 된 시스템을 구축하려면 단순히 벡터 데이터베이스를 연결하는 것 이상이 필요합니다.
청킹 전략
- 고정 크기: 단순하지만 의미 유닛을 분할할 수 있습니다.
- 의미론: 임베딩 유사성을 이용해 의미에 따라 분할됨.
- 재귀형: 헤더, 단락, 문장으로 나뉩니다.
- 문서 인식: 마크다운/HTML 구조를 존중하세요.
하이브리드 검색
밀집 벡터 검색과 희소 키워드 검색(BM25)을 결합하세요. 이 방법은 의미 일치와 정확한 용어 일치 모두를 포착합니다.
재분류
초기 검색 후에는 교차 인코더 모델을 사용하여 결과를 재평가합니다. 이로 인해 정밀도가 크게 향상됩니다.
평가
- 충실함: 답변은 검색된 맥락에 맞춰 적용되나요?
- 관련성: 회수된 청크가 실제로 유용한가?
- 정답 정확성: 최종 답변이 사실에 근거해 정확한가?
도구 및 프레임워크
- LlamaIndex: 내장 레시피가 포함된 고급 RAG 프레임워크.
- LangChain: 유연한 오케스트레이션 계층.
- 라가스: 목적에 맞게 설계된 평가 체계.
- Chroma / Qdrant / Weaviate: 서로 다른 트레이드오프를 가진 벡터 데이터베이스.
고급
## 고급 청킹 전략
기본 문자 수 분할은 의미를 깨뜨립니다. 더 나은 방법:
- **의미적 청킹**: LLM으로 주제 경계 식별.
- **재귀적 분할**: 제목 > 단락 > 문. 계층 보존.
- **중첩**: 경계 컨텍스트 유지를 위해 10~20% 중첩.
- **메타데이터 보강**: 각 청크에 소스, 날짜, 저자, 카테고리 태그.
## 평가 프레임워크
- **검색 정밀도** / **충실도** / **답변 관련성** / **지연시간**.
## 프로덕션 체크리스트
- 하이브리드 검색(BM25 + 벡터 유사도) 구현.
- 리랭킹 단계 추가.
- 검색 품질 모니터링 설정.
- 피드백 루프 생성.
- 지식베이스와 임베딩을 별도로 버전 관리.
## 고급 청킹 전략
기본 문자 수 분할은 의미를 깨뜨립니다. 더 나은 방법:
- **의미적 청킹**: LLM으로 주제 경계 식별.
- **재귀적 분할**: 제목 > 단락 > 문. 계층 보존.
- **중첩**: 경계 컨텍스트 유지를 위해 10~20% 중첩.
- **메타데이터 보강**: 각 청크에 소스, 날짜, 저자, 카테고리 태그.
## 평가 프레임워크
- **검색 정밀도** / **충실도** / **답변 관련성** / **지연시간**.
## 프로덕션 체크리스트
- 하이브리드 검색(BM25 + 벡터 유사도) 구현.
- 리랭킹 단계 추가.
- 검색 품질 모니터링 설정.
- 피드백 루프 생성.
- 지식베이스와 임베딩을 별도로 버전 관리.RAG