新書推薦:

《
20世纪的设计
》
售價:HK$
107.8

《
短线猎金
》
售價:HK$
57.2

《
DK伟大的城市地图
》
售價:HK$
217.8

《
人工智能的多视角审视 “人类智能与人工智能”书系(第一辑)
》
售價:HK$
217.8

《
拥抱自然的孩子:70个深度自然游戏
》
售價:HK$
64.9

《
QBQ!问题背后的问题III:成就卓越的组织(修订版)
》
售價:HK$
53.9

《
艺术家课堂 动漫创作与职业之路
》
售價:HK$
186.8

《
暗示的力量:唤醒孩子的内驱力
》
售價:HK$
54.8
|
編輯推薦: |
《NLP大模型详解 : 基于LangChain、RAGs与Python》以LangChain和RAG技术为核心,结合Python编程实践,系统拆解NLP大模型的底层逻辑与前沿应用。从自然语言处理基础到GPT、LLaMA等大语言模型原理,再到工业级应用开发,助你掌握从入门到精通的全流程能力。
|
內容簡介: |
《NLP大模型详解 : 基于LangChain、RAGs与Python》详细阐述了与 NLP 大模型相关的基本解决方案,主要包括自然语言处理领域探索,线性代数、概率和统计学,释放机器学习在自然语言处理中的潜力,进行有效文本预处理以实现最佳 NLP 性能,利用传统机器学习技术增强文本分类能力,重新构想文本分类,揭开大语言模型的神秘面纱,访问大语言模型的强大功能,大语言模型推动的高级应用和创新,分析大语言模型和人工智能的过去、现在和未来趋势,来自世界级专家的观点和预测等内容。此外,本书还提供了相应的示例、代码,以帮助读者进一步理解相关方案的实现过程。
|
關於作者: |
利奥尔·加齐特是一位技术精湛的机器学习专家,在建立和领导团队推动业务增长方面有着成功的经验。他是自然语言处理领域的专家,成功开发了创新的机器学习管道和产品。他拥有硕士学位,曾在同行评审期刊和会议上发表过文章。作为金融行业机器学习小组的高级总监和一家新兴初创公司的首席机器学习顾问,他是业内受人尊敬的领导者,拥有丰富的知识和经验可供分享。郝艳杰,计算机软件专业硕士毕业。精通网络主流开发语言、数据分析和硬件技术,同时具有较好的英文水平和技术背景,并翻译过多本英文书籍。
|
目錄:
|
第 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
|
內容試閱:
|
本书将深入介绍自然语言处理(natural language processing,NLP)技术,从机器学习(machine learning,ML)的数学基础开始,一直到高级自然语言处理应用,例如大语言模型(large language model,LLM)和 AI 应用。
作为学习体验的一部分,你将掌握线性代数、优化、概率和统计知识,这些知识对于理解并实现机器学习和自然语言处理算法至关重要。此外,你还将探索一般的机器学习技术并了解它们与自然语言处理的关系。
在学习如何执行文本分类(即根据文本内容为文本分配标签或类别)任务之前,你将学习文本数据的预处理操作,包括为分析工作清洗和准备文本的方法。
最后,本书还将讨论大语言模型的理论、设计和应用等高级主题,探讨自然语言处理的未来趋势,介绍专家对该领域未来的看法。为了增强你的实践技能,你还将学习如何解决自然语言处理业务问题并提供解决方案。
本书读者
本书面向技术人员,包括深度学习和机器学习研究人员、注重实践的自然语言处理从业者、机器学习/自然语言处理教育者以及 STEM 学科学生。在项目中使用文本的专业人士和现有的自然语言处理从业者也将在本书中找到大量有用的信息。
掌握初级机器学习知识和 Python 基本操作将帮助你充分利用本书。
内容介绍
本书包含 11 章,各章内容如下。
第 1 章“自然语言处理领域探索”,介绍自然语言处理的定义和历史演变、自然语言机器处理的一般策略、自然语言处理和机器学习的协同效应,以及对语言模型的理解等,它们也是后续章节将要讨论的主题。
第 2 章“掌握与机器学习和自然语言处理相关的线性代数、概率和统计学”,该章分为 3 个部分。第一部分介绍理解本书后续章节内容所需的线性代数基础知识;第二部分介绍特征值和特征向量;最后一部分介绍与机器学习相关的概率基础知识。
第 3 章“释放机器学习在自然语言处理中的潜力”,讨论可用于解决自然语言处理问题的机器学习中的不同概念和方法。我们将介绍数据清洗、特征选择和特征工程等技术和方法,了解常见的机器学习模型,阐释模型欠拟合和过拟合、数据集拆分、超参数调整、集成模型和不平衡数据集等概念。
第 4 章“进行有效文本预处理以实现最佳 NLP 性能”,通过实际问题示例介绍各种文本预处理步骤(包括小写处理、删除特殊字符和标点符号、删除停用词、拼写检查和纠正、词形还原和词干提取、命名实体识别和标记化等)。我们将根据要解决的问题场景解释哪些步骤适合哪些需求。本章示例提供了完整的 Python 流程。
第 5 章“利用传统机器学习技术增强文本分类能力”,介绍文本分类的类型(包括监督学习、无监督学习和半监督学习),阐释独热编码的概念,演示 TF-IDF 和 LDA 应用,并提供一个完整的 Jupyter Notebook 示例。
第 6 章“重新构想文本分类:深度学习语言模型研究”,介绍与深度学习神经网络相关的基础知识,包括不同的神经网络架构和语言模型。本章详细介绍 Transformer 架构,比较 BERT 和 GPT 等语言模型,并提供一个完整的 Jupyter Notebook 自然语言处理-深度学习系统设计示例。
第 7 章“揭开大语言模型的神秘面纱:理论、设计和 Langchain 实现”,阐释开发和使用大语言模型背后的动机,以及在开发过程中面临的挑战。本章介绍最新的模型设计(包括 GPT-4、LLaMA 和 RLHF 等),帮助你全面了解大语言模型的理论基础和实际应用。
第 8 章“访问大语言模型的强大功能:高级设置和 RAG 集成”,将指导你设置基于 API 和开源大语言模型的应用程序,并深入研究通过 LangChain 实现的提示工程和 RAG。本章还提供了使用 Python 设置 LangChain 管道的示例。
第 9 章“前沿探索:大语言模型推动的高级应用和创新”,深入探讨如何使用 RAG 和 LangChain 增强大语言模型性能,介绍使用链的高级方法、自动 Web 源检索、压缩提示、降低 API 使用成本、多代理框架等。本章提供了多个 Python Notebook 示例,每个示例都给出了一些实际用例的高级解决方案。
第 10 章“乘风破浪:分析大语言模型和人工智能的过去、现在和未来趋势”,深入探讨大语言模型和人工智能对技术、文化和社会的变革性影响,讨论计算能力进步、大数据集的意义以及大语言模型在商业及其他领域的发展、目的和社会影响。
第 11 章“独家行业见解:来自世界级专家的观点和预测”,通过与法律法规、学术研究和行业高管等专业人士的对话,深入探讨未来的自然语言处理和大语言模型趋势;通过他们的专业视角,可以了解人工智能技术发展的挑战和机遇、专业实践和道德考量等。
充分利用本书
本书所有代码均以 Jupyter Notebook 的形式呈现。所有代码均使用 Python 3.10.X 开发,预计也适用于更高版本。
本书中的代码示例具有多样化的用例,对于某些高级大语言模型解决方案,你将需要一个 OpenAI 账户,这样你才能使用 API 密钥。
|
|