目 录
第Ⅰ部分 基 础 知 识
第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
