이미 소장하고 있다면 판매해 보세요.
|
추천사 ix
베타리더 후기 x 머리말 xii CHAPTER 1 라마인덱스 및 RAG 이해하기 1 1.1 라마인덱스 소개 1 __1.1.1 대형 언어 모델 1 / 1.1.2 LLM의 학습 방법과 한계점 2 / 1.1.3 라마인덱스 소개 4 / 1.1.4 라마인덱스와 랭체인 비교 5 / 1.1.5 라마인덱스 환경 소개 7 1.2 프롬프트 8 __1.2.1 프롬프트와 콘텍스트 8 / 1.2.2 토큰 10 / 1.2.3 프롬프트: 시스템, 사용자, 어시스턴트 12 1.3 RAG 13 __1.3.1 RAG의 작동 원리 14 / 1.3.2 RAG의 구성 요소 16 1.4 라마인덱스 RAG 파이프라인 19 __1.4.1 데이터 로더 19 / 1.4.2 문서 분할과 노드 20 / 1.4.3 임베딩과 인덱스 21 / 1.4.4 쿼리 엔진: Query the LLM 22 1.5 라마인덱스 사용 준비하기 23 __1.5.1 VS Code 설치하기 23 / 1.5.2 파이썬 설치하기 28 / 1.5.3 ChatGPT API 준비하기 30 CHAPTER 2 라마인덱스 RAG 기본 파이프라인 구현하기 37 2.1 실습 환경 세팅 37 __2.1.1 가상 환경을 사용하는 이유 37 / 2.1.2 실습 코드 다운로드 39 / 2.1.3 가상 환경 세팅 41 2.2 라마인덱스 기초 파이프라인 구현 44 __2.2.1 실습 코드 오픈 및 가상 환경 선택 44 / 2.2.2 파이프라인 코드 설명 46 2.3 데이터 로드 49 __2.3.1 Document 50 / 2.3.2 노드 54 / 2.3.3 여러 가지 데이터 로더 소개 57 / 2.3.4 여러 가지 노드파서 소개 62 2.4 임베딩과 인덱스 69 __2.4.1 임베딩을 통한 문장 간 유사도 평가 70 / 2.4.2 VectorStoreIndex 72 / 2.4.3 로컬에 인덱스 저장 74 2.5 벡터 스토어 77 __2.5.1 FAISS 78 / 2.5.2 크로마 DB 81 / 2.5.3 기존 벡터 DB 활용 85 2.6 검색 및 쿼리 86 __2.6.1 쿼리 엔진이란? 87 / 2.6.2 쿼리 엔진 간단 사용법 89 / 2.6.3 RetrieverQueryEngine 91 / 2.6.4 Chat Engine 96 2.7 스트림릿을 활용한 RAG 애플리케이션 구축 97 __2.7.1 스트림릿 소개 97 / 2.7.2 스트림릿 설치 99 / 2.7.3 스트림릿 기본 사용법 101 / 2.7.4 스트림릿 RAG 애플리케이션 105 / 2.7.5 스트림릿 앱 배포 109 CHAPTER 3 고급 검색 알고리즘을 활용한 Advanced RAG 구현 119 3.1 희소 검색과 밀집 검색 119 __3.1.1 희소 검색 119 / 3.1.2 밀집 검색 120 3.2 라마인덱스를 활용한 BM25 RAG 구현 122 __3.2.1 TF-IDF 122 / 3.2.2 BM25 125 / 3.2.3 BM25 검색기를 통한 RAG 구현 132 3.3 리랭킹 기법 139 __3.3.1 리랭킹의 개념 139 / 3.3.2 혼합 검색 구현하기 141 / 3.3.3 크로스 인코더 기반의 리랭킹 라마인덱스 RAG 구현 146 / 3.3.4 LLM 기반의 리랭킹 라마인덱스 RAG 구현 159 3.4 다중 쿼리 생성 167 __3.4.1 다중 쿼리 생성 기능 구현 167 / 3.4.2 다중 쿼리 생성을 적용한 RAG 구현 171 3.5 가상 문서 임베딩 176 __3.5.1 가상 문서 임베딩 기능 구현 177 / 3.5.2 가상 문서 임베딩을 적용한 RAG 구현 179 CHAPTER 4 RAG 시스템 구현을 위한 여러 가지 모델 소개 183 4.1 LLM 선택 시 고려할 점 183 __4.1.1 API vs 로컬 183 / 4.1.2 LLM 모델 벤치마크 185 / 4.1.3 임베딩 모델 벤치마크 189 4.2 LLM 모델 소개 및 사용법 191 __4.2.1 OpenAI 192 / 4.2.2 구글 195 / 4.2.3 앤트로픽 199 / 4.2.4 딥시크 204 4.3 임베딩 모델 소개 및 사용법 210 __4.3.1 OpenAI 210 / 4.3.2 구글 제미나이 211 / 4.3.3 코히어 213 / 4.3.4 허깅 페이스 217 / 4.3.5 업스테이지 221 4.4 상용 vs 오픈소스 모델 실전 비교 223 __4.4.1 상용 조합(클로드 + 코히어) 224 / 4.4.2 오픈소스 조합(DeepSeek-R1 + 허깅 페이스) 227 CHAPTER 5 이미지와 표도 인식하는 멀티모달 RAG 구현 231 5.1 라마인덱스 멀티모달 RAG 소개 231 __5.1.1 멀티모달 RAG 개념 231 / 5.1.2 라마인덱스 멀티모달 RAG 파이프라인 233 5.2 라마인덱스 라마파스 활용하기 236 __5.2.1 라마파스 소개 236 / 5.2.2 라마파스 사용 준비하기: API 키 발급 237 / 5.2.3 라마파스를 활용한 RAG 구현하기 240 5.3 텍스트, 이미지를 활용한 라마인덱스 RAG 247 __5.3.1 이미지 파일을 활용한 멀티모달 구현하기 247 / 5.3.2 라마인덱스 멀티모달 RAG 파이프라인 구현하기 251 / 5.3.3 이미지를 입력으로 하는 RAG 구현하기 257 5.4 복잡한 PDF 문서를 활용한 RAG 시스템 구현 264 __5.4.1 이미지 파일로 추출하기: unstructured 사용하기 265 / 5.4.2 PDF 문서 텍스트, 표 문서로 저장하기 272 / 5.4.3 이미지 캡셔닝 273 / 5.4.4 인덱스 생성 및 RAG 구현 278 CHAPTER 6 생각하고 판단하는 ReAct 에이전트 285 6.1 생각의 사슬 288 6.2 환경 설정 및 데이터 로드 289 6.3 쿼리 엔진 만들기 293 6.4 도구 만들기 295 6.5 프롬프트 작성하기 297 6.6 에이전트 객체 선언 300 6.7 에이전트 RAG 300 6.8 멀티턴: 이전 대화 고려하기 303 6.9 그라디오를 이용한 웹 애플리케이션 310 __6.9.1 그라디오와 스트림릿 비교 310 / 6.9.2 RAG 애플리케이션 312 / 6.9.3 애플리케이션 데모 315 CHAPTER 7 즉시 함수를 호출하는 Function Calling 에이전트 319 7.1 Function Calling 이해하기 319 7.2 ReAct 에이전트와의 비교 320 7.3 환경 설정 및 필요 라이브러리 설치 321 7.4 쇼핑몰 데이터 구조 설계 323 7.5 고객 지원 함수 구현 327 7.6 에이전트 객체 선언 335 7.7 멀티턴: 이전 대화 고려하기 337 7.8 그라디오를 이용한 웹 애플리케이션 346 찾아보기 353 |
에디 유의 다른 상품
정용범의 다른 상품
손상우의 다른 상품
|
LLM은 학습한 데이터에 따라 텍스트를 생성한다는 관점에서 몇 가지 한계점이 있습니다. 첫째, 편향되거나 오류가 있는 데이터를 학습했을 경우 잘못된 정보를 생성할 수 있습니다. 둘째, 환각 현상입니다. 특정 질문에 대해 학습하지 않았다면 부정확한 정보를 근거로 응답하는 것을 의미합니다. 셋째, 회사 내부 자료와 같이 특정 도메인에 대한 정보나 실시간으로 업데이트되는 정보(주가, 날씨 등)는 학습하지 않아서 정확히 답변하지 못합니다. 즉, LLM은 학습된 데이터에 의존하기 때문에 답변을 신뢰할 수 없다는 단점이 있습니다. / 이러한 LLM의 한계점을 보완하기 위한 것이 RAG 기술입니다. RAG는 LLM이 학습하지 못한 부분을 웹, 데이터베이스, 각종 문서 등을 참고하여 LLM이 답변하도록 만드는 기술입니다. 이 책의 주요 테마인 라마인덱스는 RAG를 활용하여 LLM을 개발하는 프레임워크라고 할 수 있습니다.
--- p.3 라마인덱스는 데이터 수집을 위해 SimpleDirectoryReader와 같은 내장 데이터 로더를 기본적으로 제공하며, 이를 통해 로컬 디렉터리의 다양한 파일 형식을 쉽게 Document로 로드할 수 있습니다. 더 전문적인 데이터 소스 처리가 필요한 경우, 라마허브에서 제공하는 수백 가지의 특수 목적 데이터 로더를 다운로드하여 사용할 수 있습니다. 예를 들어 노션(Notion), 디스코드(Discord), 구글 드라이브(Google Drive) 등 특정 플랫폼의 데이터를 가져오거나 API 연동이 필요한 경우 라마허브의 데이터 로더를 활용하면 됩니다. --- p.57 TF-IDF를 기반으로 BM25 알고리즘을 이해하고 파이썬으로 구현해보겠습니다. TF-IDF에서는 총문서의 개수와 단어의 등장 빈도를 고려하는 알고리즘이었습니다. BM25 알고리즘은 TF-IDF에서 발전된 형태로 문서의 길이까지 고려하여 문서와 쿼리 간 관련성까지 평가합니다. TF-IDF는 단어가 자주 등장할수록 중요도가 한없이 높아지기가 쉽습니다. BM25는 이런 문제를 방지하기 위해 일정 빈도 이상에서는 관련성을 천천히 증가시키는 포화 효과를 통해 보정 작업을 거칩니다. 또한 길이가 긴 문서의 경우 짧은 문서에 비해 단어가 많기 때문에 상대적으로 TF가 높을 수 있으므로, 문서의 길이에 대한 보정식도 적용합니다. / 따라서 BM25는 TF-IDF에 비해 더 정교한 검색을 할 수 있습니다. BM25는 주로 검색 엔진이나 정보 검색 시스템에서 정밀한 결과를 제공하여 사용자에게 더욱 적절한 문서를 추천할 수 있습니다. --- p.125 라마인덱스에서는 복잡한 문서를 쉽게 읽어올 수 있는 라마파스(LlamaParse)를 제공합니다. 실제 현업에서 사용하는 문서에는 단순 텍스트뿐만 아니라 표와 이미지 같은 복잡한 구조의 형태가 섞여 있습니다. 라마파스를 활용하면 복잡한 구조의 문서를 좀 더 쉽게 파싱하고 RAG 시스템에 활용할 수 있습니다. 이번 절에서는 라마파스 사용을 위해 API 키를 발급받고 실제로 구현하는 코드 실습까지 진행해보겠습니다. --- p.236 ReAct(Reasoning + Acting)는 프린스턴 대학교 연구진과 구글 연구원들이 협력하여 개발한 혁신적인 프롬프트 엔지니어링 전략입니다. 이 접근법은 대형 언어 모델이 인간의 사고와 행동 패턴을 모방하여 복잡한 문제를 해결할 수 있도록 설계되었습니다. ReAct의 핵심은 언어 모델이 문제 해결 과정에서 ‘생각’과 ‘행동’을 유기적으로 연결하는 데 있습니다. 인간이 복잡한 문제를 해결할 때처럼, 모델은 먼저 상황을 분석하고 필요한 정보를 파악한 다음(생각), 그 정보를 얻기 위한 구체적인 행동을 취합니다(행동). 그리고 행동에 대한 결과를 확인하고(관찰), 다시 현시점에서 필요한 정보를 파악하는 과정을 거칩니다(생각). 이러한 과정은 충분한 정보와 해결책을 얻을 때까지 반복됩니다. --- p.286 결국 두 방식의 가장 큰 차이는 의사 결정 과정의 가시성입니다. ReAct는 모든 생각 과정이 드러나므로 LLM이 왜 특정 행동을 했는지 추적할 수 있습니다. 이는 LLM이 왜 그러한 선택을 하는지 알 수 있다는 점에서 디버깅이 필요한 상황에서 장점이 될 수 있습니다. 반면 Function Calling은 내부 처리 과정이 블랙박스처럼 숨겨져 있으므로 결과만 확인할 수 있습니다. --- p.320 |
|
LLM의 환각을 잡고 실무형 AI 서비스를 완성하는 가장 친절한 로드맵
이 책은 단순히 LLM(대형 언어 모델)을 호출하는 것을 넘어, 원하는 지식을 정확하고 신뢰성 있게 답변하는 AI 서비스를 구축하고 싶은 독자를 위한 라마인덱스(LlamaIndex) 실전 가이드다. 생성형 AI의 최대 약점인 환각 현상을 해결하는 핵심 기술인 RAG(검색 증강 생성)부터, 스스로 판단하고 행동하는 AI 에이전트 구축까지, 실무에서 바로 적용할 수 있는 개발 노하우를 한 권에 담았다. 특히 이 책의 가장 큰 강점은 한국어 중심의 실습 데이터와 매우 친절하고 상세한 실습 안내다. 한국어 문서를 기반으로 실습을 진행하며, 한국어 형태소 분석, 불용어 처리 등 국내 실정에 맞는 구체적인 검색 최적화 전략을 자연스럽게 익힐 수 있다. 또한, 라마인덱스를 처음 접하는 초심자도 막히지 않도록 개발 환경 설정부터 API 발급까지 단계별로 안내하여, 누구나 처음부터 끝까지 편하게 실습을 따라갈 수 있도록 구성했다. 책 내용은 단순한 기능 나열에 그치지 않고, 기술의 진화 흐름에 맞춰 체계적으로 학습할 수 있도록 전개된다. ‘RAG 파이프라인 구현 → 고급 검색 알고리즘 → 멀티모달과 문서 처리 → AI 에이전트와 UI 구현’까지 이어지는 학습 구조는 실무에서 가이드로 삼을 만큼 완성도가 높다. AI 기술을 업무에 도입하려는 개발자뿐만 아니라, LLM의 작동 원리를 이해하고 설계하려는 기획자와 연구자에게도 훌륭한 길잡이가 되어줄 것이다. 이 책은 여러분을 ‘AI를 이해하고 설계하는 사람’으로 이끄는 가장 쉽고 빠른 길이 될 것이다. 복잡한 AI 기술을 내 손으로 직접 구현하고 확인해보자. 주요 내용 - RAG 시스템의 목적·구조·선택 기준 정리 - 라마인덱스 기반 인덱싱·임베딩·검색 구현 - 멀티모달 문서를 처리하는 라마파스 실전 활용법 - ReAct·Function Calling 기반 AI 에이전트 고급 설계 - 스트림릿·그라디오 기반 프로토타입 UI 제작 - 벡터 DB(FAISS/Chroma) 활용 및 최적화 |
|
시중의 RAG 관련 도서가 대부분 기본적인 튜토리얼에만 집중하는 것과 달리, 이 책은 ‘왜 이 문제에 RAG가 필요한가’라는 본질적인 질문에서 출발해 에이전트까지 자연스럽게 이어집니다. 특히 ‘실무에서는 에이전트를 무조건 쓰는 것이 답이 아니다’라는 전문가의 솔직한 조언이 인상적입니다. 라마인덱스를 활용한 실전 예제와 ReAct, Function Calling의 유기적 연결에 대한 설명은, LLM을 단순히 ‘쓰는 사람’에서 ‘이해하고 설계하는 사람’으로 성장하고 싶은 개발자들에게 최고의 가이드가 될 것입니다. - 강다솔 (《한 권으로 끝내는 실전 LLM 파인튜닝》 저자)
|
|
LLM 기반 프로덕트를 개발한다면 RAG는 선택이 아닌 필수입니다. 하지만 튜토리얼 수준을 뛰어넘는 제대로 된 가이드를 찾기란 쉽지 않았습니다. 이 책은 라마인덱스를 활용한 RAG 구현부터 에이전트 설계까지, 실무에서 바로 적용 가능한 전략과 코드를 제공합니다. 특히 에이전트의 한계를 솔직하게 다루며, 언제 사용해야 하는지에 대한 실전 판단 기준을 명확하게 제시합니다. LLM을 활용한 AI 서비스 개발을 준비하는 개발자에게 이 책은 가장 확실한 출발점이 되어줄 것입니다. - 김신영 (현대오토에버 Center of Excellence)
|
|
LLM 시대에 필요한 것은 화려한 데모가 아니라 견고한 설계 능력입니다. 이 책은 라마인덱스로 RAG의 기초를 탄탄히 다진 후, 실무 프로젝트에서 곧바로 적용할 수 있는 고급 기법들을 단계적으로 펼쳐냅니다. 저자의 현장 경험에서 우러난 인사이트와 트러블슈팅 노하우가 곳곳에 배어 있어, 같은 실수를 반복하지 않도록 도와줍니다. AI를 블랙박스가 아닌 협력 가능한 시스템으로 만들고 싶은 개발자라면 반드시 읽어야 할 필독서입니다. - 이재홍 (네이버클라우드 LLM 엔지니어)
|