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를 사용하여 설치합니다.
사용 단계
- 환경에 맞는
requirements파일을 선택하고 가상 환경을 만들어 의존성을 설치합니다. 00-간단한 RAG부터 시작하여 모듈 순서대로 학습합니다.- 각 모듈에는 독립적인 예제 스크립트와 설명이 있습니다.
주의 사항
- GPU 버전은 CUDA 드라이버가 올바른지 확인하세요.
- 시스템에 따라 추가 시스템 라이브러리가 필요할 수 있습니다.
- 의존성 충돌을 피하기 위해 가상 환경 사용을 강력히 권장합니다.
- 일부 모듈은 추가 모델 다운로드 또는 API 키 설정이 필요할 수 있습니다.
자주 묻는 질문(README에 명시)
- CUDA 오류: NVIDIA 드라이버와 CUDA 버전을 확인하세요.
- 메모리 부족: 배치 크기를 줄이거나 CPU 버전을 사용하세요.
- 의존성 충돌: requirements 파일을 엄격히 따르고 가상 환경으로 격리하세요.
오픈소스 및 라이선스
프로젝트는 MIT 라이선스를 채택하며, Issue 또는 Pull Request를 환영합니다.
위 내용은 README 원문에 완전히 기반하며, 언급되지 않은 정보는 추가되지 않았습니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트