5단계: AI 응용 시나리오 탐색
포괄적인 검색 증강 생성(RAG) 시스템 고급 기술 모음입니다. 기초부터 최첨단까지 30개 이상의 RAG 기술 구현을 다루며, 완전한 코드 예제와 상세한 문서가 포함되어 있습니다.
RAG 기술 학습 자료 상세 소개
프로젝트 개요
RAG Techniques는 Nir Diamant가 만든 GitHub 오픈 소스 프로젝트로, 다양한 고급 검색 증강 생성(Retrieval-Augmented Generation, RAG) 시스템 기술을 선보이는 데 중점을 둡니다. 이 프로젝트는 연구원과 개발자에게 더 정확하고 맥락에 맞는 RAG 시스템을 구축하는 데 도움이 되는 포괄적인 리소스 라이브러리를 제공하는 것을 목표로 합니다.
프로젝트 특징
🌟 핵심 특징
- 최첨단 기술: 최신 RAG 시스템 강화 기술 포함
- 완벽한 문서: 각 기술에 대한 상세한 문서 설명
- 실습 가이드: 실제 구현 지침 제공
- 지속적인 업데이트: 최신 기술 발전 사항 정기 업데이트
- 커뮤니티 주도: 활발한 Discord 커뮤니티 보유 (20,000명 이상의 AI 애호가)
🎯 대상 독자
- AI 연구원
- 머신러닝 엔지니어
- 개발자 및 실무자
- RAG 기술에 관심 있는 학습자
기술 분류 및 상세 소개
1. 기본 기술 (Foundational 🌱)
Simple RAG
- 설명: 초보자에게 적합한 기본적인 RAG 기술 소개
- 구현: LangChain 및 LlamaIndex 지원
- 기능: 기본 검색 쿼리 및 증분 학습 메커니즘
Simple RAG using CSV
- 설명: CSV 파일을 사용한 기본 RAG 구현
- 기능: CSV 파일을 활용하여 기본 검색을 생성하고 OpenAI와 통합
Corrective RAG
- 설명: Simple RAG를 강화하여 검증 및 개선 메커니즘 추가
- 기능: 검색된 문서의 관련성을 확인하고 답변에 사용된 문서 조각을 강조 표시
2. 청킹 기술 (Chunking Techniques)
Choose Chunk Size
- 설명: 컨텍스트 유지와 검색 효율성의 균형을 맞추기 위해 적절한 텍스트 청크 크기 선택
- 구현:
# 示例:不同分块大小的实验 (예시: 다양한 청크 크기 실험)
chunk_sizes = [200, 500, 1000, 2000]
for size in chunk_sizes:
# 测试不同大小的检索效果 (다양한 크기의 검색 효과 테스트)
evaluate_chunk_performance(size)
Proposition Chunking
- 설명: 텍스트를 간결하고 완전하며 의미 있는 문장으로 분해
- 특징:
- 💪 명제 생성: LLM을 사용하여 문서 청크의 사실 진술 생성
- ✅ 품질 검사: 정확성, 명확성, 완전성 및 간결성 평가
Semantic Chunking
- 설명: 고정된 크기가 아닌 의미론적 일관성을 기반으로 문서 분할
- 장점: NLP 기술을 사용하여 주제 경계를 식별하고 더 의미 있는 검색 단위 생성
3. 쿼리 처리 기술 (Query Processing)
Query Transformations
- 설명: 검색 효과를 높이기 위해 쿼리 수정 및 확장
- 기술 포함:
- ✍️ 쿼리 재작성: 검색 개선을 위해 쿼리 재구성
- 🔙 폴백 프롬프트: 더 나은 컨텍스트를 위해 더 광범위한 쿼리 생성
- 🧩 하위 쿼리 분해: 복잡한 쿼리를 간단한 하위 쿼리로 분해
Hypothetical Questions (HyDE)
- 설명: 쿼리와 데이터의 일치도를 개선하기 위해 가설적 질문 생성
- 기능: 데이터 내 관련 위치를 가리키는 가설적 질문 생성
Hypothetical Prompt Embeddings (HyPE)
- 설명: HyDE의 강화 버전으로, 인덱싱 단계에서 가설적 프롬프트 사전 계산
- 장점:
- 📖 질문 사전 계산: 인덱싱 시 여러 가설적 쿼리 생성
- 🔍 질문-질문 매칭: 사용자 쿼리와 저장된 가설적 질문 매칭
- ⚡ 런타임 오버헤드 없음: 쿼리 시 LLM 호출 불필요
4. 컨텍스트 처리 기술 (Context Processing)
Context Enrichment Techniques
- 설명: 단일 문장을 임베딩하고 인접 문장으로 확장하여 검색 정확도 향상
- 구현:
# 示例:上下文窗口扩展 (예시: 컨텍스트 창 확장)
def get_context_window(sentence_index, window_size=2):
start = max(0, sentence_index - window_size)
end = min(len(sentences), sentence_index + window_size + 1)
return sentences[start:end]
Contextual Compression
- 설명: 검색된 정보를 압축하면서 쿼리와 관련된 내용은 유지
- 방법: LLM을 사용하여 검색된 청크 압축 또는 요약
Contextual Chunk Headers (CCH)
- 설명: 문서 및 섹션 수준의 컨텍스트를 생성하고 이를 청크 헤더에 추가
- 기능: 검색 정확도 개선
5. 검색 강화 기술 (Retrieval Enhancement)
Fusion Retrieval
- 설명: 다양한 검색 방법을 결합하여 검색 결과 최적화
- 구현: 키워드 기반 검색과 벡터 기반 검색 결합
Intelligent Reranking
- 설명: 고급 점수 매기기 메커니즘을 적용하여 검색 결과의 관련성 순위 개선
- 기술:
- 🧠 LLM 기반 점수 매기기
- 🔀 교차 인코더 모델
- 🏆 메타데이터 강화 순위
Multi-faceted Filtering
- 설명: 다양한 필터링 기술을 적용하여 검색 결과 품질 개선
- 포함:
- 🏷️ 메타데이터 필터링
- 📊 유사도 임계값
- 📄 콘텐츠 필터링
- 🌈 다양성 필터링
6. 고급 아키텍처 기술 (Advanced Architecture)
Hierarchical Indices
- 설명: 효율적인 정보 탐색 및 검색을 위한 다층 시스템 생성
- 구현: 문서 요약 및 상세 청크의 이중 계층 시스템
Ensemble Retrieval
- 설명: 여러 검색 모델 또는 기술을 결합하여 더 견고하고 정확한 결과 얻기
- 방법: 투표 또는 가중치 메커니즘을 사용하여 최종 검색 문서 집합 결정
RAPTOR
- 설명: 재귀적 추상 처리 트리 구조 검색
- 특징: 추상 요약을 사용하여 검색 문서를 재귀적으로 처리하고 정보를 트리 구조로 구성
7. 적응형 기술 (Adaptive Techniques)
Adaptive Retrieval
- 설명: 쿼리 유형 및 사용자 컨텍스트에 따라 검색 전략 동적으로 조정
- 기능: 다양한 범주의 쿼리에 맞춤형 검색 전략 사용
Self RAG
- 설명: 검색 및 생성 방법을 결합한 동적 방법
- 프로세스: 검색 결정 → 문서 검색 → 관련성 평가 → 응답 생성
Corrective RAG (CRAG)
- 설명: 검색 프로세스를 동적으로 평가하고 수정하는 복잡한 RAG 방법
- 구성 요소: 검색 평가기, 지식 정제, 웹 검색 쿼리 재작성기
8. 멀티모달 기술 (Multi-modal)
Multi-modal Retrieval
- 설명: 다양한 데이터 유형을 처리하도록 RAG 기능 확장
- 방법:
- 멀티미디어 캡션: 모든 멀티미디어 데이터에 대한 캡션 생성
- Colpali: 모든 데이터를 이미지로 변환하고 시각적 LLM 사용
9. 지식 그래프 통합
Knowledge Graph Integration (Graph RAG)
- 설명: 지식 그래프의 구조화된 데이터를 통합하여 컨텍스트 풍부화
- 기능: 쿼리와 관련된 엔티티 및 관계 검색
GraphRAG (Microsoft)
- 설명: Microsoft의 오픈 소스 GraphRAG 시스템
- 특징: 텍스트 단위에서 엔티티, 관계 추출, 커뮤니티 요약 생성
10. 평가 기술 (Evaluation)
DeepEval Evaluation
- 설명: 포괄적인 RAG 시스템 평가
- 지표: 정확성, 충실성, 컨텍스트 관련성
GroUSE Evaluation
- 설명: 컨텍스트 기반 LLM 평가
- 기능: GroUSE 프레임워크의 6가지 지표를 사용하여 평가
구현 가이드
빠른 시작
# 克隆仓库 (저장소 복제)
git clone https://github.com/NirDiamant/RAG_Techniques.git
# 导航到特定技术目录 (특정 기술 디렉토리로 이동)
cd all_rag_techniques/technique-name
# 按照各技术目录中的详细实现指南进行操作 (각 기술 디렉토리의 상세 구현 가이드에 따라 진행)
기술 스택 지원
- LangChain: 주요 프레임워크 지원
- LlamaIndex: 일부 기술 지원
- OpenAI API: 생성 모델 통합
- 다양한 임베딩 모델: 다양한 벡터화 방법 지원
학습 경로 제안
초급자 경로
- Simple RAG → 기본 개념 이해
- Choose Chunk Size → 텍스트 청킹 학습
- Query Transformations → 쿼리 최적화 이해
- Context Enrichment → 컨텍스트 처리 숙달
중급자 경로
- Semantic Chunking → 고급 청킹 기술
- Fusion Retrieval → 다중 방법 결합
- Intelligent Reranking → 결과 최적화
- Hierarchical Indices → 복잡한 아키텍처
전문가 경로
- Self RAG → 적응형 시스템
- Graph RAG → 지식 그래프 통합
- RAPTOR → 재귀 처리
- Multi-modal Retrieval → 멀티모달 처리
이 학습 자료는 기초부터 고급까지 완전한 RAG 기술 학습 경로를 제공하며, 다양한 수준의 학습자에게 적합한 현재 가장 포괄적인 RAG 기술 리소스 라이브러리 중 하나입니다.