目 录
第1章 RAG入门 1
1.1 RAG的定义 2
1.2 简易、高级和模块化RAG 3
1.3 RAG对比微调 4
1.4 RAG生态 5
1.4.1 检索器(D) 5
1.4.2 生成器(G) 7
1.4.3 评估器(E) 8
1.4.4 训练器(T) 8
1.5 简易、高级和模块化RAG代码 8
1.5.1 第1部分:搭建环境与基本实现 9
1.5.2 第2部分:高级方法与评估 13
1.6 小结 25
1.7 问题 26
1.8 参考文献 26
1.9 扩展阅读 26
第2章 基于Deep Lake和OpenAI的RAG嵌入向量库 27
2.1 从原始数据到嵌入 28
2.2 按流水线组织RAG 29
2.3 RAG生成式AI流水线 30
2.4 搭建RAG流水线 31
2.4.1 配置环境 31
2.4.2 流水线组件1:数据采集与准备 35
2.4.3 流水线组件2:数据嵌入与存储 38
2.4.4 流水线组件3:增强输入生成 43
2.5 小结 50
2.6 问题 51
2.7 参考文献 51
2.8 扩展阅读 51
第3章 使用LlamaIndex、Deep Lake和OpenAI构建基于索引的RAG 53
3.1 使用基于索引RAG的原因 54
3.2 为无人机创建语义搜索引擎和生成式智能体 56
3.2.1 安装环境 57
3.2.2 流水线组件1:采集并准备文档 57
3.2.3 流水线组件2:创建并填充Deep Lake向量库 60
3.2.4 流水线组件3:基于索引的RAG 64
3.3 向量库索引查询引擎 66
3.3.1 查询响应和来源 67
3.3.2 优化组块 68
3.3.3 性能指标 69
3.4 树索引查询引擎 70
3.5 列表索引查询引擎 72
3.6 关键词索引查询引擎 74
3.7 小结 76
3.8 问题 76
3.9 参考文献 77
3.10 扩展阅读 77
第4章 无人机技术中的多模态模块化RAG 79
4.1 多模态模块化RAG 80
4.2 编写无人机技术多模态模块化RAG程序 82
4.2.1 加载LLM数据集 82
4.2.2 加载和可视化多模态数据集 84
4.2.3 多模态数据集导航 87
4.2.4 创建多模态查询引擎 90
4.2.5 多模态模块化RAG小结 94
4.2.6 性能指标 95
4.3 小结 98
4.4 问题 99
4.5 参考文献 100
4.6 扩展阅读 100
第5章 使用专家人类反馈提升RAG性能 101
5.1 自适应RAG 102
5.2 使用Python创建混合自适应RAG 104
5.2.1 检索器 104
5.2.2 生成器 107
5.2.3 评估器 115
5.3 小结 120
5.4 问题 120
5.5 参考文献 121
5.6 扩展阅读 121
第6章 使用Pinecone扩展RAG银行客户数据 123
6.1 使用Pinecone进行扩展 124
6.2 流水线组件1:采集并准备数据集 125
6.2.1 采集和处理数据集 126
6.2.2 探索性数据分析 129
6.2.3 训练机器学习模型 132
6.3 流水线组件2:扩展Pinecone索引(向量库) 135
6.3.1 管理向量库所面临的挑战 136
6.3.2 安装环境 137
6.3.3 处理数据集 137
6.3.4 切块并嵌入数据集 138
6.3.5 创建Pinecone索引 142
6.3.6 更新插入 143
6.3.7 查询Pinecone索引 145
6.4 流水线组件3:RAG生成式AI 147
6.4.1 基于GPT-4的RAG 147
6.4.2 提取相关文本 149
6.4.3 增强提示词 150
6.4.4 增强生成 150
6.5 小结 153
6.6 问题 153
6.7 参考文献 154
6.8 扩展阅读 154
第7章 使用维基百科API和LlamaIndex创建可扩展的知识图谱RAG 155
7.1 基于知识图谱语义搜索的RAG架构 156
7.2 流水线组件1:采集并准备文档 160
7.2.1 检索维基百科数据及元数据 161
7.2.2 准备数据以执行更新插入 164
7.3 流水线组件2:创建并填充Deep Lake向量库 165
7.4 流水线组件3:基于知识图谱索引的RAG 166
7.4.1 生成知识图谱索引 167
7.4.2 展示图谱 168
7.4.3 与知识图谱索引交互 169
7.4.4 安装相似度分数计算库并定义函数 170
7.4.5 重排 170
7.4.6 示例指标 171
7.5 小结 176
7.6 问题 177
7.7 参考文献 177
7.8 扩展阅读 177
第8章 基于Chroma和Hugging Face Llama创建动态RAG 179
8.1 动态RAG架构 180
8.2 安装环境 182
8.2.1 Hugging Face 182
8.2.2 Chroma 184
8.3 激活会话时间 185
8.4 下载并准备数据集 186
8.5 嵌入并向Chroma插入数据 187
8.5.1 选择模型 188
8.5.2 嵌入并存储 189
8.5.3 展示嵌入 190
8.6 查询集合 191
8.7 提示与检索 194
8.8 使用Llama开发RAG 196
8.9 总会话时长 199
8.10 小结 199
8.11 问题 200
8.12 参考文献 200
8.13 扩展阅读 200
第9章 赋能AI模型:微调RAG数据和人类反馈 203
9.1 微调静态RAG数据的架构 204
9.2 安装环境 206
9.3 准备微调数据集 207
9.3.1 下载并可视化数据集 207
9.3.2 准备微调数据集 208
9.4 微调模型 209
9.5 使用经过微调的OpenAI模型 213
9.6 指标 215
9.7 小结 217
9.8 问题 218
9.9 参考文献 218
9.10 扩展阅读 218
第10章 使用Pinecone和OpenAI实现视频生成RAG 219
10.1 视频生成RAG架构 220
10.2 搭建视频生成环境 222
10.2.1 导入模块和库 223
10.2.2 GitHub 223
10.2.3 OpenAI 224
10.2.4 Pinecone 225
10.3 流水线组件1:生成器和注释器 225
10.3.1 AI视频数据集 226
10.3.2 生成器和注释器 233
10.4 流水线组件2:向量库管理器 239
10.5 流水线组件3:视频专家 244
10.6 小结 248
10.7 问题 248
10.8 参考文献 249
10.9 扩展阅读 249
附录 251
