huangjia2019/rag-in-action

End-to-end RAG system design, evaluation, and optimization. 极客时间RAG训练营,RAG 10大组件全面拆解,4个实操项目吃透 RAG 全流程。RAG的落地,往往是面向业务做RAG,而不是反过来面向RAG做业务。这就是为什么我们需要针对不同场景、不同问题做针对性的调整、优化和定制化。魔鬼全在细节中,我们深入进去探究。

프로젝트 개요

이것은 코드 저장소이며, 온라인 실전 강좌(극객시간의 《RAG 시스템 개발 실전》)와 함께 제공됩니다. 처음부터 DeepSeek 기반 RAG 시스템, 즉 검색 증강 생성 시스템을 구축하는 방법을 가르칩니다. 간단히 말해, RAG는 AI 대규모 모델이 외부 지식 베이스를 참조하여 질문에 답변할 수 있게 하는 기술이며, 이 저장소는 완전한 구현 코드와 교육 모듈을 제공합니다.

핵심 내용: 모듈식 설계

저장소는 11개의 모듈로 나뉘며, 각 모듈은 RAG 파이프라인의 한 단계에 해당합니다. 순서대로 학습하면 됩니다:

모듈 기능 주요 기술(대략)
00-간단한 RAG 가장 기본적인 RAG 예제 LangChain/LlamaIndex
01-데이터 가져오기 문서 로드 및 처리 pandas, PyPDF2
02-텍스트 분할 긴 텍스트를 작은 청크로 분할 LangChain Splitters
03-벡터 임베딩 텍스트를 벡터로 변환 HuggingFace, BGE
04-벡터 저장 벡터 저장 및 검색 Milvus, Chroma
05-검색 전처리 검색 쿼리 품질 최적화 Query Expansion
06-인덱스 최적화 더 나은 인덱스 구축 계층 인덱스, 키워드 인덱스
07-검색 후처리 검색 결과 재정렬 및 필터링 재순위 모델 등
08-응답 생성 검색 결과 기반 답변 생성 LLM 통합(예: DeepSeek)
09-시스템 평가 시스템 효과 평가 RAGAS, TruLens
10-고급 RAG 더 복잡한 RAG 변형 Graph RAG, Multi-Agent

각 모듈에는 독립적인 예제와 설명 문서가 있으며, 번호 순서대로 단계별로 실습하는 것이 좋습니다.

실행 환경 및 의존성

  • 하드웨어:
    • GPU 버전: NVIDIA GPU(권장: 8GB 이상 VRAM), CUDA 11.8+, cuDNN 8+.
    • CPU 버전: 권장 16GB+ 메모리, 4코어 이상 프로세서.
  • 운영 체제: Ubuntu 22.04, macOS(Intel / Apple Silicon), Windows(WSL2+Ubuntu 권장).
  • Python: 3.10 이상.
  • 프레임워크: LangChain과 LlamaIndex 두 주요 프레임워크를 지원하며, 해당 requirements 파일을 제공하고 GPU/CPU에 따라 설치합니다.

환경 설정 예시

LangChain + GPU(Ubuntu)를 예로 들면:

# 가상 환경 생성(권장)
python -m venv venv-rag-langchain
source venv-rag-langchain/bin/activate
# 또는 conda 사용
conda create -n venv-rag-langchain python=3.10.12
conda activate venv-rag-langchain

# 의존성 설치
pip install -r 91-환경-Environment/requirements_langchain_20250413_Ubuntu-with-GPU.txt

README에는 모든 조합(CPU/GPU × LangChain/LlamaIndex × 다른 OS)에 대한 완전한 설치 명령이 제공됩니다.

특수 의존성

  • PDF 처리: 추가로 requirements_camelot 및 시스템 수준 의존성 설치 필요(Ubuntu는 ghostscript와 python3-tk 필요; macOS는 brew install ghostscript tcl-tk 필요; Windows는 수동으로 Ghostscript 설치).
  • 주석 도구: requirements_marker를 사용하여 설치합니다.

사용 단계

  1. 환경에 맞는 requirements 파일을 선택하고 가상 환경을 만들어 의존성을 설치합니다.
  2. 00-간단한 RAG부터 시작하여 모듈 순서대로 학습합니다.
  3. 각 모듈에는 독립적인 예제 스크립트와 설명이 있습니다.

주의 사항

  • GPU 버전은 CUDA 드라이버가 올바른지 확인하세요.
  • 시스템에 따라 추가 시스템 라이브러리가 필요할 수 있습니다.
  • 의존성 충돌을 피하기 위해 가상 환경 사용을 강력히 권장합니다.
  • 일부 모듈은 추가 모델 다운로드 또는 API 키 설정이 필요할 수 있습니다.

자주 묻는 질문(README에 명시)

  • CUDA 오류: NVIDIA 드라이버와 CUDA 버전을 확인하세요.
  • 메모리 부족: 배치 크기를 줄이거나 CPU 버전을 사용하세요.
  • 의존성 충돌: requirements 파일을 엄격히 따르고 가상 환경으로 격리하세요.

오픈소스 및 라이선스

프로젝트는 MIT 라이선스를 채택하며, Issue 또는 Pull Request를 환영합니다.


위 내용은 README 원문에 완전히 기반하며, 언급되지 않은 정보는 추가되지 않았습니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트