datawhalechina/all-in-rag
요약
LLM 애플리케이션 개발자를 위한 RAG(검색 증강 생성) 기술 풀스택 튜토리얼 프로젝트입니다. 데이터 처리부터 인덱스 구축, 검색 최적화, 멀티모달 지원까지 체계적인 학습 경로와 실무 프로젝트를 제공합니다.
핵심 포인트
- RAG 기술의 기초부터 프로덕션급 엔지니어링까지 체계적 학습
- 텍스트 및 이미지 검색을 지원하는 멀티모달 RAG 기술 포함
- 데이터 로딩, 청킹, 벡터 DB 구축 등 전체 파이프라인 실습
- 하이브리드 검색 및 Text2SQL 등 고급 검색 기술 제공
- 시스템 평가 및 최적화 방법론을 통한 실무 역량 강화
🎯 체계적인 RAG 기술 체계 학습 |
🛠️ 풍부한 프로젝트 사례 실습 |
🚀 프로덕션 준비 완료된 엔지니어링 베스트 프랙티스 |
📊 텍스트 + 이미지 검색을 지원하는 멀티모달 (Multimodal) 지원 |
본 프로젝트는 대규모 언어 모델 (LLM) 애플리케이션 개발자를 위한 RAG (Retrieval-Augmented Generation, 검색 증강 생성) 기술 풀스택 튜토리얼로, 체계적인 학습 경로와 실습 프로젝트를 통해 개발자가 LLM 기반의 RAG 애플리케이션 개발 기술을 습득하고, 프로덕션급 지능형 질의응답 및 지식 검색 시스템을 구축할 수 있도록 돕는 것을 목표로 합니다.
주요 내용은 다음과 같습니다:
RAG 기술 기초: RAG의 핵심 개념, 기술 원리 및 응용 시나리오를 쉽고 자세하게 소개
데이터 처리 전체 프로세스: 데이터 로딩, 클리닝부터 텍스트 청킹 (Text Chunking)까지의 완전한 데이터 준비 프로세스
인덱스 구축 및 최적화: 벡터 임베딩 (Vector Embedding), 멀티모달 임베딩, 벡터 데이터베이스 구축 및 인덱스 최적화 기술
검색 기술 심화: 하이브리드 검색 (Hybrid Search), 쿼리 구축 (Query Construction), Text2SQL 등 고급 검색 기술
생성 통합 및 평가: 포맷팅된 생성 (Formatted Generation), 시스템 평가 및 최적화 방법
프로젝트 실전: 기초부터 심화까지의 완전한 RAG 애플리케이션 개발 실습
대규모 언어 모델의 급격한 발전과 함께, RAG 기술은 지능형 질의응답 시스템 및 지식 검색 애플리케이션을 구축하는 핵심 기술이 되었습니다. 그러나 기존의 RAG 튜토리얼은 종종 파편화되어 있고 체계성이 부족하여, 초보자가 완전한 기술 체계에 대한 인식을 형성하기 어렵습니다.
본 프로젝트는 실무에서 출발하여 최신 RAG 기술 발전 트렌드를 결합하여 완전한 RAG 학습 체계를 구축하였으며, 개발자가 다음과 같은 역량을 갖추도록 돕습니다:
- RAG 기술의 이론적 기초와 실무 기술을 체계적으로 습득
- RAG 시스템의 전체 아키텍처와 각 구성 요소의 역할을 이해
- 독립적인 RAG 애플리케이션 개발 능력 보유
- RAG 시스템의 평가 및 최적화 방법 숙달
본 프로젝트는 다음 대상에게 적합합니다:
- Python 프로그래밍 기초를 갖추고 RAG 기술에 관심이 있는 개발자
- RAG 기술을 체계적으로 학습하고자 하는 AI 엔지니어
- 지능형 질의응답 시스템을 구축하고자 하는 제품 개발자
- 검색 증강 생성 기술에 대한 학습 수요가 있는 연구원
사전 요구 사항:
- Python 기초 문법 및 주요 라이브러리 사용 능력
- Docker를 간단히 사용할 수 있는 능력
- 기본적인 LLM 개념 이해 (권장 사항이나 필수 아님)
- 기초적인 Linux 커맨드라인 조작 능력
체계적인 학습 경로: 기초 개념부터 고급 응용까지, 완전한 RAG 기술 학습 체계 구축
이론과 실습의 병행: 각 장은 이론 설명과 코드 실습을 포함하여 학습한 내용을 즉시 적용할 수 있도록 보장
멀티모달 지원: 텍스트 RAG뿐만 아니라 멀티모달 임베딩 및 검색 기술 포함
엔지니어링 지향: 성능 최적화, 시스템 평가 등 실제 응용에서의 엔지니어링 문제에 집중
풍부한 실전 프로젝트: 기초부터 심화까지 여러 실전 프로젝트를 제공하여 학습 성과를 공고히 함
제1장 RAG 잠금 해제 📖 챕터 보기
- RAG 소개 - RAG 기술 개요 및 응용 시나리오
- 준비 작업 - 환경 설정 및 준비
- 4단계로 RAG 구축하기 - RAG 개발 빠르게 시작하기
- 부록: 환경 배포 - Python 가상 환경 배포 방안 보충 (기여자: @anarchysaiko)
제2장 데이터 준비 📖 챕터 보기
제3장 인덱스 구축 📖 챕터 보기
제4장 검색 최적화 📖 챕터 보기
제5장 생성 통합 📖 챕터 보기
- 포맷팅된 생성 - 구조화된 출력 및 포맷 제어
제6장 RAG 시스템 평가 📖 챕터 보기
제7장 고급 RAG 아키텍처 (확장 부분) 📖 챕터 보기
제8장 프로젝트 실전 I 📖 챕터 보기
제9장 프로젝트 실전 I 최적화 (선택 사항) 📖 챕터 보기
제10장 프로젝트 실전 II (선택 사항) 📖 챕터 보기 계획 중
- Neo4J 간단한 응용 (기여자: dalvqw)
- 멀티모달 Omni Embedding 실습 (Jina v5-omni) (최적화 중)
만약 RAG / 벡터 데이터베이스 / Agentic RAG 등의 관련 기술을 사용할 때 공유할 만한 경험이나 특화된 내용이 있다면, 독립된 챕터 형식으로 Extra Chapter에 투고해 주시는 것을 매우 환영합니다. 제출 전 Extra Chapter의 기여 및 PR 가이드를 먼저 읽어주시기 바랍니다. 내용의 완전성, 실습 깊이 및 참고 가치를 종합적으로 평가하여 병합 여부를 결정하며, 상황에 따라 메인 튜토리얼에서 인용하거나 확장 설명을 추가할 수 있습니다.
all-in-rag/
├── docs/ # 튜토리얼 문서
├── code/ # 코드 예제
...
핵심 기여자
- dalvqw - 프로젝트 책임자 (프로젝트 발기인 및 주요 기여자)
추가 챕터 기여자
-
孙超 - 콘텐츠 크리에이터 (Datawhale 멤버 - 상하이 공정기술대학교)
-
본 프로젝트를 도와주고 지원해 준 @Sm1les에게 감사드립니다
-
본 프로젝트에 기여해 준 모든 개발자분께 감사드립니다
-
오픈소스 커뮤니티가 제공하는 우수한 도구와 프레임워크 지원에 감사드립니다
-
특히 튜토리얼에 기여해 준 다음 개발자분들께 특별히 감사드립니다!
Made with contrib.rocks.
우리는 다음과 같은 모든 형태의 기여를 환영합니다:
- 🚨
버그 보고 (Bug Report): 문제를 발견하면 Issue를 제출해 주세요 - 💭
튜토리얼 제안 (Tutorial Suggestion): 좋은 아이디어가 있다면 Discussions에서 토론해 주세요 - 📚
문서 개선 (Documentation Improvement): 문서 내용과 예제 코드를 완성하는 데 도움을 주세요 (현재 Extra-chapter 우수 콘텐츠 PR만 지원)
이 프로젝트가 도움이 되었다면 ⭐️를 남겨주세요
더 많은 사람들이 이 프로젝트를 발견할 수 있도록 해주세요 (혼자만 알고 계실 건가요? 공유해 주세요!)
본 저작물은 Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) 라이선스에 따라 이용할 수 있습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub Trending Python (daily)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기