推荐

新书推荐

基于大模型的RAG应用开发与优化——构建企业级LLM应用

内容简介

《基于大模型的RAG应用开发与优化——构建企业级LLM应用》是一本全面介绍基于大语言模型的RAG应用开发的专业图书。本书共分为3篇:预备篇、基础篇和高级篇。预备篇旨在帮助你建立起对大模型与RAG的基本认识,并引导你搭建起RAG应用开发的基础环境;基础篇聚焦于经典RAG应用开发的核心要素与阶段,介绍关键模块的开发过程,剖析相关的技术原理,为后面的深入学习打下坚实的基础;高级篇聚焦于RAG应用开发的高阶模块与技巧,特别是在企业级RAG应用开发中的优化策略与技术实现,并探索了一些新型的RAG工作流与范式,旨在帮助你了解最新的RAG应用技术发展,掌握RAG应用的全方位开发能力。 《基于大模型的RAG应用开发与优化——构建企业级LLM应用》适合对大模型及RAG技术感兴趣的开发者、研究人员、产品经理及希望了解并掌握RAG应用开发能力的人阅读。无论你是进入AI领域的初学者,还是已经有一定基础的进阶者,都能从本书中找到适合自己的内容。

作者简介

严灿平
毕业于南京理工大学计算机系,南京大学工商管理硕士。先后就职于联创(后与亚信科技合并)担任软件工程师与设计师,甲骨文中国(Oracle)担任中国区企业架构部首席架构师,上海慧问信息科技有限公司担任合伙人兼技术总监。现为独立IT咨询顾问,公众号“AI大模型应用实践”主理人。拥有超过20年的企业软件从业经验,专注于企业软件架构设计、互联网时代传统行业的IT转型、人工智能与大数据技术在企业应用的创新等。 曾担任多项大型企业级软件系统核心架构师与咨询师,参与包括中国移动、中国电信等通信行业客户的核心业务运营支撑系统建设、智慧城市与政务行业互联网转型的IT咨询与规划。精通多种计算机软件开发技术与IT架构方法论,对移动互联网、大数据、人工智能在企业领域应用有深入的研究与实施经验。

目录

  • 预 备 篇
    • 第1章 了解大模型与RAG 3
      • 1.1 初识大模型 3
        • 1.1.1 大模型时代:生成式AI应用的爆发 3
        • 1.1.2 大模型应用的持续进化 4
        • 1.1.3 大模型是无所不能的吗 7
      • 1.2 了解RAG 11
        • 1.2.1 为什么需要RAG 11
        • 1.2.2 一个简单的RAG场景 12
      • 1.3 RAG应用的技术架构 14
        • 1.3.1 RAG应用的经典架构与流程 14
        • 1.3.2 RAG应用面临的挑战 17
        • 1.3.3 RAG应用架构的演进 18
      • 1.4 关于RAG的两个话题 20
        • 1.4.1 RAG与微调的选择 21
        • 1.4.2 RAG与具有理解超长上下文能力的大模型 24
    • 第2章 RAG应用开发环境搭建 27
      • 2.1 开发RAG应用的两种方式 27
        • 2.1.1 使用低代码开发平台 27
        • 2.1.2 使用大模型应用开发框架 29
      • 2.2 RAG应用开发环境准备 33
        • 2.2.1 硬件环境建议 33
        • 2.2.2 基础大模型 34
        • 2.2.3 嵌入模型 41
        • 2.2.4 Python虚拟运行环境 44
        • 2.2.5 Python IDE与开发插件 45
        • 2.2.6 向量库 47
        • 2.2.7 LlamaIndex框架 51
      • 2.3 关于本书开发环境的约定 51
  • 基 础 篇
    • 第3章 初识RAG应用开发 55
      • 3.1 开发一个最简单的RAG应用 55
        • 3.1.1 使用原生代码开发 56
        • 3.1.2 使用LlamaIndex框架开发 64
        • 3.1.3 使用LangChain框架开发 68
      • 3.2 如何跟踪与调试RAG应用 70
        • 3.2.1 借助LlamaDebugHandler 70
        • 3.2.2 借助第三方的跟踪与调试平台 73
      • 3.3 准备:基于LlamaIndex框架的RAG应用开发核心组件 77
    • 第4章 模型与Prompt 78
      • 4.1 大模型 78
        • 4.1.1 大模型在RAG应用中的作用 79
        • 4.1.2 大模型组件的统一接口 80
        • 4.1.3 大模型组件的单独使用 82
        • 4.1.4 大模型组件的集成使用 83
        • 4.1.5 了解与设置大模型的参数 84
        • 4.1.6 自定义大模型组件 85
        • 4.1.7 使用LangChain框架中的大模型组件 87
      • 4.2 Prompt 87
        • 4.2.1 使用Prompt模板 87
        • 4.2.2 更改默认的Prompt模板 88
        • 4.2.3 更改Prompt模板的变量 91
      • 4.3 嵌入模型 92
        • 4.3.1 嵌入模型在RAG应用中的作用 92
        • 4.3.2 嵌入模型组件的接口 93
        • 4.3.3 嵌入模型组件的单独使用 95
        • 4.3.4 嵌入模型组件的集成使用 97
        • 4.3.5 了解与设置嵌入模型的参数 97
        • 4.3.6 自定义嵌入模型组件 98
    • 第5章 数据加载与分割 100
      • 5.1 理解两个概念:Document与Node 100
        • 5.1.1 什么是Document与Node 100
        • 5.1.2 深入理解Document与Node 102
        • 5.1.3 深入理解Node对象的元数据 103
        • 5.1.4 生成Document对象 106
        • 5.1.5 生成Node对象 107
        • 5.1.6 元数据的生成与抽取 111
        • 5.1.7 初步了解IndexNode类型 115
      • 5.2 数据加载 116
        • 5.2.1 从本地目录中加载 117
        • 5.2.2 从网络中加载数据 123
      • 5.3 数据分割 129
        • 5.3.1 如何使用数据分割器 129
        • 5.3.2 常见的数据分割器 131
      • 5.4 数据摄取管道 145
        • 5.4.1 什么是数据摄取管道 145
        • 5.4.2 用于数据摄取管道的转换器 147
        • 5.4.3 自定义转换器 149
        • 5.4.4 使用数据摄取管道 150
      • 5.5 完整认识数据加载阶段 155
    • 第6章 数据嵌入与索引 156
      • 6.1 理解嵌入与向量 156
        • 6.1.1 直接用模型生成向量 157
        • 6.1.2 借助转换器生成向量 157
      • 6.2 向量存储 158
        • 6.2.1 简单向量存储 159
        • 6.2.2 第三方向量存储 161
      • 6.3 向量存储索引 164
        • 6.3.1 用向量存储构造向量存储索引对象 165
        • 6.3.2 用Node列表构造向量存储索引对象 166
        • 6.3.3 用文档直接构造向量存储索引对象 169
        • 6.3.4 深入理解向量存储索引对象 172
      • 6.4 更多索引类型 175
        • 6.4.1 文档摘要索引 175
        • 6.4.2 对象索引 177
        • 6.4.3 知识图谱索引 180
        • 6.4.4 树索引 186
        • 6.4.5 关键词表索引 187
    • 第7章 检索、响应生成与RAG引擎 190
      • 7.1 检索器 191
        • 7.1.1 快速构造检索器 191
        • 7.1.2 理解检索模式与检索参数 192
        • 7.1.3 初步认识递归检索 197
      • 7.2 响应生成器 199
        • 7.2.1 构造响应生成器 200
        • 7.2.2 响应生成模式 201
        • 7.2.3 响应生成器的参数 210
        • 7.2.4 实现自定义的响应生成器 212
      • 7.3 RAG引擎:查询引擎 214
        • 7.3.1 构造内置类型的查询引擎的两种方法 214
        • 7.3.2 深入理解查询引擎的内部结构和运行原理 217
        • 7.3.3 自定义查询引擎 218
      • 7.4 RAG引擎:对话引擎 221
        • 7.4.1 对话引擎的两种构造方法 221
        • 7.4.2 深入理解对话引擎的内部运行和运行原理 224
        • 7.4.3 理解不同的对话模式 227
      • 7.5 结构化输出 239
        • 7.5.1 使用output_cls参数 240
        • 7.5.2 使用输出解析器 241
  • 高 级 篇
    • 第8章 RAG引擎高级开发 247
      • 8.1 检索前查询转换 247
        • 8.1.1 简单查询转换 248
        • 8.1.2 HyDE查询转换 249
        • 8.1.3 多步查询转换 251
        • 8.1.4 子问题查询转换 254
      • 8.2 检索后处理器 259
        • 8.2.1 使用节点后处理器 259
        • 8.2.2 实现自定义的节点后处理器 260
        • 8.2.3 常见的预定义的节点后处理器 261
        • 8.2.4 Rerank节点后处理器 266
      • 8.3 语义路由 272
        • 8.3.1 了解语义路由 272
        • 8.3.2 带有路由功能的查询引擎 274
        • 8.3.3 带有路由功能的检索器 276
        • 8.3.4 使用独立的选择器 277
        • 8.3.5 可多选的路由查询引擎 278
      • 8.4 SQL查询引擎 280
        • 8.4.1 使用NLSQLTableQueryEngine组件 281
        • 8.4.2 基于实时表检索的查询引擎 283
        • 8.4.3 使用SQL检索器 285
      • 8.5 多模态文档处理 286
        • 8.5.1 多模态文档处理架构 286
        • 8.5.2 使用LlamaParse解析文档 288
        • 8.5.3 多模态文档中的表格处理 294
        • 8.5.4 多模态大模型的基础应用 297
        • 8.5.5 多模态文档中的图片处理 303
      • 8.6 查询管道:编排基于Graph的RAG工作流 308
        • 8.6.1 理解查询管道 309
        • 8.6.2 查询管道支持的两种使用方式 310
        • 8.6.3 深入理解查询管道的内部原理 313
        • 8.6.4 实现并插入自定义的查询组件 315
    • 第9章 开发Data Agent 321
      • 9.1 初步认识Data Agent 322
      • 9.2 构造与使用Agent的工具 323
        • 9.2.1 深入了解工具类型 324
        • 9.2.2 函数工具 325
        • 9.2.3 查询引擎工具 326
        • 9.2.4 检索工具 327
        • 9.2.5 查询计划工具 328
        • 9.2.6 按需加载工具 330
      • 9.3 基于函数调用功能直接开发Agent 331
      • 9.4 用框架组件开发Agent 335
        • 9.4.1 使用OpenAIAgent 335
        • 9.4.2 使用ReActAgent 336
        • 9.4.3 使用底层API开发Agent 338
        • 9.4.4 开发带有工具检索功能的Agent 340
        • 9.4.5 开发带有上下文检索功能的Agent 341
      • 9.5 更细粒度地控制Agent的运行 343
        • 9.5.1 分步可控地运行Agent 344
        • 9.5.2 在Agent运行中增加人类交互 346
    • 第10章 评估RAG应用 349
      • 10.1 为什么RAG应用需要评估 349
      • 10.2 RAG应用的评估依据与指标 350
      • 10.3 RAG应用的评估流程与方法 351
      • 10.4 评估检索质量 352
        • 10.4.1 生成检索评估数据集 352
        • 10.4.2 运行评估检索过程的程序 354
      • 10.5 评估响应质量 356
        • 10.5.1 生成响应评估数据集 356
        • 10.5.2 单次响应评估 358
        • 10.5.3 批量响应评估 360
      • 10.6 基于自定义标准的评估 362
    • 第11章 企业级RAG应用的常见优化策略 364
      • 11.1 选择合适的知识块大小 364
        • 11.1.1 为什么知识块大小很重要 364
        • 11.1.2 评估知识块大小 365
      • 11.2 分离检索阶段的知识块与生成阶段的知识块 369
        • 11.2.1 为什么需要分离 369
        • 11.2.2 常见的分离策略及实现 369
      • 11.3 优化对大文档集知识库的检索 378
        • 11.3.1 元数据过滤 + 向量检索 378
        • 11.3.2 摘要检索+ 内容检索 383
        • 11.3.3 多文档Agentic RAG 390
      • 11.4 使用高级检索方法 397
        • 11.4.1 融合检索 398
        • 11.4.2 递归检索 406
    • 第12章 构建端到端的企业级RAG应用 429
      • 12.1 对生产型RAG应用的主要考量 429
      • 12.2 端到端的企业级RAG应用架构 430
        • 12.2.1 数据存储层 431
        • 12.2.2 AI模型层 432
        • 12.2.3 RAG工作流与API模块 432
        • 12.2.4 前端应用模块 433
        • 12.2.5 后台管理模块 434
      • 12.3 端到端的全栈RAG应用案例 436
        • 12.3.1 简单的全栈RAG查询应用 436
        • 12.3.2 基于多文档Agent的端到端对话应用 455
    • 第13章 新型RAG范式原理与实现 478
      • 13.1 自纠错RAG:C-RAG 478
        • 13.1.1 C-RAG诞生的动机 478
        • 13.1.2 C-RAG的原理 479
        • 13.1.3 C-RAG的实现 480
      • 13.2 自省式RAG:Self-RAG 485
        • 13.2.1 Self-RAG诞生的动机 485
        • 13.2.2 Self-RAG的原理 486
        • 13.2.3 Self-RAG的实现 493
        • 13.2.4 Self-RAG的优化 506
      • 13.3 检索树RAG:RAPTOR 507
        • 13.3.1 RAPTOR诞生的动机 507
        • 13.3.2 RAPTOR的原理 508
        • 13.3.3 RAPTOR的实现 510

从零构建大模型算法、训练与微调

内容简介

《从零构建大模型:算法、训练与微调》是一本系统且实用的大模型构建指南,旨在引领读者从基础知识起步,逐步深入探索大模型的算法原理、训练方法及微调技术。《从零构建大模型:算法、训练与微调》共12章,涵盖了Transformer模型的基础理论,如Seq2Seq模型、分词、嵌入层和自注意力机制等关键概念;并深入剖析了GPT模型的核心实现与文本生成过程,以及BERT模型的预训练和微调技术。同时,也对ViT(视觉Transformer)模型的架构、训练方法,以及高阶微调策略如Adapter Tuning和P-Tuning进行了详尽讲解。此外,还系统地介绍了数据处理、数据增强、模型性能优化(包括混合精度训练和分布式训练)、对比学习、对抗训练、自适应优化器、动态学习率调度,以及模型蒸馏与剪枝技术等多个方面。最后,通过应用案例,展示了模型训练和微调的完整流程,助力读者将理论知识转化为实践技能。 全书注重理论与实践的结合,适合希望系统掌握大模型构建、训练和优化的研发人员、高校学生,也适合对自然语言处理、计算机视觉等领域的大模型开发有兴趣的读者。还可作为培训机构和高校相关课程的教学用书。

作者简介

梁楠,博士,毕业于北京航空航天大学,高级职称,长期从事模式识别、机器学习、统计理论的研究与应用,负责或参与科研项目多项,专注于人工智能、大语言模型的应用与开发,对深度学习、数据分析与预测等有独到见解。

目录

  • 引言 1
  • 一、大模型技术的发展历史 1
    • 1. 基于规则和统计学习的早期阶段 1
    • 2. 神经网络与深度学习的崛起 2
    • 3. Transformer的诞生与自注意力机制的崛起 2
    • 4. 预训练模型的兴起:BERT、GPT和T5 2
    • 5. 超大规模模型与多模态应用 3
  • 二、开发环境配置基础 3
    • 1. 硬件配置要求 3
    • 2. 软件依赖与环境搭建 4
    • 3. 常见问题与解决方案 5
  • 第 1 章 Transformer模型基础 6
    • 1.1 Seq2Seq模型 6
      • 1.1.1 编码器-解码器工作原理 7
      • 1.1.2 Seq2Seq结构实现 7
    • 1.2 分词与嵌入层 11
      • 1.2.1 分词器:将文本转换为嵌入向量 11
      • 1.2.2 PyTorch实现嵌入层(将分词后的结果输入模型) 11
    • 1.3 自注意力与多头注意力机制 15
      • 1.3.1 自注意力机制计算过程(QKV矩阵生成和点积运算) 15
      • 1.3.2 多头注意力机制与Transformer 18
    • 1.4 残差连接与层归一化 22
      • 1.4.1 残差连接层的实现 22
      • 1.4.2 层归一化与训练稳定性 25
    • 1.5 位置编码器 28
      • 1.5.1 位置编码的计算与实现 28
      • 1.5.2 位置编码在无序文本数据中的作用 30
    • 1.6 本章小结 35
    • 1.7 思考题 35
  • 第 2 章 GPT模型文本生成核心原理与实现 37
    • 2.1 GPT-2核心模块 37
      • 2.1.1 层堆叠 37
      • 2.1.2 GPT-2中的注意力机制 41
    • 2.2 GPT模型的文本生成过程 44
      • 2.2.1 详解GPT-2文本生成过程 44
      • 2.2.2 Greedy Search和Beam Search算法的实现与对比 47
    • 2.3 模型效果评估与调优 51
      • 2.3.1 模型常见评估方法 51
      • 2.3.2 基于困惑度的评估过程 56
    • 2.4 本章小结 60
    • 2.5 思考题 60
  • 第 3 章 BERT模型核心实现与预训练 62
    • 3.1 BERT模型的核心实现 62
      • 3.1.1 编码器堆叠 62
      • 3.1.2 BERT的自注意力机制与掩码任务 67
    • 3.2 预训练任务:掩码语言模型(MLM) 71
      • 3.2.1 MLM任务实现过程 71
      • 3.2.2 如何对输入数据进行随机遮掩并预测 72
    • 3.3 BERT模型的微调与分类任务应用 77
    • 3.4 本章小结 81
    • 3.5 思考题 81
  • 第 4 章 ViT模型 83
    • 4.1 图像分块与嵌入 83
    • 4.2 ViT模型的核心架构实现 89
      • 4.2.1 ViT模型的基础结构 89
      • 4.2.2 自注意力和多头注意力在图像处理中的应用 91
    • 4.3 训练与评估ViT模型 96
    • 4.4 ViT模型与注意力严格量化分析 100
    • 4.5 本章小结 105
    • 4.6 思考题 105
  • 第 5 章 高阶微调策略:Adapter Tuning与P-Tuning 107
    • 5.1 Adapter Tuning的实现 107
    • 5.2 LoRA Tuning实现 111
    • 5.3 Prompt Tuning与P-Tuning的应用 114
      • 5.3.1 Prompt Tuning 114
      • 5.3.2 P-Tuning 117
      • 5.3.3 Prompt Tuning和P-Tuning组合微调 120
      • 5.3.4 长文本情感分类模型的微调与验证 122
    • 5.4 本章小结 125
    • 5.5 思考题 125
  • 第 6 章 数据处理与数据增强 127
    • 6.1 数据预处理与清洗 127
      • 6.1.1 文本数据预处理 127
      • 6.1.2 文本数据清洗 130
    • 6.2 文本数据增强 133
      • 6.2.1 同义词替换 133
      • 6.2.2 随机插入 135
      • 6.2.3 其他类型的文本数据增强方法 137
    • 6.3 分词与嵌入层的应用 139
      • 6.3.1 深度理解分词技术 140
      • 6.3.2 嵌入向量的生成与优化 142
      • 6.3.3 文本预处理与数据增强综合案例 144
    • 6.4 本章小结 146
    • 6.5 思考题 147
  • 第 7 章 模型性能优化:混合精度训练与分布式训练 148
    • 7.1 混合精度训练的实现 148
    • 7.2 多GPU并行与分布式训练的实现 150
      • 7.2.1 分布式训练流程与常规配置方案 150
      • 7.2.2 Data Parallel方案 152
      • 7.2.3 Model Parallel方案 154
    • 7.3 梯度累积的实现 157
      • 7.3.1 梯度累积初步实现 157
      • 7.3.2 小批量训练中的梯度累积 159
      • 7.3.3 梯度累积处理文本分类任务 161
    • 7.4 本章小结 164
    • 7.5 思考题 165
  • 第 8 章 对比学习与对抗训练 166
    • 8.1 对比学习 166
      • 8.1.1 构建正负样本对及损失函数 166
      • 8.1.2 SimCLR的实现与初步应用 171
    • 8.2 基于对比学习的预训练与微调 174
      • 8.2.1 通过对比学习进行自监督预训练 175
      • 8.2.2 对比学习在分类、聚类等任务中的表现 180
    • 8.3 生成式对抗网络的实现与优化 183
    • 8.4 对抗训练在大模型中的应用 188
    • 8.5 本章小结 192
    • 8.6 思考题 192
  • 第 9 章 自适应优化器与动态学习率调度 194
    • 9.1 AdamW优化器与LAMB优化器的实现 194
      • 9.1.1 AdamW优化器 194
      • 9.1.2 LAMB优化器 197
    • 9.2 基于梯度累积的优化技巧 200
      • 9.2.1 大批量内存受限环境 200
      • 9.2.2 梯度累积的应用场景和参数调整对训练效果的影响 203
    • 9.3 动态学习率调度 205
      • 9.3.1 线性衰减 205
      • 9.3.2 余弦退火 207
    • 9.4 Warmup与循环学习率调度 209
      • 9.4.1 Warmup策略实现 209
      • 9.4.2 循环学习率调度 211
      • 9.4.3 其他几种常见的动态学习调度器 214
    • 9.5 本章小结 217
    • 9.6 思考题 218
  • 第 10 章 模型蒸馏与剪枝 219
    • 10.1 知识蒸馏:教师-学生模型 219
      • 10.1.1 知识蒸馏核心过程 219
      • 10.1.2 教师-学生模型 221
      • 10.1.3 蒸馏损失 224
    • 10.2 知识蒸馏在文本模型中的应用 226
      • 10.2.1 知识蒸馏在文本分类模型中的应用 226
      • 10.2.2 模型蒸馏效率分析 229
      • 10.2.3 文本情感分析任务中的知识蒸馏效率对比 231
    • 10.3 模型剪枝技术 234
      • 10.3.1 权重剪枝 234
      • 10.3.2 结构化剪枝 237
      • 10.3.3 在嵌入式设备上部署手写数字识别模型 240
      • 10.3.4 BERT模型的多头注意力剪枝 243
    • 10.4 本章小结 247
    • 10.5 思考题 248
  • 第 11 章 模型训练实战 249
    • 11.1 数据预处理与Tokenization细节 249
      • 11.1.1 大规模文本数据清洗 249
      • 11.1.2 常用分词器的使用 252
    • 11.2 大规模预训练模型的设置与启动 255
    • 11.3 预训练过程中的监控与中间结果保存 258
    • 11.4 训练中断与恢复机制 262
    • 11.5 综合案例:IMDB文本分类训练全流程 265
      • 11.5.1 数据预处理与Tokenization 265
      • 11.5.2 多GPU与分布式训练设置 266
      • 11.5.3 训练过程中的监控与中间结果保存 266
      • 11.5.4 训练中断与恢复 267
      • 11.5.5 测试模型性能 268
    • 11.6 本章小结 269
    • 11.7 思考题 270
  • 第 12 章 模型微调实战 271
    • 12.1 微调数据集的选择与准备 271
      • 12.1.1 数据集准备与清洗 271
      • 12.1.2 数据集分割 272
      • 12.1.3 数据增强 272
    • 12.2 层级冻结与部分解冻策略 274
    • 12.3 模型参数调整与优化技巧 276
    • 12.4 微调后的模型评估与推理优化 278
    • 12.5 综合微调应用案例 280
    • 12.6 本章小结 283
    • 12.7 思考题 283

大模型应用开发极简入门:基于 GPT-4 和 ChatGPT

内容简介

本书为大模型应用开发极简入门手册,为初学者提供了一份清晰、全面的“最小可用知识”,带领大家快速了解GPT-4和ChatGPT的工作原理及优势,并在此基础上使用流行的Python编程语言构建大模型应用。通过本书,你不仅可以学会如何构建文本生成、问答和内容摘要等初阶大模型应用,还能了解到提示工程、模型微调、插件、LangChain等高阶实践技术。书中提供了简单易学的示例,帮你理解并应用在自己的项目中。此外,书后还提供了一份术语表,方便你随时参考。
准备好了吗?只需了解Python,你即可将本书作为进入大模型时代的启动手册,开发出自己的大模型应用。

编辑推荐

  • 【0门槛】人人都可以借力大模型,做出 AI 应用
  • 【简单】学习大模型应用开发的“Z小可用知识”
  • 【实操】学会写提示词、模型微调、使用 LangChain 等
  • 【实战】提供常用场景代码示例,方便快速学习
  • 【快速】2H 上手构建你的第一个原生 AI 应用
  • 【全面】了解 GPT-4 和 ChatGPT 的工作原理
  • 【品控】一线从业者翻译,注释说明内容更新
  • 【推荐】大模型一线创业者、应用技术专家推荐

作者简介

奥利维耶·卡埃朗(Olivier Caelen)
国际支付服务先驱Worldline公司机器学习研究员、布鲁塞尔自由大学机器学习博士,业余时间在布鲁塞尔自由大学教授机器学习课程。

玛丽-艾丽斯·布莱特(Marie-Alice Blete)
国际支付服务先驱Worldline公司研发部门软件架构师、数据工程师。她还负责维护开发者关系,并担任技术演讲嘉宾。

目录

  • 推荐序一 学习成为善用 AI 的人
  • 推荐序二 开启一段有趣、有启发、有收获的冒险旅程
  • 推荐序三 人人都要学会和 AI 相处
  • 推荐序四 AI 工程师:做新一轮智能革命的首批探索者
  • 推荐序五 进入智能应用的新时代
  • 推荐序六 AGI:不要旁观,要真正参与
  • 推荐序七 不要害怕被 ChatGPT 取代,要做第一批驾驭新技术的人
  • 译者序 没有谁天生就是 AI 工程师
  • 前言
  • 第 1 章 初识 GPT-4 和 ChatGPT
  • 第 2 章 深入了解 GPT-4 和 ChatGPT 的 API
  • 第 3 章 使用 GPT-4 和 ChatGPT 构建应用程序
  • 第 4 章 GPT-4 和 ChatGPT 的高级技巧
  • 第 5 章 使用 LangChain 框架和插件增强 LLM 的功能
  • 术语表
  • 作者简介

动手学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

理想国

《理想国》涉及柏拉图思想体系的各个方面,包括哲学、伦理、教育、文艺、政治等内容,主要是探讨理想国家的问题。

《理想国》一书是柏拉图的一篇重要对话录,对话录里柏拉图以苏格拉底之口通过与其他人对话的方式设计了一个真、善、美相统一的政体,即可以达到公正的理想国。柏拉图的理想国是人类历史上最早的乌托邦。在他的理想国里统治者必须是哲学家,他认为现存的政治都是坏的,人类的真正出路在于哲学家掌握政权,也只有真正的哲学家才能拯救当时城邦所处的危机。这种信念构成了柏拉图成熟的政治哲学体系的核心。在他的眼里“哲学家”有着特殊的内涵。他认为哲学家是最高尚、最有学识的人,而这种贤人统治下的贤人政体就是最好是政体。所以,只有建立以哲学家为国王的国家才是最理想的国家。这个国家就是存在于天上的模范国家。

在他看来,哲学家的本质是具有知识,具有智慧、正义、善的美德,只有哲学家才能达到对国家最高理念的认识,即对“善”的把握,而其他人也只能把握“意见”而已。治国作为一门知识,也只有哲学家才能掌握它,进而有资格执政,也就是说只有哲学家才能达到对于国家理念的认识,知道“理想国”应该怎样组织、怎样治理。这样,所谓哲学家执政,就被柏拉图理解为高超的智慧、真实的知识、完美的德行和绝对最高权力的结合。他坚信只有哲学家才可拯救城邦和人民,哲学家是理想国必然的统治者。

人类追求的正义与善就是柏拉图理想国的主题,他认为国家、政治和法律要朝向真正的存在并与人的灵魂相关才有意义。在《理想国》里苏格拉底刚开始讨论的话题就是“正义”问题,由此我们可以看到柏拉图对正义有着多么强烈的憧憬与向往!他认为绝对的正义在神那里,这正好印证了对话结尾的宣言,“让我们永远走向上的路,追求正义和智慧”。正义和智慧不仅是国家的主题,也可以说是整个宇宙存在的本质,因为国家的起点“就是永无止境的时间以及时间带来的变化”。

柏拉图的正义表现在爱情上就是节制。在我们很多人看来,柏拉图式的爱情似乎是精神恋的代名词,用来指称那种超越时间、空间,不以占有对方肉体为目的的只存在于灵魂间的爱情。而实际上柏拉图式爱情的真谛指的是一种对节制的崇尚,对善和美的追求。

人类简史:从动物到上帝(图文精编版)

十万年前,地球上至少有六种不同的人

但今日,世界舞台为什么只剩下了我们自己?

从只能啃食虎狼吃剩的残骨的猿人,到跃居食物链顶端的智人,

从雪维洞穴壁上的原始人手印,到阿姆斯壮踩上月球的脚印,

从认知革命、农业革命,到科学革命、生物科技革命,

我们如何登上世界舞台成为万物之灵的?

从公元前1776年的《汉摩拉比法典》,到1776年的美国独立宣言,

从帝国主义、资本主义,到自由主义、消费主义,

从兽欲,到物欲,从兽性、人性,到神性,

我们了解自己吗?我们过得更快乐吗?

我们究竟希望自己得到什么、变成什么?

------------------------------------------------------------------------------------------------

【编辑推荐】

1、由书改变而成的人类简史课程风靡全球,成为希伯来大学最受欢迎课程 Coursera最受欢迎课程 ,mooc最受欢迎课程。学界和大众都一致认可,戴蒙德推荐。

2、一大开创性:打通文字发明前后历史的界限。

文字发明之前的年代,是生物学家、考古学家的专长;文字发明之后的年代,是历史学家、政治学家和经济学家的专长;

许多著名史家的作品,欠缺遗传学或生态学的视野,如何让这两大段历史之间没有断层,能够有一以贯之的宏观解读?

本书不同于《枪炮、病菌与钢铁》从生物与环境的角度看人类社会的发展,也不同于麦克尼尔的《世界史》以文明为单位绘制的人类文明交织的世界。 他笔下的历史,在科学中有深沉的人文关怀。

3、填补传统人类史的三大鸿沟:

历史观与哲学观之间的鸿沟(提供有史实根据的深刻哲学思考);人类和生态系统之间的鸿沟(作者多从生态来思考,而不是只讲人类的利益);集体和个人之间的鸿沟(检视历史事件如何影响到当时一般人的生活)。

4、四大部分描述人类大历史:

7万年前的大脑认知革命(有能力谈八卦,想象不存在的事物,让陌生人开始合作、建立组织)

1.2万年前的农业革命(让我们渴求更多、生产更多,分工分职愈趋细腻)、

500年前的科学革命(带来快速进步,让我们拥有上帝的力量,也带来毁灭)

全球大一统、人类大融合的关键因素——金钱、帝国、宗教

5、一部个人幸福探索之书。

用通俗的语言和新鲜的视角,将个体的幸福放在人类发展的过程中审视,不再错过历史中最关键、最有意思的部分。涵盖了生物学,人类学,哲学,心理学,艺术,文学,伦理学等众多领域。涉及幸福,生命的意义等众多话题,有人说这是一部个人幸福探索之书。

6、一部“瘦身版”人类简史。

如果说给我一本书,不到五百页,没有一堆令人晕头转向的年份、人名、地名、称号,就能涵盖了人类如何崛起、影响现代生活甚巨的资本主义、一神教、自由人文主义、基因工程如何兴盛的人类历史重大脉络……这是仅有的一部!

7、一部引发多国版权大战的神秘大书。

获得波兰斯基人文学科创造力与独创性奖。 100周蝉联以色列畅销书排行榜第一,在英国,9家出版商疯狂竞价。 23个国家竞相购买版权。台湾上市一周,金石堂、诚品历史类畅销书榜第一 ,诚品总榜第八,西班牙上市两周总榜第一。

------------------------------------------------------------------------------------------------

【内容简介】

《人类简史:从动物到上帝》是以色列新锐历史学家的一部重磅作品。从十万年前有生命迹象开始到21世纪资本、科技交织的人类发展史。十万年前,地球上至少有六个人种,为何今天却只剩下了我们自己?我们曾经只是非洲角落一个毫不起眼的族群,对地球上生态的影响力和萤火虫、猩猩或者水母相差无几。为何我们能登上生物链的顶端,最终成为地球的主宰?

从认知革命、农业革命到科学革命,我们真的了解自己吗?我们过得更加快乐吗?我们知道金钱和宗教从何而来,为何产生吗?人类创建的帝国为何一个个衰亡又兴起?为什么地球上几乎每一个社会都有男尊女卑的观念?为何一神教成为最为广泛接受的宗教?科学和资本主义如何成为现代社会最重要的信条?理清影响人类发展的重大脉络,挖掘人类文化、宗教、法律、国家、信贷等产生的根源。这是一部宏大的人类简史,更见微知著、以小写大,让人类重新审视自己。

------------------------------------------------------------------------------------------------

【各界评论】

《人类简史:从动物到上帝》为什么能够在国际畅销书榜上爆冲?原因很简单,它处理的是历史的大问题、现代世界的大问题,而且,它的写作风格是刻骨铭心的生动。你会爱上它!

——普利策奖得主 《枪炮、病菌与钢铁》作者戴蒙德

这是此类大历史中最好的一本:规模宏大但绝非泛泛而谈;具有时代性又不花哨,观念惊世骇俗但绝不是个简单的反对者。每个人都能在书里找到一部分和另外的人开始讨论,但是弄清楚是哪部分、为什么,对我们都有好处。

——牛津大学历史学院院长 斯蒂文·刚尼

我拿起这本《人类简史》立刻“着道”了——拿起了就放不下,几乎一口气读完。吸引力主要来自作者才思的旷达敏捷,还有译者文笔的生动晓畅,而书中屡屡提及中国的相关史实,也能让人感到一种说不出的亲切,好像自己也被融入其中,读来欲罢不能。

——北京大学历史系教授 高毅

《人类简史》的目的不是传授人类考古学的所有研究成果,而是提供一种看历史的视角,一种全局的观点。当你不再执着于科学、政治或宗教等某一个领域的发展过程,而是关注人类社会的整体演变,观察这些领域之间的相互作用,你会感到你脑海中零碎的历史知识忽然像拼图一样各就各位,构成一幅宏大的图景,这样的视角非常新鲜。

——果壳网 姬十三

读完这本书,有一种跟着人类一同走过十万年的感觉!

——读者

这本书如果要用“宏伟史诗”来形容一点也不过分,其中包含了很多学科的内容,例如考古学、生物学、物理学、经济学、宗教、社会学甚至计算机科学等等。书里里面的大部分观点都是从不同的角度进行介绍,其中很多都是经无数人严格验证过的,讲师很多时候仅仅是通过自己的表达希望尽量客观地介绍一些内容,至于每个人怎么理解并没有统一的标准了。

——读者

超级好的课程,付费都坚持下来了,观点独特,从来没想到能从这个角度理解我们人类自己。

——读者

不能承受的生命之轻

* 全球销售超三亿册的超级畅销书

* 二十世纪堪称伟大的小说

* 米兰·昆德拉代表作

人生选择之书,轻与重的相对论

“如果生命的初次排练就已经是生命本身,那么生命到底会有什么价值?”

“一切都是马上经历,仅此一次,不能准备。”

* 随书附赠定制版米兰·昆德拉主题贴纸

* 打造属于你自己的独一无二的个性昆德拉文集

《不能承受的生命之轻》是米兰·昆德拉的小说代表作,享誉世界的超级畅销书,小说依托二十世纪六十年代捷克斯洛伐克的历史剧变,以托马斯与特蕾莎偶然而宿命般的爱情为主线展开故事,不仅仅是描述几对男女感情上的纠葛,也不仅仅是书写个人命运在大的境遇变迁中的沉浮、个人在变革时刻的选择,更是一部层次丰富、意象繁复的哲理小说,从永恒轮回的谵妄之下人的生命分量几何这一带着神秘感的疑问开篇,随着不断穿插的书中人物的生活走向、所思所想提出了生命之轻与重、灵与肉的相对论。

该书是二十世纪最伟大的小说之一,昆德拉借此坚实地奠定了他作为世界上最伟大的在世作家的地位。

——《华盛顿时报》

他的作品使我坚信人类一定会生存下去,世界一定会生存下去,我全心全意在这个世界上所信仰、寻求和热望的一切都将恢复其人性的面貌。

感激他是因为在这个悲剧的今天,他使我比任何时候都更强烈地体会到,面对不朽的东西,即使死神也无能为力。”

——法国作家路易·阿拉贡

一部隐秘而闪光的杰作。

——伊恩·麦克尤恩

我只看过《不能承受的生命之轻》和《告别圆舞曲》,很喜欢。跟拉美、美国作家不太一样……小说中的讽刺有一点儿像黑色幽默,又不完全是,形成了一种独特的味道。

——莫言