Home
Login

5단계: AI 응용 시나리오 탐색

포괄적인 검색 증강 생성(RAG) 시스템 고급 기술 모음입니다. 기초부터 최첨단까지 30개 이상의 RAG 기술 구현을 다루며, 완전한 코드 예제와 상세한 문서가 포함되어 있습니다.

RAGRetrievalAugmentedGenerationVectorSearchGitHubTextFreeEnglish

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: 생성 모델 통합
  • 다양한 임베딩 모델: 다양한 벡터화 방법 지원

학습 경로 제안

초급자 경로

  1. Simple RAG → 기본 개념 이해
  2. Choose Chunk Size → 텍스트 청킹 학습
  3. Query Transformations → 쿼리 최적화 이해
  4. Context Enrichment → 컨텍스트 처리 숙달

중급자 경로

  1. Semantic Chunking → 고급 청킹 기술
  2. Fusion Retrieval → 다중 방법 결합
  3. Intelligent Reranking → 결과 최적화
  4. Hierarchical Indices → 복잡한 아키텍처

전문가 경로

  1. Self RAG → 적응형 시스템
  2. Graph RAG → 지식 그래프 통합
  3. RAPTOR → 재귀 처리
  4. Multi-modal Retrieval → 멀티모달 처리

이 학습 자료는 기초부터 고급까지 완전한 RAG 기술 학습 경로를 제공하며, 다양한 수준의 학습자에게 적합한 현재 가장 포괄적인 RAG 기술 리소스 라이브러리 중 하나입니다.