目录
第 1 章 自然语言处理领域探索 1
1.1 本书目标读者 1
1.2 自然语言处理的定义 2
1.3 NLP 的历史和演变 2
1.4 自然语言机器处理的初步策略 3
1.5 成功的协同效应—自然语言处理与机器学习的结合 6
1.6 自然语言处理中的数学和统计学简介 7
1.7 理解语言模型—以 ChatGPT 为例 9
1.8 小结 9
1.9 问答 10
第 2 章 掌握与机器学习和自然语言处理相关的线性代数、概率和统计学 12
2.1 线性代数简介 12
2.1.1 标量和向量的基本运算 13
2.1.2 矩阵的基本运算 15
2.1.3 矩阵定义 16
2.1.4 行列式 16
2.2 特征值和特征向量 18
2.2.1 寻找特征向量的数值方法 18
2.2.2 特征值分解 19
2.2.3 奇异值分解 20
2.3 机器学习的概率基础 21
2.3.1 统计独立 22
2.3.2 离散随机变量及其分布 23
2.3.3 概率密度函数 23
2.3.4 最大似然估计 25
2.3.5 单词预测 27
2.3.6 贝叶斯估计 29
2.4 小结 29
2.5 延伸阅读 30
2.6 参考文献 31
第 3 章 释放机器学习在自然语言处理中的潜力 32
3.1 技术要求 32
3.2 数据探索 32
3.2.1 数据探索的意义 33
3.2.2 数据探索常用技术 33
3.3 数据可视化 34
3.4 数据清洗 35
3.4.1 处理缺失值 35
3.4.2 删除重复项 36
3.4.3 数据标准化和转换 37
3.4.4 处理离群值 37
3.4.5 纠正错误 38
3.5 特征选择 39
3.5.1 筛选方法 39
3.5.2 包装器方法 42
3.5.3 嵌入方法 42
3.5.4 降维技术 45
3.6 特征工程 48
3.6.1 特征缩放 48
3.6.2 特征构建 49
3.7 常见的机器学习模型 52
3.7.1 线性回归 52
3.7.2 逻辑回归 53
3.7.3 决策树 54
3.7.4 随机森林 56
3.7.5 支持向量机 58
3.7.6 神经网络和 Transformer 59
3.8 模型欠拟合和过拟合 62
3.8.1 欠拟合和过拟合简介 62
3.8.2 偏差-方差权衡 63
3.8.3 欠拟合和过拟合的改进 65
3.9 拆分数据 67
3.9.1 训练-测试拆分 67
3.9.2 k 折交叉验证 67
3.9.3 时间序列数据拆分 68
3.10 超参数调整 69
3.11 集成模型 71
3.11.1 装袋法 71
3.11.2 提升法 72
3.11.3 堆叠法 73
3.11.4 随机森林 74
3.11.5 梯度提升 74
3.12 处理不平衡数据 76
3.12.1 SMOTE 77
3.12.2 NearMiss 算法 78
3.12.3 成本敏感型学习 79
3.12.4 数据增强 80
3.13 处理相关数据 81
3.14 小结 82
3.15 参考文献 82
第 4 章 进行有效文本预处理以实现最佳 NLP 性能 83
4.1 技术要求 83
4.2 小写处理 84
4.3 删除特殊字符和标点符号 84
4.4 停用词删除 85
4.5 拼写检查和纠正 85
4.6 词形还原 86
4.7 词干提取 86
4.8 命名实体识别 87
4.9 词性标注 89
4.9.1 基于规则的方法 90
4.9.2 统计方法 90
4.9.3 基于深度学习的方法 91
4.10 正则表达式 92
4.10.1 验证输入 93
4.10.2 文本操作 93
4.10.3 文本清洗 94
4.10.4 解析 95
4.11 标记化 96
4.12 文本预处理流程解释 97
4.12.1 文本预处理 97
4.12.2 命名实体识别和词性标注 99
4.13 小结 100
第 5 章 利用传统机器学习技术增强文本分类能力 101
5.1 技术要求 102
5.2 文本分类的类型 102
5.3 监督学习 103
5.3.1 朴素贝叶斯 104
5.3.2 逻辑回归 104
5.3.3 支持向量机 104
5.4 无监督学习 104
5.4.1 聚类 105
5.4.2 LDA 105
5.4.3 词嵌入 105
5.5 半监督学习 105
5.5.1 标签传播 106
5.5.2 协同训练 106
5.5.3 半监督学习应用举例 106
5.6 使用独热编码向量表示进行句子分类 107
5.6.1 文本预处理 107
5.6.2 词汇构建 108
5.6.3 独热编码 108
5.6.4 N-gram 109
5.6.5 模型训练 109
5.7 使用 TF-IDF 进行文本分类 110
5.7.1 TF-IDF 计算的数学解释 110
5.7.2 TF-IDF 应用实例 111
5.8 使用 Word2Vec 进行文本分类 113
5.8.1 CBOW 和 skip-gram 架构的数学解释 113
5.8.2 使用 Word2Vec 进行文本分类的具体步骤 114
5.8.3 模型评估 115
5.8.4 混淆矩阵 117
5.8.5 过拟合和欠拟合 118
5.8.6 超参数调整 119
5.8.7 文本分类应用中的其他问题 120
5.9 主题建模—无监督文本分类的一个特殊用例 122
5.9.1 LDA 的工作原理和数学解释 122
5.9.2 LDA 应用示例 123
5.10 用于文本分类任务的真实机器学习系统设计 125
5.10.1 商业目标 125
5.10.2 技术目标 125
5.10.3 初步高层系统设计 126
5.10.4 选择指标 126
5.10.5 探索 127
5.10.6 实现机器学习解决方案 128
5.11 Jupyter Notebook 中用于文本分类任务的机器学习系统设计 129
5.11.1 商业目标 129
5.11.2 技术目标 129
5.11.3 工作流程 130
5.11.4 代码设置 130
5.11.5 收集数据 130
5.11.6 处理数据 130
5.11.7 预处理 131
5.11.8 初步数据探索 131
5.11.9 特征工程 131
5.11.10 探索新的数值特征 132
5.11.11 拆分为训练集/测试集 132
5.11.12 初步统计分析及可行性研究 132
5.11.13 特征选择 134
5.11.14 迭代机器学习模型 134
5.11.15 生成所选模型 135
5.11.16 生成训练结果—用于设计选择 135
5.11.17 生成测试结果—用于展示性能 135
5.12 小结 136
第 6 章 重新构想文本分类:深度学习语言模型研究 137
6.1 技术要求 138
6.2 了解深度学习基础知识 138
6.2.1 神经网络的定义 139
6.2.2 使用神经网络的动机 139
6.2.3 神经网络的基本设计 141
6.2.4 神经网络常用术语 142
6.3 不同神经网络的架构 146
6.4 训练神经网络的挑战 149
6.5 语言模型 151
6.5.1 半监督学习 152
6.5.2 无监督学习 152
6.5.3 自监督学习 152
6.5.4 迁移学习 153
6.6 Transformer 详解 155
6.6.1 Transformer 的架构 155
6.6.2 Transformer 的应用 156
6.7 了解有关大语言模型的更多信息 156
6.8 训练语言模型的挑战 157
6.9 语言模型的具体设计 158
6.9.1 BERT 简介 158
6.9.2 对 BERT 进行微调以完成文本分类任务 160
6.9.3 GPT-3 简介 162
6.9.4 使用 GPT-3 的挑战 163
6.10 Jupyter Notebook 中的自然语言处理-深度学习系统设计示例 163
6.10.1 商业目标 163
6.10.2 技术目标 163
6.10.3 工作流程 164
6.10.4 深度学习 164
6.10.5 格式化数据 165
6.10.6 评估指标 165
6.10.7 Trainer 对象 165
6.10.8 微调神经网络参数 165
6.10.9 生成训练结果—用于设计选择 166
6.10.10 生成测试结果—用于展示性能 166
6.11 小结 166
第 7 章 揭开大语言模型的神秘面纱:理论、设计和 LangChain 实现 168
7.1 技术要求 169
7.2 语言模型简介 169
7.2.1 n-gram 模型 169
7.2.2 隐马尔可夫模型 170
7.2.3 循环神经网络 170
7.3 大语言模型脱颖而出的原因 171
7.4 开发和使用大语言模型的动机 171
7.4.1 提高性能 171
7.4.2 更广泛的泛化能力 172
7.4.3 小样本学习 173
7.4.4 理解复杂语境 174
7.4.5 多语言能力 174
7.4.6 类似人类写作风格的文本生成 175
7.5 开发大语言模型面临的挑战 176
7.5.1 数据量 176
7.5.2 计算资源 177
7.5.3 偏见风险 177
7.5.4 模型的稳定可靠性 178
7.5.5 可解释性和调试 178
7.5.6 环境影响 178
7.6 Transformer 模型的优点 179
7.6.1 速度 179
7.6.2 可扩展性 179
7.6.3 长距离依赖关系 180
7.7 最新大语言模型的设计和架构 180
7.7.1 GPT-3.5 和 ChatGPT 180
7.7.2 ChatGPT 的训练过程 180
7.7.3 RLHF 181
7.7.4 生成响应 183
7.7.5 系统级控制 183
7.7.6 ChatGPT 中 RLHF 的逐步流程 183
7.7.7 GPT-4 188
7.7.8 LLaMA 189
7.7.9 PaLM 189
7.7.10 RLHF 的开源工具 192
7.8 小结 193
7.9 参考文献 193
第 8 章 访问大语言模型的强大功能:高级设置和 RAG 集成 195
8.1 技术要求 196
8.2 设置大语言模型应用—基于 API 的闭源模型 197
8.2.1 选择远程大语言模型提供商 197
8.2.2 在 Python 中通过 API 实现 GPT 的远程访问 197
8.3 提示工程和启动 GPT 198
8.3.1 启动 GPT 199
8.3.2 尝试使用 OpenAI 的 GPT 模型 201
8.4 设置大语言模型应用—本地开源模型 202
8.4.1 开源和闭源的区别 202
8.4.2 Hugging Face 的模型中心 203
8.4.3 选择模型 203
8.5 通过 Python 获得 Hugging Face 大语言模型 204
8.6 探索先进的系统设计—RAG 和 LangChain 205
8.6.1 LangChain 的设计理念 206
8.6.2 未预先嵌入的数据 208
8.6.3 链 208
8.6.4 代理 208
8.6.5 长期记忆和参考之前的对话 210
8.6.6 通过增量更新和自动监控确保持续相关性 211
8.7 在 Jupyter Notebook 中查看简单的 LangChain 设置 211
8.7.1 业务场景假设 211
8.7.2 使用 Python 设置 LangChain 管道 212
8.8 云端大语言模型 213
8.8.1 AWS 213
8.8.2 Microsoft Azure 215
8.8.3 GCP 216
8.8.4 关于云服务的结论 217
8.9 小结 217
第 9 章 前沿探索:大语言模型推动的高级应用和创新 218
9.1 技术要求 218
9.2 使用 RAG 和 LangChain 增强大语言模型性能 219
9.2.1 使用 Python 的 LangChain 管道—通过大语言模型增强性能 220
9.2.2 付费大语言模型与免费大语言模型 220
9.2.3 应用高级 LangChain 配置和管道 221
9.2.4 安装所需的 Python 库 221
9.2.5 设置大语言模型 221
9.2.6 创建 QA 链 222
9.2.7 以大语言模型为“大脑” 222
9.3 使用链的高级方法 223
9.3.1 向大语言模型询问一个常识性问题 223
9.3.2 要求大语言模型以特定的数据格式提供输出 223
9.3.3 实现流利的对话 224
9.4 自动从各种网络来源检索信息 227
9.4.1 从 YouTube 视频中检索内容并进行总结 227
9.4.2 安装、导入和设置 228
9.4.3 建立检索机制 228
9.4.4 审阅、总结和翻译 228
9.5 压缩提示和降低 API 成本 230
9.5.1 压缩提示 230
9.5.2 进行压缩提示实验并评估利弊 231
9.5.3 代码设置 232
9.5.4 收集数据 232
9.5.5 大语言模型配置 232
9.5.6 实验 233
9.5.7 分析上下文压缩的影响 233
9.6 多代理框架 234
9.6.1 多个大语言模型代理同时工作的潜在优势 234
9.6.2 AutoGen 框架 235
9.6.3 完成复杂分析—可视化结果并得出结论 237
9.6.4 对实验意义的可视化分析 237
9.6.5 团队任务中的人工干预 240
9.6.6 审查实验结果并形成合理的结论 240
9.6.7 关于多代理团队的总结 243
9.7 小结 243
第 10 章 乘风破浪:分析大语言模型和人工智能的过去、现在和未来趋势 245
10.1 围绕大语言模型和人工智能的关键技术趋势 245
10.2 计算能力—大语言模型背后的发展引擎 246
10.2.1 意义—为进步铺平道路 246
10.2.2 价值—扩大潜力和效率 246
10.2.3 影响—重塑数字交互和洞察力 247
10.2.4 从自然语言处理的角度看计算能力的未来发展 247
10.3 大型数据集及其对自然语言处理和大语言模型的不可磨灭的影响 250
10.3.1 意义—训练、基准测试和领域专业知识 251
10.3.2 价值—稳健性、多样性和效率 251
10.3.3 影响—民主化、熟练度和新问题 251
10.3.4 自然语言处理中数据可用性的未来 252
10.4 大语言模型的演变—意义、价值和影响 255
10.4.1 意义—开发更大更好的大语言模型的动机 255
10.4.2 价值—大语言模型优势 255
10.4.3 影响—改变科技发展和人机交互格局 256
10.4.4 大语言模型设计的未来 256
10.5 自然语言处理和大语言模型中的文化趋势 264
10.6 商业世界中的自然语言处理和大语言模型 264
10.6.1 业务领域 265
10.6.2 客户互动和服务 268
10.6.3 人工智能的影响推动管理变革 269
10.6.4 首席人工智能官的出现 271
10.7 人工智能和大语言模型引发的行为趋势—社会层面 273
10.7.1 个人助理变得不可或缺 273
10.7.2 轻松沟通,消除语言障碍 273
10.7.3 授权决策的伦理影响 274
10.7.4 道德和风险—人们对人工智能实现的担忧日益加剧 275
10.7.5 未来展望—道德、监管、意识和创新的融合 276
10.8 小结 277
第 11 章 独家行业见解:来自世界级专家的观点和预测 279
11.1 专家介绍 279
11.1.1 Nitzan Mekel-Bobrov 博士 279
11.1.2 David Sontag 博士 280
11.1.3 John D. Halamka 医学博士和理学硕士 280
11.1.4 Xavier Amatriain 博士 280
11.1.5 Melanie Garson 博士 281
11.2 我们的问题和专家的回答 281
11.2.1 Nitzan Mekel-Bobrov 博士 281
11.2.2 David Sontag 284
11.2.3 John D. Halamka 287
11.2.4 Xavier Amatriain 292
11.2.5 Melanie Garson 294
11.3 小结 297