含有"深度学习"标签的书籍

从零开始大模型开发与微调:基于PyTorch与ChatGLM

内容简介

大模型是深度学习自然语言处理皇冠上的一颗明珠,也是当前AI和NLP研究与产业中最重要的方向之一。本书使用PyTorch 2.0作为学习大模型的基本框架,以ChatGLM为例详细讲解大模型的基本理论、算法、程序实现、应用实战以及微调技术,为读者揭示大模型开发技术。本书配套示例源代码、PPT课件。

《从零开始大模型开发与微调:基于PyTorch与ChatGLM》共18章,内容包括人工智能与大模型、PyTorch 2.0深度学习环境搭建、从零开始学习PyTorch 2.0、深度学习基础算法详解、基于PyTorch卷积层的MNIST分类实战、PyTorch数据处理与模型展示、ResNet实战、有趣的词嵌入、基于PyTorch循环神经网络的中文情感分类实战、自然语言处理的编码器、预训练模型BERT、自然语言处理的解码器、强化学习实战、只具有解码器的GPT-2模型、实战训练自己的ChatGPT、开源大模型ChatGLM使用详解、ChatGLM高级定制化应用实战、对ChatGLM进行高级微调。

《从零开始大模型开发与微调:基于PyTorch与ChatGLM》适合PyTorch深度学习初学者、大模型开发初学者、大模型开发人员学习,也适合高等院校人工智能、智能科学与技术、数据科学与大数据技术、计算机科学与技术等专业的师生作为教学参考书。

作者简介

王晓华,高校计算机专业讲师,研究方向为云计算、大数据与人工智能。著有《PyTorch 2.0深度学习从零开始学》《Python机器学习与可视化分析实战》《谷歌JAX深度学习从零开始学》《Spark 3.0大数据分析与挖掘:基于机器学习》《TensorFlow深度学习应用实践》《OpenCV+TensorFlow深度学习与计算机视觉实战》《TensorFlow知识图谱实战》《TensorFlow人脸识别实战》《TensorFlow语音识别实战》《TensorFlow+Keras自然语言处理实战》《TensorFlow 2.0卷积神经网络实战》《Keras实战:基于TensorFlow2.2的深度学习实践》《TensorFlow 2.0深度学习从零开始学》《深度学习的数学原理与实现》。

目录

目 录

第1章 新时代的曙光—人工智能与大模型 1

  • 1.1 人工智能:思维与实践的融合 1
    • 1.1.1 人工智能的历史与未来 2
    • 1.1.2 深度学习与人工智能 2
    • 1.1.3 选择PyTorch 2.0实战框架 3
  • 1.2 大模型开启人工智能的新时代 4
    • 1.2.1 大模型带来的变革 4
    • 1.2.2 最强的中文大模型—清华大学ChatGLM介绍 5
    • 1.2.3 近在咫尺的未来—大模型的应用前景 6
  • 1.3 本章小结 7

第2章 PyTorch 2.0深度学习环境搭建 8

  • 2.1 环境搭建1:安装Python 8
    • 2.1.1 Miniconda的下载与安装 8
    • 2.1.2 PyCharm的下载与安装 11
    • 2.1.3 Python代码小练习:计算Softmax函数 14
  • 2.2 环境搭建2:安装PyTorch 2.0 15
    • 2.2.1 Nvidia 10/20/30/40系列显卡选择的GPU版本 15
    • 2.2.2 PyTorch 2.0 GPU Nvidia运行库的安装 15
    • 2.2.3 PyTorch 2.0小练习:Hello PyTorch 18
  • 2.3 生成式模型实战:古诗词的生成 18
  • 2.4 图像降噪:手把手实战第一个深度学习模型 19
    • 2.4.1 MNIST数据集的准备 19
    • 2.4.2 MNIST数据集的特征和标签介绍 21
    • 2.4.3 模型的准备和介绍 22
    • 2.4.4 对目标的逼近—模型的损失函数与优化函数 24
    • 2.4.5 基于深度学习的模型训练 24
  • 2.5 本章小结 26

第3章 从零开始学习PyTorch 2.0 27

  • 3.1 实战MNIST手写体识别 27
    • 3.1.1 数据图像的获取与标签的说明 27
    • 3.1.2 实战基于PyTorch 2.0的手写体识别模型 29
    • 3.1.3 基于Netron库的PyTorch 2.0模型可视化 32
  • 3.2 自定义神经网络框架的基本设计 34
    • 3.2.1 神经网络框架的抽象实现 34
    • 3.2.2 自定义神经网络框架的具体实现 35
  • 3.3 本章小结 43

第4章 一学就会的深度学习基础算法详解 44

  • 4.1 反向传播神经网络的前身历史 44
  • 4.2 反向传播神经网络两个基础算法详解 47
    • 4.2.1 最小二乘法详解 48
    • 4.2.2 梯度下降算法 50
    • 4.2.3 最小二乘法的梯度下降算法及其Python实现 52
  • 4.3 反馈神经网络反向传播算法介绍 58
    • 4.3.1 深度学习基础 58
    • 4.3.2 链式求导法则 59
    • 4.3.3 反馈神经网络的原理与公式推导 60
    • 4.3.4 反馈神经网络原理的激活函数 64
    • 4.3.5 反馈神经网络原理的Python实现 66
  • 4.4 本章小结 70

第5章 基于PyTorch卷积层的MNIST分类实战 71

  • 5.1 卷积运算的基本概念 71
    • 5.1.1 基本卷积运算示例 72
    • 5.1.2 PyTorch中的卷积函数实现详解 73
    • 5.1.3 池化运算 75
    • 5.1.4 Softmax激活函数 77
    • 5.1.5 卷积神经网络的原理 78
  • 5.2 实战:基于卷积的MNIST手写体分类 80
    • 5.2.1 数据的准备 80
    • 5.2.2 模型的设计 81
    • 5.2.3 基于卷积的MNIST分类模型 82
  • 5.3 PyTorch的深度可分离膨胀卷积详解 84
    • 5.3.1 深度可分离卷积的定义 84
    • 5.3.2 深度的定义以及不同计算层待训练参数的比较 86
    • 5.3.3 膨胀卷积详解 87
    • 5.3.4 实战:基于深度可分离膨胀卷积的MNIST手写体识别 87
  • 5.4 本章小结 90

第6章 可视化的PyTorch数据处理与模型展示 91

  • 6.1 用于自定义数据集的torch.utils.data工具箱使用详解 92
    • 6.1.1 使用torch.utils.data. Dataset封装自定义数据集 92
    • 6.1.2 改变数据类型的Dataset类中的transform的使用 93
    • 6.1.3 批量输出数据的DataLoader类详解 98
  • 6.2 实战:基于tensorboardX的训练可视化展示 100
    • 6.2.1 可视化组件tensorboardX的简介与安装 100
    • 6.2.2 tensorboardX可视化组件的使用 100
    • 6.2.3 tensorboardX对模型训练过程的展示 103
  • 6.3 本章小结 105

第7章 ResNet实战 106

  • 7.1 ResNet基础原理与程序设计基础 106
    • 7.1.1 ResNet诞生的背景 107
    • 7.1.2 PyTorch 2.0中的模块工具 109
    • 7.1.3 ResNet残差模块的实现 110
    • 7.1.4 ResNet网络的实现 112
  • 7.2 ResNet实战:CIFAR-10数据集分类 114
    • 7.2.1 CIFAR-10数据集简介 114
    • 7.2.2 基于ResNet的CIFAR-10数据集分类 117
  • 7.3 本章小结 118

第8章 有趣的词嵌入 120

  • 8.1 文本数据处理 120
    • 8.1.1 Ag_news数据集介绍和数据清洗 120
    • 8.1.2 停用词的使用 123
    • 8.1.3 词向量训练模型Word2Vec使用介绍 125
    • 8.1.4 文本主题的提取:基于TF-IDF 128
    • 8.1.5 文本主题的提取:基于TextRank 132
  • 8.2 更多的词嵌入方法—FastText和预训练词向量 134
    • 8.2.1 FastText的原理与基础算法 135
    • 8.2.2 FastText训练及其与PyTorch 2.0的协同使用 136
    • 8.2.3 使用其他预训练参数来生成PyTorch 2.0词嵌入矩阵(中文) 140
  • 8.3 针对文本的卷积神经网络模型简介—字符卷积 141
    • 8.3.1 字符(非单词)文本的处理 141
    • 8.3.2 卷积神经网络文本分类模型的实现—Conv1d(一维卷积) 148
  • 8.4 针对文本的卷积神经网络模型简介—词卷积 151
    • 8.4.1 单词的文本处理 151
    • 8.4.2 卷积神经网络文本分类模型的实现—Conv2d(二维卷积) 153
  • 8.5 使用卷积对文本分类的补充内容 155
    • 8.5.1 汉字的文本处理 155
    • 8.5.2 其他细节 157
  • 8.6 本章小结 158

第9章 基于循环神经网络的中文情感分类实战 160

  • 9.1 实战:循环神经网络与情感分类 160
  • 9.2 循环神经网络理论讲解 165
    • 9.2.1 什么是GRU 165
    • 9.2.2 单向不行,那就双向 167
  • 9.3 本章小结 168

第10章 从零开始学习自然语言处理的编码器 169

  • 10.1 编码器的核心—注意力模型 170
    • 10.1.1 输入层—初始词向量层和位置编码器层 170
    • 10.1.2 自注意力层 172
    • 10.1.3 ticks和Layer Normalization 177
    • 10.1.4 多头注意力 178
  • 10.2 编码器的实现 180
    • 10.2.1 前馈层的实现 181
    • 10.2.2 编码器的实现 182
  • 10.3 实战编码器:拼音汉字转化模型 184
    • 10.3.1 汉字拼音数据集处理 185
    • 10.3.2 汉字拼音转化模型的确定 187
    • 10.3.3 模型训练部分的编写 190
  • 10.4 本章小结 191

第11章 站在巨人肩膀上的预训练模型BERT 193

  • 11.1 预训练模型BERT 193
    • 11.1.1 BERT的基本架构与应用 194
    • 11.1.2 BERT预训练任务与微调 195
  • 11.2 实战BERT:中文文本分类 198
    • 11.2.1 使用Hugging Face获取BERT预训练模型 198
    • 11.2.2 BERT实战文本分类 200
  • 11.3 更多的预训练模型 203
  • 11.4 本章小结 205

第12章 从1开始自然语言处理的解码器 206

  • 12.1 解码器的核心—注意力模型 206
    • 12.1.1 解码器的输入和交互注意力层的掩码 207
    • 12.1.2 为什么通过掩码操作能够减少干扰 212
    • 12.1.3 解码器的输出(移位训练方法) 213
    • 12.1.4 解码器的实现 214
  • 12.2 解码器实战—拼音汉字翻译模型 215
    • 12.2.1 数据集的获取与处理 216
    • 12.2.2 翻译模型 218
    • 12.2.3 拼音汉字模型的训练 229
    • 12.2.4 拼音汉字模型的使用 230
  • 12.3 本章小结 231

第13章 基于PyTorch 2.0的强化学习实战 232

  • 13.1 基于强化学习的火箭回收实战 232
    • 13.1.1 火箭回收基本运行环境介绍 233
    • 13.1.2 火箭回收参数介绍 234
    • 13.1.3 基于强化学习的火箭回收实战 234
    • 13.1.4 强化学习的基本内容 239
  • 13.2 强化学习的基本算法—PPO算法 243
    • 13.2.1 PPO算法简介 243
    • 13.2.2 函数使用说明 244
    • 13.2.3 一学就会的TD-error理论介绍 245
    • 13.2.4 基于TD-error的结果修正 247
    • 13.2.5 对于奖励的倒序构成的说明 248
  • 13.3 本章小结 249

第14章 ChatGPT前身—只具有解码器的GPT-2模型 250

  • 14.1 GPT-2模型简介 250
    • 14.1.1 GPT-2模型的输入和输出结构—自回归性 251
    • 14.1.2 GPT-2模型的PyTorch实现 252
    • 14.1.3 GPT-2模型输入输出格式的实现 257
  • 14.2 Hugging Face GPT-2模型源码模型详解 259
    • 14.2.1 GPT2LMHeadModel类和GPT2Model类详解 259
    • 14.2.2 Block类详解 270
    • 14.2.3 Attention类详解 274
    • 14.2.4 MLP类详解 281
  • 14.3 Hugging Face GPT-2模型的使用与自定义微调 282
    • 14.3.1 模型的使用与自定义数据集的微调 282
    • 14.3.2 基于预训练模型的评论描述微调 285
  • 14.4 自定义模型的输出 286
    • 14.4.1 GPT输出的结构 286
    • 14.4.2 创造性参数temperature与采样个数topK 288
  • 14.5 本章小结 290

第15章 实战训练自己的ChatGPT 291

  • 15.1 什么是ChatGPT 291
  • 15.2 RLHF模型简介 293
    • 15.2.1 RLHF技术分解 293
    • 15.2.2 RLHF中的具体实现—PPO算法 296
  • 15.3 基于RLHF实战的ChatGPT正向评论的生成 297
    • 15.3.1 RLHF模型进化的总体讲解 297
    • 15.3.2 ChatGPT评分模块简介 298
    • 15.3.3 带有评分函数的ChatGPT模型的构建 300
    • 15.3.4 RLHF中的PPO算法—KL散度 301
    • 15.3.5 RLHF中的PPO算法—损失函数 303
  • 15.4 本章小结 304

第16章 开源大模型ChatGLM使用详解 305

  • 16.1 为什么要使用大模型 305
    • 16.1.1 大模型与普通模型的区别 306
    • 16.1.2 一个神奇的现象—大模型的涌现能力 307
  • 16.2 ChatGLM使用详解 307
    • 16.2.1 ChatGLM简介及应用前景 308
    • 16.2.2 下载ChatGLM 309
    • 16.2.3 ChatGLM的使用与Prompt介绍 310
  • 16.3 本章小结 311

第17章 开源大模型ChatGLM 高级定制化应用实战 312

  • 17.1 医疗问答GLMQABot搭建实战—基于ChatGLM搭建专业客服问答机器人 312
    • 17.1.1 基于ChatGLM搭建专业领域问答机器人的思路 313
    • 17.1.2 基于真实医疗问答的数据准备 314
    • 17.1.3 文本相关性(相似度)的比较算法 315
    • 17.1.4 提示语句Prompt的构建 316
    • 17.1.5 基于单个文档的GLMQABot的搭建 316
  • 17.2 金融信息抽取实战—基于知识链的ChatGLM本地化知识库检索与智能答案生成 318
    • 17.2.1 基于ChatGLM搭建智能答案生成机器人的思路 319
    • 17.2.2 获取专业(范畴内)文档与编码存储 320
    • 17.2.3 查询文本编码的相关性比较与排序 322
    • 17.2.4 基于知识链的ChatGLM本地化知识库检索与智能答案生成 325
  • 17.3 基于ChatGLM的一些补充内容 327
    • 17.3.1 语言的艺术—Prompt的前世今生 328
    • 17.3.2 清华大学推荐的ChatGLM微调方法 329
    • 17.3.2 一种新的基于ChatGLM的文本检索方案 330
  • 17.4 本章小结 331

第18章 对训练成本上亿美元的ChatGLM进行高级微调 332

  • 18.1 ChatGLM模型的本地化处理 332
    • 18.1.1 下载ChatGLM源码与合并存档 332
    • 18.1.2 修正自定义的本地化模型 335
    • 18.1.3 构建GLM模型的输入输出示例 337
  • 18.2 高级微调方法1—基于加速库Accelerator的全量数据微调 339
    • 18.2.1 数据的准备—将文本内容转化成三元组的知识图谱 339
    • 18.2.2 加速的秘密—Accelerate模型加速工具详解 342
    • 18.2.3 更快的速度—使用INT8(INT4)量化模型加速训练 345
  • 18.3 高级微调方法2—基于LoRA的模型微调 348
    • 18.3.1 对ChatGLM进行微调的方法—LoRA 348
    • 18.3.2 自定义LoRA的使用方法 349
    • 18.3.3 基于自定义LoRA的模型训练 350
    • 18.3.4 基于自定义LoRA的模型推断 352
    • 18.3.5 基于基本原理的LoRA实现 355
  • 18.4 高级微调方法3—基于Huggingface的PEFT模型微调 357
    • 18.4.1 PEFT技术详解 358
    • 18.4.2 PEFT的使用与参数设计 359
    • 18.4.3 Huggingface专用PEFT的使用 360
  • 18.5 本章小结 362

LangChain入门指南:构建高可复用、可扩展的LLM应用程序

内容简介  · · · · · ·

这本书专门为那些对自然语言处理技术感兴趣的读者提供了系统的LLM应用开发指南。全书分为11章,从LLM基础知识开始,通过LangChain这个开源框架为读者解读整个LLM应用开发流程。第1~2章概述LLM技术的发展背景和LangChain框架的设计理念。从第3章开始,分章深入介绍LangChain的6大模块,包括模型I/O、数据增强、链、记忆等,通过大量代码示例让读者了解其原理和用法。第9章通过构建PDF问答程序,帮助读者将之前学习的知识应用于实践。第10章则介绍集成,可拓宽LangChain的用途。第11章为初学者简要解析LLM的基础理论,如Transformer模型等。

《LangChain入门指南:构建高可复用、可扩展的LLM应用程序》以LangChain这个让人熟悉的框架为主线,引导读者一步一步掌握LLM应用开发流程,适合对大语言模型感兴趣的开发者、AI应用程序开发者阅读。

作者简介  · · · · · ·

李特丽,LangChain中文网联合创始人,优秀的软件工程师。曾翻译LangChain、OpenAi、Milvus等AI开发三件套的中文文档,帮助中国开发者快速上手AI开发。
康轶文,LangChain中文网创始人,2005年从个人站长做起,成为第一代SEO“大神”;2012年转型移动互联网营销,成为中国Apple Ads代理商,获得苹果千万美元授信;2022年转型月付制AI数字员工全托管服务,是一位经验丰富的数字员工和人工智能应用专家。

目录  · · · · · ·

  • 第1 章 LangChain:开启大语言模型时代的钥匙
    • 1.1 大语言模型概述
      • 1.1.1 什么是大语言模型
      • 1.1.2 大语言模型的发展
      • 1.1.3 大语言模型的应用场景
      • 1.1.4 大语言模型的基础知识
    • 1.2 LangChain 与大语言模型
  • 第2 章 LangChain 入门指南
    • 2.1 初识LangChain
      • 2.1.1 为什么需要LangChain
      • 2.1.2 LLM 应用开发的最后1 公里
      • 2.1.3 LangChain 的2 个关键词
      • 2.1.4 LangChain 的3 个场景
      • 2.1.5 LangChain 的6 大模块
    • 2.2 LangChain 的开发流程
      • 2.2.1 开发密钥指南
      • 2.2.2 编写一个取名程序
      • 2.2.3 创建你的第一个聊天机器人
    • 2.3 LangChain 表达式
  • 第3 章 模型I/O
    • 3.1 什么是模型I/O
    • 3.2 模型I/O 功能之模型包装器
      • 3.2.1 模型包装器分类
      • 3.2.2 LLM 模型包装器
      • 3.2.3 聊天模型包装器
    • 3.3 模型I/O 功能之提示词模板
      • 3.3.1 什么是提示词模板
      • 3.3.2 提示词模板的输入和输出
      • 3.3.3 使用提示词模板构造提示词
      • 3.3.4 少样本提示词模板
      • 3.3.5 多功能提示词模板
    • 3.4 模型I/O 功能之输出解析器
      • 3.4.1 输出解析器的功能
      • 3.4.2 输出解析器的使用
      • 3.4.3 Pydantic JSON 输出解析器
      • 3.4.4 结构化输出解析器
  • 第4 章 数据增强模块
    • 4.1 数据增强模块的相关概念
      • 4.1.1 LEDVR 工作流
      • 4.1.2 数据类型
    • 4.2 加载器
    • 4.3 嵌入模型包装器
      • 4.3.1 嵌入模型包装器的使用
      • 4.3.2 嵌入模型包装器的类型
    • 4.4 文档转换器
    • 4.5 向量存储库
      • 4.5.1 向量存储库的使用
      • 4.5.2 向量存储库的搜索方法
    • 4.6 检索器
      • 4.6.1 检索器的使用
      • 4.6.2 检索器的类型
  • 第5 章 链
    • 5.1 为什么叫链
      • 5.1.1 链的定义
      • 5.1.2 链的使用
      • 5.1.3 基础链类型
      • 5.1.4 工具链类型
    • 5.2 细说基础链
      • 5.2.1 LLM 链
      • 5.2.2 路由器链
      • 5.2.3 顺序链
    • 5.3 四大合并文档链
      • 5.3.1 Stuff 链
      • 5.3.2 Refine 链
      • 5.3.3 MapReduce 链
      • 5.3.4 重排链
    • 5.4 揭秘链的复杂性
      • 5.4.1 复杂链的“套娃”式设计
      • 5.4.2 LEDVR 工作流的终点:“上链”
  • 第6 章 记忆模块
    • 6.1 记忆模块概述
      • 6.1.1 记忆组件的定义
      • 6.1.2 记忆组件、链组件和Agent 组件的关系
      • 6.1.3 设置第一个记忆组件
      • 6.1.4 内置记忆组件
      • 6.1.5 自定义记忆组件
    • 6.2 记忆增强检索能力的实践
      • 6.2.1 获取外部数据
      • 6.2.2 加入记忆组件
    • 6.3 记忆增强Agent 能力的实践
    • 6.4 内置记忆组件的对比
      • 6.4.1 总结记忆组件
      • 6.4.2 会话记忆组件和会话窗口记忆组件的对比
      • 6.4.3 知识图谱记忆组件和实体记忆组件的比较
  • 第7 章 Agent 模块
    • 7.1 Agent 模块概述
      • 7.1.1 Agent 组件的定义
      • 7.1.2 Agent 组件的运行机制
      • 7.1.3 Agent 组件入门示例
      • 7.1.4 Agent 组件的类型
    • 7.2 Agent 组件的应用
      • 7.2.1 Agent 组件的多功能性
      • 7.2.2 自定义Agent 组件
      • 7.2.3 ReAct Agent 的实践
    • 7.3 工具组件和工具包组件
      • 7.3.1 工具组件的类型
      • 7.3.2 工具包组件的类型
    • 7.4 Agent 组件的功能增强
      • 7.4.1 Agent 组件的记忆功能增强
      • 7.4.2 Agent 组件的检索能力增强
  • 第8 章 回调处理器
    • 8.1 什么是回调处理器
      • 8.1.1 回调处理器的工作流程
      • 8.1.2 回调处理器的使用
      • 8.1.3 自定义链组件中的回调
    • 8.2 内置回调处理器
    • 8.3 自定义回调处理器
  • 第9 章 使用LangChain 构建应用程序
    • 9.1 PDF 问答程序
      • 9.1.1 程序流程
      • 9.1.2 处理PDF 文档
      • 9.1.3 创建问答链
    • 9.2 对话式表单
      • 9.2.1 OpenAI 函数的标记链
      • 9.2.2 标记链的使用
      • 9.2.3 创建提示词模板
      • 9.2.4 数据更新和检查
    • 9.3 使用LangChain 实现BabyAGI
      • 9.3.1 BabyAGI 介绍
      • 9.3.2 环境与工具
      • 9.3.3 向量存储
      • 9.3.4 构建任务链
      • 9.3.5 创建BabyAGI
      • 9.3.6 运行BabyAGI
  • 第10 章 集成
    • 10.1 集成的背景与LLM 集成
    • 10.2 LLM 集成指南
      • 10.2.1 Azure OpenAI 集成
      • 10.2.2 Hugging Face Hub 集成
    • 10.3 聊天模型集成指南
      • 10.3.1 Anthropic 聊天模型集成
      • 10.3.2 PaLM 2 聊天模型集成
      • 10.3.3 OpenAI 聊天模型集成
    • 10.4 向量库集成指南
      • 10.4.1 Chroma 集成
      • 10.4.2 Pinecone 集成
      • 10.4.3 Milvus 集成
    • 10.5 嵌入模型集成指南
      • 10.5.1 HuggingFaceEmbeddings 嵌入集成
      • 10.5.2 LlamaCppEmbeddings 嵌入集成
      • 10.5.3 Cohere 嵌入集成
    • 10.6 Agent toolkits 集成指南
      • 10.6.1 CSV Agent 的集成
      • 10.6.2 Pandas Dataframe Agent 的集成
      • 10.6.3 PowerBI Dataset Agent 的集成
    • 10.7 Retrievers 集成指南
      • 10.7.1 WikipediaRetriever 集成
      • 10.7.2 ArxivRetriever 集成
      • 10.7.3 Azure Cognitive Search 集成
  • 第11 章 LLM 应用开发必学知识
    • 11.1 LLM 的核心知识
      • 11.1.1 文本嵌入
      • 11.1.2 点积相似性和余弦相似性
      • 11.1.3 注意力机制
    • 11.2 Transformer 模型
    • 11.3 语义搜索
      • 11.3.1 语义搜索的工作原理
      • 11.3.2 RAG 的工作原理
    • 11.4 NLP 与机器学习基础
      • 11.4.1 LLM 应用开发中的传统机器学习方法
      • 11.4.2 NLP 文本预处理
      • 11.4.3 构建分类器
  • 附录A LangChain 框架中的主要类
  • 附录B OpenAI 平台和模型介绍
  • 附录C Claude 2 模型介绍
  • 附录D Cohere 模型介绍
  • 附录E PaLM 2 模型介绍
  • 附录F Pinecone 向量数据库介绍
  • 附录G Milvus 向量数据库介绍

动手学PyTorch建模与应用:从深度学习到大模型

内容简介  · · · · · ·

《动手学PyTorch建模与应用:从深度学习到大模型》是一本从零基础上手深度学习和大模型的PyTorch实战指南。《动手学PyTorch建模与应用:从深度学习到大模型》共11章,第1章主要介绍深度学习的概念、应用场景及开发环境搭建。第2章详细介绍PyTorch数学基础,包括函数、微分、数理统计、矩阵等基础知识及其案例。第3章介绍数据预处理及常用工具,包括NumPy、Pandas、Matplotlib、数据清洗、特征工程以及深度学习解决问题的一般步骤等。第4章介绍PyTorch基础知识,包括张量的创建、激活函数、损失函数、优化器等。第5章介绍PyTorch深度神经网络,包括神经网络概述、卷积神经网络、循环神经网络等。第6章介绍PyTorch数据建模,包括回归分析、聚类分析、主成分分析、模型评估与调优等。第7~10章介绍PyTorch图像建模、文本建模、音频建模和模型可视化。第11章介绍大语言模型的原理、主要的大语言模型及模型本地化部署、预训练与微调技术。本书还精心设计了50个动手案例和上机练习题,并对所有代码进行了详尽注释和说明,同时提供数据集和配书资源文件,以帮助读者更好地使用本书。 《动手学PyTorch建模与应用:从深度学习到大模型》讲解深入浅出,注重动手实操,特别适合想学习AI技术或想进入该领域的初学者,对深度学习感兴趣的新手、在校学生和从业者阅读,也很适合作为培训机构和高校相关专业的教学用书。

作者简介  · · · · · ·

王国平,毕业于上海海洋大学,硕士,从业10余年,主要从事数据可视化、数据挖掘和大数据分析与研究等工作。精通数据挖掘技术与相关软件工具,包括Tableau、SPSS、PyTorch、Power Bl等,已出版《IBM SPSS Modeler数据与文本挖掘实战》《Microsoft Power Bl数据可视化与数据分析》《Tableau数据可视化从入门到精通》《零基础入门Python数据分析与机器学习》等图书。

目录  · · · · · ·

第 1 章 深度学习和PyTorch概述 1

  1. 走进深度学习的世界 1
    1. 深度学习的发展历史 1
    2. 深度学习框架PyTorch 3
    3. 深度学习的应用领域 4
  2. 搭建开发环境 5
    1. 安装Python 3.12 5
    2. 安装代码开发工具Jupyter Lab 9
    3. 安装PyTorch 2.2 10
  3. PyTorch的应用场景 14
  4. 上机练习题 14

第 2 章 PyTorch数学基础 17

  1. PyTorch中的函数 17
    1. 函数的基础知识 17
    2. PyTorch中的主要函数 20
  2. 微分基础 22
    1. 微分及其公式 22
    2. PyTorch自动微分 24
  3. 数理统计基础 29
    1. 数理统计及其指标 29
    2. PyTorch统计函数 34
  4. 矩阵基础 45
    1. 矩阵及其运算 45
    2. PyTorch矩阵运算 47
  5. 动手练习:拟合余弦函数曲线 54
  6. 上机练习题 58

第 3 章 数据预处理及常用工具 62

  1. NumPy 62
    1. 安装和导入NumPy 62
    2. NumPy的数据结构ndarray 63
    3. NumPy的基本使用 63
  2. Matplotlib 65
    1. 安装和导入Matplotlib 65
    2. Matplotlib的使用示例 66
  3. 数据清洗 70
    1. 数据清洗的作用 70
    2. 用Pandas进行数据清洗 71
  4. 特征工程 76
    1. 特征工程概述 76
    2. 使用Scikit-learn进行数据预处理 78
    3. 使用Pandas实现特征工程 81
  5. 深度学习解决问题的一般步骤 82
  6. 动手练习:每日最高温度预测 84
  7. 上机练习题 90

第 4 章 PyTorch基础知识 95

  1. 张量及其创建 95
    1. 张量及其数据类型 95
    2. 使用数组直接创建张量 96
    3. 使用概率分布创建张量 98
  2. 激活函数 99
    1. 激活函数及其必要性 99
    2. Sigmoid激活函数 100
    3. Tanh激活函数 101
    4. ReLU激活函数 102
    5. Leaky ReLU激活函数 103
    6. 其他类型的激活函数 104
  3. 损失函数 105
    1. 损失函数及其选取 106
    2. L1范数损失函数 106
    3. 均方误差损失函数 107
    4. 交叉熵损失函数 108
    5. 余弦相似度损失 109
    6. 其他损失函数 109
  4. 优化器 110
    1. 梯度及梯度下降算法 111
    2. 随机梯度下降算法 112
    3. 标准动量优化算法 112
    4. AdaGrad算法 113
    5. RMSProp算法 113
    6. Adam算法 114
  5. 动手练习:PyTorch优化器比较 114
  6. 上机练习题 119

第 5 章 PyTorch深度神经网络 124

  1. 神经网络概述 124
    1. 神经元模型 124
    2. 多层感知机 126
    3. 前馈神经网络 128
  2. 卷积神经网络 129
    1. 卷积神经网络的历史 129
    2. 卷积神经网络的结构 130
    3. 卷积神经网络的类型 131
  3. 循环神经网络 134
    1. 简单的循环神经网络 134
    2. 长短期记忆网络 136
    3. 门控循环单元 138
  4. 动手练习:股票成交量趋势预测 139
  5. 上机练习题 148

第 6 章 PyTorch数据建模 152

  1. 回归分析及案例 152
    1. 回归分析简介 152
    2. 回归分析建模 153
    3. 动手练习:住房价格回归预测 155
  2. 聚类分析及案例 160
    1. 聚类分析简介 160
    2. 聚类分析建模 160
    3. 动手练习:植物花卉特征聚类 162
  3. 主成分分析及案例 165
    1. 主成分分析简介 166
    2. 主成分分析建模 166
    3. 动手练习:地区竞争力指标降维 167
  4. 模型评估与调优 173
    1. 模型评估方法 173
    2. 模型调优方法 176
    3. 动手练习:PyTorch实现交叉验证 178
  5. 上机练习题 187

第 7 章 PyTorch图像建模 190

  1. 图像建模概述 190
    1. 图像分类技术 190
    2. 图像识别技术 191
    3. 图像分割技术 192
  2. 动手练习:创建图像自动分类器 193
    1. 加载数据集 193
    2. 搭建网络模型 194
    3. 训练网络模型 195
    4. 应用网络模型 196
  3. 动手练习:搭建图像自动识别模型 198
    1. 加载数据集 198
    2. 搭建与训练网络 200
    3. 预测图像数据 202
    4. 图像识别模型的判断 202
  4. 动手练习:搭建图像自动分割模型 204
    1. 加载数据集 205
    2. 搭建网络模型 206
    3. 训练网络模型 209
    4. 应用网络模型 210
  5. 上机练习题 212

第 8 章 PyTorch文本建模 220

  1. 自然语言处理的几个模型 220
    1. Word2Vec模型 220
    2. Seq2Seq模型 221
    3. Attention模型 222
  2. 动手练习:Word2Vec提取相似文本 223
    1. 加载数据集 223
    2. 搭建网络模型 227
    3. 训练网络模型 228
    4. 应用网络模型 230
  3. 动手练习:Seq2Seq实现机器翻译 231
    1. 加载数据集 231
    2. 搭建网络模型 237
    3. 训练网络模型 240
    4. 应用网络模型 242
  4. 动手练习:Attention模型实现文本自动分类 244
    1. 加载数据集 244
    2. 搭建网络模型 246
    3. 训练网络模型 247
    4. 应用网络模型 251
  5. 上机练习题 251

第 9 章 PyTorch音频建模 258

  1. 音频处理技术及应用 258
    1. 音频处理技术 258
    2. 音视频摘要技术及其应用 259
    3. 音频识别及应用 260
    4. 音频监控及应用 261
    5. 场景感知及应用 261
  2. 梅尔频率倒谱系数音频特征 262
    1. 梅尔频率倒谱系数简介及参数的提取过程 262
    2. 音频预处理 263
    3. 快速傅里叶变换 264
    4. 能量谱处理 264
    5. 离散余弦转换 265
  3. PyTorch音频建模技术 266
    1. 加载音频数据源 266
    2. 波形变换的类型 267
    3. 绘制波形频谱图 268
    4. 波形Mu-Law编码 270
    5. 变换前后波形的比较 272
  4. 动手练习:音频相似度分析 273
  5. 上机练习题 276

第 10 章 PyTorch模型可视化 278

  1. Visdom 278
    1. Visdom简介 278
    2. Visdom可视化操作 280
    3. 动手练习:识别手写数字 296
  2. TensorBoard 301
    1. TensorBoard简介 301
    2. TensorBoard基础操作 303
    3. 动手练习:可视化模型参数 312
  3. Pytorchviz 314
    1. Pytorchviz简介 314
    2. 动手练习:Pytorchviz建模可视化 314
  4. Netron 317
    1. Netron简介 317
    2. 动手练习:Netron建模可视化 317
  5. 上机练习题 321

第 11 章 从深度学习到大语言模型 323

  1. 大语言模型的原理 323
    1. 大语言模型简介 323
    2. Transformer架构 324
    3. 注意力机制 327
  2. 主要的大语言模型 331
    1. ChatGPT及其API调用 331
    2. 文心一言及其插件开发 334
    3. ChatGLM及其本地部署 338
  3. 模型预训练与微调 350
    1. 大模型预训练 350
    2. 大模型微调技术 353
  4. 上机练习题 361

参考文献 363

Github | Docker | Project