LLM 서비스 구현의 핵심, RAG
단 한 권으로 끝내는 실전 Advanced RAG의 모든 것!
이 책은 실제 RAG 기반 서비스를 구축해온 현업 개발자 겸 데이터 과학자 4인이 이론과 함께 생생한 실무 중심의 노하우를 담아냈다. RAG의 기본 원리부터 다양한 고급 기법과 랭그래프, ReAct 에이전트 활용, 그리고 RAG 성능 향상을 극대화하는 LLM과 임베딩 모델 파인튜닝까지 다룬다. 랭체인을 활용한 실습 중심 구성으로, 구글 코랩에서 바로 따라 하며 배우고 각 장의 실전 예제를 통해 나만의 RAG 시스템을 완성할 수 있다. 기초를 탄탄히 다지고 싶은 입문자부터, 고급 기법으로 LLM 시스템을 완성하고 싶은 실무 개발자까지, 이 책은 지금 가장 필요한 RAG 기술의 모든 것을 체계적으로 안내한다.
Contents
추천사
들어가며
이 책의 구성
실습 환경 설정
Chapter 1 랭체인 살펴보기
1. 랭체인 개요
__1.1 랭체인 주요 패키지
__1.2 랭체인 버전별 기능 업데이트
__1.3 왜 랭체인을 사용해야 하는가?
__1.4 랭체인의 주요 활용 사례
2. 대규모 언어 모델
__2.1 랭체인 vs 오픈AI API
__2.2 대규모 언어 모델 파라미터 설정
__2.3 랭체인에서 사용할 수 있는 주요 대규모 언어 모델
3. 랭체인 표현 언어
__3.1 러너블 표준 인터페이스
__3.2 러너블을 체인으로 연결하는 방법
4. 프롬프트
__4.1 퓨샷 프롬프트
__4.2 프롬프트 허브
5. 출력 파서
__5.1 출력 파서의 세 가지 주요 메서드
__5.2 PydanticOutputParser
__5.3 SimpleJsonOutputParser
__5.4 JsonOutputParser
6. 메모리 관리: 대화 기록 유지
__6.1 기본적인 대화 이력 전달
__6.2 대화 이력 관리 및 처리
__6.3 자동 대화 이력 관리
__6.4 대화 이력 요약 및 트리밍
Chapter 2 검색 증강 생성 기초와 실습
1. 검색 증강 생성 개요
__1.1 텍스트 임베딩
__1.2 코사인 유사도
__1.3 랭체인 임베딩 API 활용
2. 문서 로더
__2.1 웹 페이지 로더
__2.2 PDF 로더
__2.3 CSV 로더
3. 텍스트 분할
__3.1 길이와 구분자로 분할하는 재귀적 문자 텍스트 분할
__3.2 의미 기반으로 분할하는 시맨틱 청킹
4. 벡터 데이터베이스
__4.1 크로마
__4.2 파이스
5. RAG 챗봇 실습
__5.1 RAG 챗봇 구현
__5.2 챗봇에 스트림릿 UI 적용
Chapter 3 멀티모달 RAG를 활용한 복합 데이터 처리
1. 멀티모달 RAG 개요
__1.1 멀티모달 RAG란?
__1.2 멀티모달 RAG가 어려운 이유
2. 멀티모달 RAG 구현 방법
__2.1 모든 모달리티를 동일한 벡터 공간에 포함하기
__2.2 모든 모달리티를 하나의 기본 모달리티로 표현하기
__2.3 서로 다른 모달리티를 별도의 저장소에서 다루기
3. 멀티모달 RAG 실습
__3.1 환경 설정
__3.2 데이터 전처리
__3.3 멀티-벡터 검색기
__3.4 멀티모달 RAG 구현
Chapter 4 검색과 응답을 최적화하는 RAG 고도화 전략
1. 청킹 전략
__1.1 부모-자식 분할
2. 질의 변형
__2.1 다중 질의 생성
__2.2 가상 문서 임베딩
3. 검색 알고리즘
__3.1 희소 검색
__3.2 밀집 검색
__3.3 앙상블 검색
4. 문서 후처리
__4.1 고성능 대규모 언어 모델 기반 리랭킹
__4.2 크로스 인코더 기반 리랭킹
5. 확장된 RAG 방법론
__5.1 Self-RAG 개요
__5.2 Self-RAG 구현
Chapter 5 지식 그래프를 활용한 그래프 RAG
1. 그래프 RAG 개요
__1.1 기존 RAG 방식의 한계
__1.2 지식 그래프란?
__1.3 그래프 RAG의 동작 과정
2. 그래프 DB 구축
__2.1 그래프 DB 구축 과정
__2.2 그래프 DB 구축 실습
3. 그래프 RAG 질의
__3.1 그래프 RAG 질의 과정
__3.2 그래프 RAG 질의 실습
4. Neo4j와 랭체인을 활용한 GraphRAG 구현
__4.1. 지식 그래프와 Neo4j 통합
1. 생각의 사슬
2. 에이전트 RAG
__2.1 라이브러리와 데이터 준비
__2.2 에이전트 도구 만들기
__2.3 에이전트 프롬프트 설정
__2.4 에이전트 객체 생성
__2.5 에이전트 RAG 실습
Chapter 8 RAG 성능을 높이는 LLM 파인튜닝
1. RAFT 논문 살펴보기
__1.1 네거티브 샘플
__1.2 생각의 사슬
2. 성능 향상을 위한 팁
__2.1 답변 없음 데이터
__2.2 출처 인용
3. RAG 학습 데이터셋 살펴보기
__3.1 학습 데이터 소개
__3.2 학습 데이터 탐색
4. 로컬 LLM Qwen 파인튜닝하기
__4.1 런팟을 이용한 실습 환경 설정
__4.2 데이터 전처리
__4.3 Qwen 템플릿 이해하기
__4.4 로라 학습을 위한 설정값
__4.5 학습을 위한 설정값
__4.6 정수 인코딩
__4.7 모델 테스트하기
__4.8 GPU 종료하기
Chapter 9 RAG 임베딩 모델 파인튜닝과 성능 평가
1. 임베딩 학습 원리
__1.1 대조 학습
__1.2 데이터셋 구성
__1.3 MultipleNegativesRankingLoss
2. 실전 파인튜닝
__2.1 데이터 로드
__2.2 합성 데이터 생성
__2.3 모델 로드하기
__2.4 평가 데이터 전처리
__2.5 모델 학습하기
__2.6 검색 성능 평가 지표
__2.7 파인튜닝 모델 평가하기
마치며
찾아보기
Author
브라이스 유,조경아,박수진,김재웅
성균관대학교에서 학사와 석사를 마치고, 현재 IT 대기업에서 대규모 언어 모델(LLM) 에이전트 개발을 위한 파인튜닝(Fine-tuning) 업무를 맡고 있다. 인공지능 서비스가 세상에 긍정적인 영향을 줄 수 있다는 믿음 아래, 기술 개발에 힘쓰고 있다. 저서로 『진짜 챗GPT 활용법』, 『진짜 챗GPT API 활용법』 등이 있다.
성균관대학교에서 학사와 석사를 마치고, 현재 IT 대기업에서 대규모 언어 모델(LLM) 에이전트 개발을 위한 파인튜닝(Fine-tuning) 업무를 맡고 있다. 인공지능 서비스가 세상에 긍정적인 영향을 줄 수 있다는 믿음 아래, 기술 개발에 힘쓰고 있다. 저서로 『진짜 챗GPT 활용법』, 『진짜 챗GPT API 활용법』 등이 있다.