構建RAG系統:原理、架構與工程實踐

(印)阿比納夫·基莫西

相關主題

商品描述

如果你想利用大語言模型來回答關於定業務的問題,那可能要失望了。大語言模型或許對此一無所知,甚可能編造答案。RAG是一種能夠解決這類問題的方法。該模型先從你的知識存儲(搜索索引、向量數據庫或一組文檔)中檢索出相關的信息,然後以用戶的提問和檢索到的材料為背景生成答案。這樣既能避模型“幻覺”(虛構事實),又能讓你決定它輸出的內容。《構建RAG系統:原理、架構與工程實踐》是一本以通俗易懂的語言介紹RAG的指南。本書易於理解,且含大量貼合實際的Python代碼示例。它會循序漸進地引導你,從初次接觸RAG的基礎知識,到探索使用LangChain等工具和Python庫簡化RAG應用的高級方法。為確你真正理解RAG的工作原理,使你是人工智能領域的新手,本書也將助力你手搭建一個完整的系統!主要內容:?RAG的組件與應用?RAG系統評估?實現RAG的工具與框架

作者簡介

AbhinavKimothi是一位經驗豐富的數據與人工智能專家。他在數據科學、機器學習和人工智能領域擔任顧問與領導職務超過15年,目前是Sigmoid公司的數據科學總監。

目錄大綱

第Ⅰ分 基 礎 知 識
第1章 LLM與對RAG的需求 3
1.1 LLM的詛咒與RAG的思想 4
1.1.1 LLM不是針對事實進行訓練的 6
1.1.2 什麼是RAG 8
1.2 RAG的新穎性 11
1.2.1 RAG的發現 12
1.2.2 RAG如何提供幫助 12
1.3 常見的RAG應用場景 14
1.3.1 搜索引擎體驗 14
1.3.2 個性化營銷內容生成 14
1.3.3 實時事件 15
1.3.4 會話智能體 15
1.3.5 文檔問答系統 16
1.3.6 虛擬助手 16
1.3.7 AI驅動的研究 16
1.3.8 社交媒體監控和情緒分析 17
1.3.9 新聞生成與內容選 17
本章小結 18
第2章 RAG系統及其設計 19
2.1 RAG系統是什麼樣的 20
2.2 RAG系統的設計 24
2.3 索引管道 26
2.4 生成管道 28
2.5 評估及監測 29
2.6 RAGOps棧 31
2.7 緩存、護欄、及其他層 31
本章小結 32
第Ⅱ分 創建RAG系統
第3章 索引管道:為RAG創建知識庫 35
3.1 數據加載 36
3.2 數據分割(分塊) 41
3.2.1 分塊的點 41
3.2.2 分塊過程 42
3.2.3 分塊方法 42
3.2.4 選擇分塊策略 49
3.3 數據轉換(嵌入) 50
3.3.1 什麼是嵌入 50
3.3.2 常見的預訓練嵌入模型 53
3.3.3 嵌入應用場景 54
3.3.4 如何選擇嵌入模型 58
3.4 存儲(向量數據庫) 58
3.4.1 什麼是向量數據庫 58
3.4.2 向量數據庫的類型 59
3.4.3 選擇向量數據庫 61
本章小結 63
第4章 生成管道:生成與上下文相關的LLM響應 65
4.1 生成管道概況 66
4.2 檢索 67
4.2.1 檢索方法的演進 69
4.2.2 流行的檢索器 76
4.2.3 一個簡單的檢索器實現 77
4.3 增強 78
4.3.1 RAG提示工程技術 79
4.3.2 創建一個簡單的增強提示 85
4.4 生成 86
4.4.1 LLM的分類及其對RAG的適用性 87
4.4.2 完成RAG管道:使用LLM生成 93
本章小結 95
第5章 RAG評估的性、相關性及忠實度 98
5.1 RAG評估的關鍵要素 99
5.1.1 質量分數 100
5.1.2 需求 100
5.2 評估指標 102
5.2.1 檢索指標 103
5.2.2 RAG用指標 110
5.3 框架 116
5.3.1 RAGAs 116
5.3.2 ARES 123
5.4 基準 124
5.4.1 RGB 125
5.4.2 多跳RAG 126
5.4.3 綜合性RAG基準 127
5.5 局限性與佳實踐 129
本章小結 131
第Ⅲ分 生產中的RAG
第6章 RAG系統的演化:基礎版、高級版及模塊化版 137
6.1 基礎RAG的局限 138
6.2 高級RAG技術 140
6.3 預檢索技術 141
6.3.1 索引化 142
6.3.2 查詢化 147
6.4 檢索策略 151
6.4.1 混合檢索 151
6.4.2 疊代檢索 152
6.4.3 遞歸檢索 152
6.4.4 自適應檢索 152
6.5 後檢索技術 154
6.5.1 壓縮 154
6.5.2 重新排序 154
6.6 模塊化RAG 157
6.6.1 核心模塊 158
6.6.2 新模塊 159
本章小結 161
第7章 RAGOps棧的疊代升級 164
7.1 演進中的RAGOps棧 165
7.1.1 關鍵層 166
7.1.2 基礎層 175
7.1.3 增強層 179
7.2 生產佳實踐 182
本章小結 184
第Ⅳ分 其他考慮事項
第8章 各種RAG變體 189
8.1 RAG變體及其要性 190
8.2 多模態RAG 191
8.2.1 數據模態 191
8.2.2 多模態RAG的應用場景 192
8.2.3 多模態RAG管道 193
8.2.4 挑戰與佳實踐 200
8.3 知識圖譜RAG 201
8.3.1 知識圖譜 202
8.3.2 知識圖譜RAG的應用場景 203
8.3.3 知識圖譜RAG方法 204
8.3.4 圖譜RAG管道 208
8.3.5 挑戰與佳實踐 212
8.4 Agentic RAG 212
8.4.1 LLM智能體 213
8.4.2 Agentic RAG的 216
8.4.3 Agentic RAG管道 217
8.4.4 挑戰與佳實踐 220
8.5 其他RAG變體 220
8.5.1 校正RAG 221
8.5.2 推測RAG 222
8.5.3 自反思RAG 223
8.5.4 RAPTOR 224
本章小結 225
第9章 RAG開發框架與深入探索 228
9.1 RAG開發框架 229
9.1.1 啟動段:定義RAG系統並劃定範圍 231
9.1.2 設計段:RAGOps棧的分層 236
9.1.3 開發段:創建模塊化的RAG管道 245
9.1.4 評估段:驗證並化RAG系統 248
9.1.5 署段:啟動並擴展RAG系統 251
9.1.6 維護段:確可靠性及適應性 252
9.2 進一步探索的想法 253
9.2.1 RAG中的微調 253
9.2.2 LLM中的長上下文窗口 255
9.2.3 托管解決方案 256
9.2.4 覆雜查詢 256
本章小結 257