第 1章 RAG概述 001
1.1 人工智能和自然语言处理概述 001
1.1.1 人工智能的定义和发展历史 001
1.1.2 自然语言处理的概念和基本任务 001
1.2 自然语言处理在大数据时代的挑战与机遇 003
1.2.1 大数据时代对自然语言处理的影响 003
1.2.2 大数据时代的自然语言处理技术发展趋势 004
1.3 基于RAG的大模型文档搜索概述 006
1.3.1 RAG模型的含义和基本原理 006
1.3.2 大模型文档搜索在信息检索领域的重要性 007
1.4 基于RAG的大模型文档搜索的工作原理 008
1.4.1 Retriever模块的工作原理 008
1.4.2 Generator模块的工作原理 009
1.4.3 Ranker模块的工作原理 011
1.5 基于RAG的大模型文档搜索的优势和应用场景 012
1.5.1 优势 012
1.5.2 应用场景 014
第 2章 PyTorch编程基础 017
2.1 PyTorch简介 017
2.2 PyTorch安装与环境配置 018
2.2.1 安装PyTorch 018
2.2.2 环境配置 019
2.2.3 常见安装问题及解决方法 019
2.3 PyTorch张量 020
2.3.1 张量的创建 020
2.3.2 张量的基本运算 023
2.3.3 张量的索引和切片 026
2.3.4 张量的形状操作 029
2.4 PyTorch自动微分 032
2.4.1 梯度计算 032
2.4.2 反向传播 033
2.4.3 停止梯度传播 035
2.5 PyTorch模型构建 037
2.5.1 搭建神经网络模型 037
2.5.2 模型参数的访问和初始化 039
2.6 PyTorch数据加载与预处理 041
2.6.1 数据加载 041
2.6.2 数据预处理 043
2.7 PyTorch模型训练与评估 045
2.7.1 模型训练 045
2.7.2 模型评估 049
2.8 PyTorch模型保存与加载 053
2.8.1 模型的保存 053
2.8.2 模型的加载 054
2.9 小结 056
第3章 深度学习基础 057
3.1 感知机和多层感知机 057
3.1.1 感知机的原理和结构 057
3.1.2 多层感知机的结构和前向传播 058
3.1.3 多层感知机的训练算法 059
3.2 卷积神经网络 061
3.2.1 卷积层和池化层 061
3.2.2 CNN的典型结构:LeNet、AlexNet、VGG、ResNet 064
3.3 循环神经网络 073
3.3.1 RNN的结构和原理 073
3.3.2 长短期记忆网络 075
3.3.3 门控循环单元 076
3.4 Transformer模型 078
3.4.1 Self-Attention机制 078
3.4.2 Transformer架构 080
3.4.3 Transformer在机器翻译、语言建模等任务中的应用 084
3.5 BERT模型 084
3.5.1 BERT的预训练任务和目标 084
3.5.2 BERT的结构、原理和应用 088
3.6 GPT大模型 089
3.6.1 GPT的预训练任务和目标 089
3.6.2 GPT的结构、原理和应用 090
3.7 深度学习的优化算法 091
3.7.1 梯度下降和反向传播 091
3.7.2 SGD和Adam 094
3.7.3 学习率调整策略 096
3.8 深度学习的正则化和防止过拟合方法 099
3.8.1 L1和L2正则化 099
3.8.2 Dropout和Batch Normalization 101
第4章 自然语言处理基础 103
4.1 基础知识 103
4.1.1 分词算法 103
4.1.2 关键词提取 106
4.1.3 摘要提取 110
4.2 模型如何看懂文字 113
4.3 ChatGPT大模型 117
4.3.1 GPT模型的发展历程 118
4.3.2 ChatGPT模型概述 119
4.3.3 ChatGPT模型的原理和发展方向 120
第5章 Web可视化 121
5.1 Streamlit介绍 121
5.1.1 概述 121
5.1.2 主要功能 122
5.1.3 应用场景 132
5.2 Gradio介绍 145
5.2.1 概述 145
5.2.2 主要功能 147
5.2.3 应用场景 153
第6章 RAG文档分块和向量化 164
6.1 文档分块概述 164
6.1.1 文档分块的定义和作用 164
6.1.2 常见的文档分块算法 166
6.1.3 文档分块在信息检索和自然语言处理中的应用 168
6.2 文档分块方法 171
6.2.1 基于规则的文档分块方法 171
6.2.2 基于机器学习的文档分块方法 173
6.2.3 基于深度学习的文档分块方法 174
6.3 文档向量化概述 178
6.3.1 文档向量化的定义和作用 178
6.3.2 文档向量化在自然语言处理中的应用场景 179
6.3.3 文档向量化的评估指标 181
6.4 基于词袋模型的文档向量化方法 183
6.4.1 词频矩阵 183
6.4.2 TF-IDF矩阵 185
6.4.3 Hot编码 187
6.4.4 哈希编码 188
6.5 基于词嵌入模型的文档向量化方法 190
6.5.1 Word2Vec 190
6.5.2 fastText 191
6.5.3 Doc2Vec 193
6.6 基于预训练模型的文档向量化方法 195
6.6.1 BERT文档向量化 195
6.6.2 GPT文档向量化 197
第7章 RAG向量检索技术 199
7.1 向量检索技术的定义和应用场景 199
7.1.1 向量检索技术的定义 199
7.1.2 向量检索技术的应用场景 200
7.2 向量间距离的计算 204
7.2.1 内积距离 204
7.2.2 欧式距离 206
7.2.3 汉明距离 207
7.2.4 杰卡德距离 208
7.3 基于树的方法 210
7.3.1 KNN算法 210
7.3.2 KD-树 211
7.3.3 Annoy 212
7.4 基于哈希的方法 214
第8章 RAG中的Prompt技术 216
8.1 特定指令模式 217
8.2 指令模板模式 223
8.3 代理模式 227
8.4 示例模式 231
8.5 零样本提示模式 231
8.6 少样本提示模式 233
8.7 思维链提示模式 234
8.7.1 零样本CoT 235
8.7.2 少样本CoT 237
第9章 动手实现PDF阅读器 239
9.1 PDF内容提取 239
9.2 PDF文档分块 241
9.3 PDF文档向量化 243
9.4 PDF文档相似度计算 244
9.5 大模型回答 246