本书基于DeepSeek模型,详细介绍RAG技术的原理与实战应用知识。本书共分为9章,从RAG基础概念、数据收集与处理、文本检索与生成技术到模型训练、优化与动态RAG的构建,全面覆盖了RAG开发的核心技术要点。书中详细讲解了向量化技术、检索算法、多模态嵌入及文本生成算法的实现过程,并提供了丰富的实际案例。此外,本书还特别介绍了如何利用多个模型构建高效的聊天助手,结合前沿的动态RAG方法提升系统性能。
本书不仅涵盖标准RAG的构建与提示工程,还深入讲解了高级RAG技术,如分块与向量化、重排与过滤、智能查询路由与响应合成等内容,并探讨了RAG的融合与评估方法。通过一系列系统化的案例与实操讲解,帮助读者全面掌握RAG技术的理论与实践。
无论你是人工智能领域的技术开发者、学术研究人员、高校师生,还是对大模型及检索生成技术感兴趣的初学者,本书都将为你提供从入门到进阶的全方位指导,助你在RAG开发与应用中获得深刻的理解与技能提升。
第1章 RAG开发基础 001
1.1 初步认识RAG 002
1.1.1 RAG的提出背景 002
1.1.2 RAG的工作原理 002
1.1.3 RAG的优势 003
1.1.4 RAG的挑战 004
1.2 RAG的架构 005
1.2.1 数据准备阶段 005
1.2.2 应用阶段 006
1.3 标准RAG 007
1.3.1 标准RAG的实现流程 007
1.3.2 提示工程 007
1.4 高级RAG 008
1.4.1 分块和向量化 008
1.4.2 搜索索引 008
1.4.3 重排和过滤 009
1.4.4 查询转换 010
1.4.5 聊天引擎 010
1.4.6 查询路由 011
1.4.7 智能体 011
1.4.8 响应合成 011
1.5 开发前的准备工作 011
1.5.1 RAG开发技术栈 012
1.5.2 用Ollama本地部署DeepSeek模型 012
1.5.3 申请DeepSeek API密钥 014
1.6 RAG程序实战体验 015
1.6.1 基于本地DeepSeek模型的AI助手 016
1.6.2 基于DeepSeek API的AI助手 017
第2章 数据收集与处理 020
2.1 数据收集 021
2.1.1 选择数据源的因素 021
2.1.2 常用的数据收集工具 022
2.2 数据增强 023
2.2.1 数据增强的常用方法 023
2.2.2 文本数据增强 024
2.2.3 基于LLM标注的标签混合 025
2.2.4 文本扩展增强 026
2.2.5 数据合成 028
2.2.6 噪声注入 033
2.2.7 鲁棒性 036
2.2.8 数据标注和对齐 040
2.3 特征提取 044
2.3.1 特征的基本概念和作用 044
2.3.2 嵌入 045
2.3.3 词袋模型 046
2.3.4 TF-IDF特征 047
第3章 文本检索 049
3.1 文本检索简介 050
3.1.1 文本检索的相关概念 050
3.1.2 RAG应用中的检索模型 050
3.1.3 传统检索模型 051
3.1.4 现代神经检索模型演进 051
3.2 检索算法分类与实现 052
3.2.1 统计检索算法 052
3.2.2 语义检索算法 056
3.2.3 近似最近邻检索原理与优化 060
3.2.4 Elasticsearch检索 062
3.3 向量化技术 065
3.3.1 向量化技术简介 065
3.3.2 词向量技术 065
3.3.3 上下文感知嵌入 067
3.3.4 文档级向量化策略 070
3.3.5 句子嵌入 072
第4章 文本生成技术与可控输出 074
4.1 生成式模型基础 075
4.1.1 文本生成范式 075
4.1.2 RAG应用中的文本生成 075
4.2 主流生成模型架构 077
4.2.1 RNN/LSTM的序列生成 077
4.2.2 Transformer核心机制 089
4.2.3 预训练语言模型的演进总结 091
4.3 生成控制技术 092
4.3.1 解码策略 092
4.3.2 参数调控 095
4.3.3 约束生成 098
4.3.4 安全与伦理过滤机制 099
4.4 基于本地PDF图书内容的AI问答系统 101
4.4.1 项目介绍 101
4.4.2 准备环境 102
4.4.3 语言模型的集成与优化 104
4.4.4 基于LangChain的多文档检索器 111
4.4.5 系统测试 118
第5章 RAG模型的训练与调优 122
5.1 模型训练流程 123
5.2 核心训练技术 124
5.2.1 预训练与微调 124
5.2.2 多任务学习 127
5.2.3 注意力机制与改进 130
5.2.4 对比学习与负采样优化 132
5.2.5 迁移学习和微调 135
5.2.6 调整动态学习率 137
5.2.7 混合精度训练与分布式训练 140
5.3 基于DeepSeek和RAG的本地知识库系统 142
5.3.1 RAG架构 143
5.3.2 基于本地书籍知识的RAG程序 143
5.3.3 本地知识库系统 149
5.4 微调DeepSeek-R1-Distill-Qwen模型 152
5.4.1 DeepSeek-R1-Distill-Qwen介绍 152
5.4.2 具体实现 153
第6章 模型评估与优化策略 162
6.1 模型评估基础 163
6.1.1 模型评估的必要性 163
6.1.2 常用的评估指标 164
6.2 模型的性能评估 167
6.2.1 单模态模型的性能评估 167
6.2.2 多模态模型融合性能评估 169
6.2.3 效率评估 170
6.2.4 端到端评估指标 172
6.3 模型验证方法论 174
6.3.1 数据准备和分割 174
6.3.2 交叉验证与对抗样本测试 176
6.3.3 模型鲁棒性验证 181
6.4 模型优化技术进阶 183
6.4.1 检索器优化 183
6.4.2 生成器优化 185
6.4.3 系统级优化 186
6.5 基于RAG、GRPO和DeepSeek的问答系统 187
6.5.1 项目介绍 187
6.5.2 准备训练环境 188
6.5.3 加载并配置DeepSeek R1模型 190
6.5.4 初始化向量数据库集合 190
6.5.5 模型评估 191
6.5.6 基于GRPO的RAG 193
6.5.7 基于RAG与GRPO的训练 198
6.5.8 文本嵌入和数据准备 199
6.5.9 主函数 200
第7章 嵌入表示和生成 203
7.1 大模型嵌入基础 204
7.1.1 大模型嵌入介绍 204
7.1.2 大模型嵌入的应用 204
7.2 图像嵌入 205
7.2.1 图像嵌入介绍 205
7.2.2 图像特征提取 206
7.2.3 模态对齐 209
7.2.4 CLIP模型 212
7.2.5 DALL-E模型 213
7.3 文本嵌入 215
7.3.1 大模型中的文本嵌入 215
7.3.2 基于CLIP模型的文本嵌入 217
7.4 音频嵌入 218
7.4.1 音频特征提取 218
7.4.2 常用音频嵌入模型 220
7.5 基于CLIP大模型的图像搜索引擎 223
7.5.1 项目介绍 223
7.5.2 CLIP大模型的配置参数 224
7.5.3 数据集处理 225
7.5.4 实现Bangla CLIP模型 229
7.5.5 基于文本的图像搜索 231
7.5.6 基于Streamlit的Web客户端 232
第8章 动态RAG 235
8.1 动态RAG概述 236
8.1.1 动态RAG与传统RAG的区别 236
8.1.2 动态RAG的适用场景 237
8.2 动态检索模块 238
8.2.1 实时数据流的接入与处理 238
8.2.2 动态索引构建 242
8.2.3 检索结果的实时更新 245
8.3 动态生成模块 248
8.3.1 基于实时上下文的生成 248
8.3.2 动态提示设计 251
8.3.3 多模态生成的动态适配 254
8.3.4 动态生成中的一致性与连贯性 256
8.4 动态RAG的优化技术 257
8.4.1 动态环境中的微调策略 257
8.4.2 在线学习与模型更新 260
8.4.3 动态检索与生成的协同优化 263
8.4.4 动态负载均衡 266
第9章 基于多模型的聊天助手(DeepSeek/ Ollama/ChromaDB/JWT/OpenAI+LangChain) 269
9.1 项目介绍 270
9.2 系统配置 271
9.2.1 配置API密钥 271
9.2.2 Docker配置 273
9.3 后端模块 276
9.3.1 数据库模型 276
9.3.2 大模型服务封装 279
9.3.3 向量数据库的封装与管理 281
9.3.4 文件存储与身份安全封装 284
9.3.5 业务服务与API路由 286
9.3.6 Docker与部署 300
9.3.7 FastAPI主界面 301
9.4 前端模块 301
9.4.1 入口与布局 302
9.4.2 页面模块 305
9.5 调试运行 315