智能计算系统:从深度学习到大模型(第2版) / 计算机类专业系统能力培养系列教材
¥169.00定价
作者: 陈云霁
出版时间:2024-07
出版社:机械工业出版社
- 机械工业出版社
- 9787111755951
- 2-2
- 526024
- 平装
- 16开
- 2024-07
- 781
- 人工智能
- 本科
内容简介
本书由中科院计算所、软件所的专家学者倾心写就,以“图像风格迁移”应用为例,全面介绍智能计算系统的软硬件技术栈。第2版以大模型为牵引进行更新,第1章回顾人工智能、智能计算系统的发展历程,第2、3章在介绍深度学习算法知识的基础上增加了大模型算法的相关知识,第4章介绍深度学习编程框架PyTorch的发展历程、基本概念、编程模型和使用方法,第5章介绍编程框架的工作原理,第6章回顾深度学习所用的处理器结构从通用逐步走向专用的过程,第7章介绍深度学习处理器的体系结构应当如何应对大模型处理中的计算、访存、通信瓶颈,第8章介绍基于BCL语言的高性能算子开发优化实践,第9章介绍面向大模型的计算系统并以BLOOM作为驱动范例。本书适合作为高等院校相关专业的教材,也适合人工智能领域的科研人员参考。
目录
目录
丛书序言
序言一
序言二
第 2 版前言
第 1 版前言
第 1 章 概述 1
1.1 人工智能1
1.1.1 什么是人工智能 1
1.1.2 人工智能的主要方法1
1.1.3 人工智能的发展历史5
1.2 智能计算系统 8
1.2.1 什么是智能计算系统8
1.2.2 为什么需要智能计算系统8
1.2.3 智能计算系统的发展9
1.3 驱动范例 12
1.4 本章小结 13
习题.14
第 2 章 深度学习基础15
2.1 机器学习 15
2.1.1 基本概念15
2.1.2 线性回归16
2.2 神经网络 19
2.2.1 感知机19
2.2.2 多层感知机 22
2.2.3 深度学习23
2.2.4 神经网络的发展历程24
2.3 神经网络的训练方法 26
2.3.1 正向传播26
2.3.2 反向传播29
2.4 神经网络的设计基础 30
2.4.1 网络的拓扑结构30
2.4.2 激活函数31
2.4.3 损失函数35
2.5 过拟合与正则化 38
2.5.1 过拟合38
2.5.2 正则化39
2.6 交叉验证 44
2.7 本章小结 46
习题 47
第 3 章 深度学习应用48
3.1 适合图像处理的卷积神经网络 48
3.1.1 卷积神经网络的总体结构 49
3.1.2 应用于图像分类的卷积神经
网络.60
3.1.3 应用于图像目标检测的卷积神
XXI
经网络79
3.1.4 应用于图像生成的神经网络95
3.2 适合文本/语音处理的循环神经
网络110
3.2.1 RNN110
3.2.2 LSTM 114
3.2.3 GRU117
3.2.4 小结118
3.3 大模型118
3.3.1 Seq2Seq119
3.3.2 注意力机制120
3.3.3 Transformer124
3.3.4 自然语言处理大模型 126
3.3.5 图像处理和多模态大模型 139
3.3.6 基于大模型的智能体系统 152
3.3.7 小结156
3.4 神经网络的优化157
3.4.1 初始化方法158
3.4.2 梯度下降法159
3.4.3 动量法 163
3.4.4 二阶优化方法 164
3.4.5 自适应学习率算法165
3.5 神经网络量化 167
3.5.1 数据量化 169
3.5.2 神经网络量化过程173
3.5.3 神经网络量化应用174
3.5.4 神经网络的混合精度量化.175
3.5.5 大模型量化176
3.5.6 小结177
3.6 驱动范例 177
3.6.1 图像风格迁移简介177
3.6.2 基于卷积神经网络的图像风格
迁移算法 178
3.6.3 实时图像风格迁移算法 181
3.7 本章小结 182
习题 183
第 4 章 编程框架使用 184
4.1 编程框架概述 184
4.1.1 为什么需要编程框架 184
4.1.2 编程框架的发展历程 186
4.2 PyTorch 概述 187
4.3 PyTorch 编程模型及基本
用法188
4.3.1 NumPy 基础 188
4.3.2 张量194
4.3.3 操作202
4.3.4 计算图 206
4.4 基于 PyTorch 的模型推理
实现208
4.4.1 读取输入图像 210
4.4.2 构建神经网络 214
4.4.3 实例化神经网络模型 222
4.4.4 神经网络模型的调试 226
4.4.5 神经网络模型优化228
4.5 基于 PyTorch 的模型训练
实现231
4.5.1 加载训练数据集 231
4.5.2 模型训练 233
4.5.3 模型的保存与恢复239
4.6 驱动范例 241
4.6.1 加载依赖包241
4.6.2 加载并显示内容图像和
风格图像 242
4.6.3 创建输入图像 243
4.6.4 定义并计算损失函数 244
4.6.5 构建风格迁移算法247
XXII
4.6.6 风格迁移算法运行248
4.7 本章小结 249
习题 249
第 5 章 编程框架原理 250
5.1 编程框架设计 250
5.1.1 设计原则 250
5.1.2 整体架构 251
5.2 计算图构建 252
5.2.1 正向计算图构建 253
5.2.2 反向计算图构建 256
5.3 计算图执行 260
5.3.1 设备管理 260
5.3.2 张量实现 262
5.3.3 算子执行 269
*5.4 深度学习编译 278
5.4.1 为什么需要深度学习编译 278
5.4.2 图层级编译优化 281
5.4.3 算子层级编译优化287
5.4.4 常见深度学习编译器 294
*5.5 分布式训练299
5.5.1 为什么需要分布式训练 300
5.5.2 分布式训练基础 300
5.5.3 分布式训练方法 305
5.5.4 分布式训练框架实现 312
5.6 本章小结 318
习题 319
第 6 章 面向深度学习的处理器原理320
6.1 通用处理器 320
6.1.1 通用处理器的执行原理 321
6.1.2 通用处理器的结构发展 323
6.1.3 通用处理器分析和优化 339
6.1.4 总结和讨论346
6.2 向量处理器 347
6.2.1 向量处理器的执行原理 347
6.2.2 向量处理器的结构发展 352
6.2.3 向量处理器分析和优化 359
6.2.4 总结和讨论363
6.3 深度学习处理器364
6.3.1 深度学习处理器的执行
原理364
6.3.2 深度学习处理器的结构
发展376
6.3.3 总结和讨论382
6.4 大规模深度学习处理器382
6.4.1 一致性访存模型 383
6.4.2 非一致性访存模型384
6.4.3 分形计算模型 386
6.4.4 深度学习处理器示例 386
6.5 本章小结 387
习题 387
第 7 章 深度学习处理器架构.389
7.1 计算389
7.1.1 矩阵运算单元 390
7.1.2 向量与标量单元 400
7.1.3 总结和讨论408
7.2 存储409
7.2.1 便笺存储器409
7.2.2 外部存储器访问 412
7.2.3 总结和讨论417
7.3 通信418
7.3.1 互联网络 419
7.3.2 集合通信原语 420
7.3.3 通信架构设计 424
7.3.4 总结和讨论426
*7.4 设计优化 426
7.4.1 变换427
XXIII
7.4.2 压缩429
7.4.3 近似431
7.4.4 非传统结构和器件434
7.5 本章小结 437
习题 437
第 8 章 智能编程语言 439
8.1 为什么需要智能编程语言439
8.1.1 语义鸿沟 440
8.1.2 硬件鸿沟 442
8.1.3 平台鸿沟 445
8.1.4 小结445
8.2 智能计算系统抽象架构446
8.2.1 抽象硬件架构 447
8.2.2 典型智能计算系统447
8.2.3 控制模型 448
8.2.4 存储模型 449
8.2.5 计算模型 450
8.3 智能编程模型 450
8.3.1 异构编程 450
8.3.2 多核并行 452
8.3.3 存储空间 454
8.4 智能编程语言基础 455
8.4.1 语法概述 455
8.4.2 内建变量与内建函数 457
8.4.3 BCL 程序示例458
8.5 智能应用编程接口 459
8.5.1 核函数接口459
8.5.2 运行时接口460
8.5.3 使用示例 462
8.6 智能应用功能调试 465
8.6.1 功能调试方法 465
8.6.2 功能调试接口 470
8.6.3 功能调试工具 472
8.6.4 精度调试方法 474
8.6.5 功能调试实践 476
8.7 智能应用性能调优 483
8.7.1 性能分析工具 483
8.7.2 性能调优方法 489
8.8 智能编程语言的应用 495
8.8.1 高性能算子开发 496
8.8.2 编程框架算子开发502
8.9 本章小结 509
习题 509
第 9 章 大模型计算系统511
9.1 大模型算法分析512
9.2 大模型驱动范例:BLOOM 516
9.2.1 BLOOM-176B 模型 516
9.2.2 BLOOM-176B 运行平台517
9.2.3 BLOOM-176B 计算过程及
分析518
9.3 大模型系统软件524
9.3.1 训练场景 525
9.3.2 推理场景 530
9.4 大模型基础硬件534
9.4.1 大模型计算节点 534
9.4.2 大模型计算集群 538
9.5 本章小结 541
习题 541
参考文献 544
后记566
丛书序言
序言一
序言二
第 2 版前言
第 1 版前言
第 1 章 概述 1
1.1 人工智能1
1.1.1 什么是人工智能 1
1.1.2 人工智能的主要方法1
1.1.3 人工智能的发展历史5
1.2 智能计算系统 8
1.2.1 什么是智能计算系统8
1.2.2 为什么需要智能计算系统8
1.2.3 智能计算系统的发展9
1.3 驱动范例 12
1.4 本章小结 13
习题.14
第 2 章 深度学习基础15
2.1 机器学习 15
2.1.1 基本概念15
2.1.2 线性回归16
2.2 神经网络 19
2.2.1 感知机19
2.2.2 多层感知机 22
2.2.3 深度学习23
2.2.4 神经网络的发展历程24
2.3 神经网络的训练方法 26
2.3.1 正向传播26
2.3.2 反向传播29
2.4 神经网络的设计基础 30
2.4.1 网络的拓扑结构30
2.4.2 激活函数31
2.4.3 损失函数35
2.5 过拟合与正则化 38
2.5.1 过拟合38
2.5.2 正则化39
2.6 交叉验证 44
2.7 本章小结 46
习题 47
第 3 章 深度学习应用48
3.1 适合图像处理的卷积神经网络 48
3.1.1 卷积神经网络的总体结构 49
3.1.2 应用于图像分类的卷积神经
网络.60
3.1.3 应用于图像目标检测的卷积神
XXI
经网络79
3.1.4 应用于图像生成的神经网络95
3.2 适合文本/语音处理的循环神经
网络110
3.2.1 RNN110
3.2.2 LSTM 114
3.2.3 GRU117
3.2.4 小结118
3.3 大模型118
3.3.1 Seq2Seq119
3.3.2 注意力机制120
3.3.3 Transformer124
3.3.4 自然语言处理大模型 126
3.3.5 图像处理和多模态大模型 139
3.3.6 基于大模型的智能体系统 152
3.3.7 小结156
3.4 神经网络的优化157
3.4.1 初始化方法158
3.4.2 梯度下降法159
3.4.3 动量法 163
3.4.4 二阶优化方法 164
3.4.5 自适应学习率算法165
3.5 神经网络量化 167
3.5.1 数据量化 169
3.5.2 神经网络量化过程173
3.5.3 神经网络量化应用174
3.5.4 神经网络的混合精度量化.175
3.5.5 大模型量化176
3.5.6 小结177
3.6 驱动范例 177
3.6.1 图像风格迁移简介177
3.6.2 基于卷积神经网络的图像风格
迁移算法 178
3.6.3 实时图像风格迁移算法 181
3.7 本章小结 182
习题 183
第 4 章 编程框架使用 184
4.1 编程框架概述 184
4.1.1 为什么需要编程框架 184
4.1.2 编程框架的发展历程 186
4.2 PyTorch 概述 187
4.3 PyTorch 编程模型及基本
用法188
4.3.1 NumPy 基础 188
4.3.2 张量194
4.3.3 操作202
4.3.4 计算图 206
4.4 基于 PyTorch 的模型推理
实现208
4.4.1 读取输入图像 210
4.4.2 构建神经网络 214
4.4.3 实例化神经网络模型 222
4.4.4 神经网络模型的调试 226
4.4.5 神经网络模型优化228
4.5 基于 PyTorch 的模型训练
实现231
4.5.1 加载训练数据集 231
4.5.2 模型训练 233
4.5.3 模型的保存与恢复239
4.6 驱动范例 241
4.6.1 加载依赖包241
4.6.2 加载并显示内容图像和
风格图像 242
4.6.3 创建输入图像 243
4.6.4 定义并计算损失函数 244
4.6.5 构建风格迁移算法247
XXII
4.6.6 风格迁移算法运行248
4.7 本章小结 249
习题 249
第 5 章 编程框架原理 250
5.1 编程框架设计 250
5.1.1 设计原则 250
5.1.2 整体架构 251
5.2 计算图构建 252
5.2.1 正向计算图构建 253
5.2.2 反向计算图构建 256
5.3 计算图执行 260
5.3.1 设备管理 260
5.3.2 张量实现 262
5.3.3 算子执行 269
*5.4 深度学习编译 278
5.4.1 为什么需要深度学习编译 278
5.4.2 图层级编译优化 281
5.4.3 算子层级编译优化287
5.4.4 常见深度学习编译器 294
*5.5 分布式训练299
5.5.1 为什么需要分布式训练 300
5.5.2 分布式训练基础 300
5.5.3 分布式训练方法 305
5.5.4 分布式训练框架实现 312
5.6 本章小结 318
习题 319
第 6 章 面向深度学习的处理器原理320
6.1 通用处理器 320
6.1.1 通用处理器的执行原理 321
6.1.2 通用处理器的结构发展 323
6.1.3 通用处理器分析和优化 339
6.1.4 总结和讨论346
6.2 向量处理器 347
6.2.1 向量处理器的执行原理 347
6.2.2 向量处理器的结构发展 352
6.2.3 向量处理器分析和优化 359
6.2.4 总结和讨论363
6.3 深度学习处理器364
6.3.1 深度学习处理器的执行
原理364
6.3.2 深度学习处理器的结构
发展376
6.3.3 总结和讨论382
6.4 大规模深度学习处理器382
6.4.1 一致性访存模型 383
6.4.2 非一致性访存模型384
6.4.3 分形计算模型 386
6.4.4 深度学习处理器示例 386
6.5 本章小结 387
习题 387
第 7 章 深度学习处理器架构.389
7.1 计算389
7.1.1 矩阵运算单元 390
7.1.2 向量与标量单元 400
7.1.3 总结和讨论408
7.2 存储409
7.2.1 便笺存储器409
7.2.2 外部存储器访问 412
7.2.3 总结和讨论417
7.3 通信418
7.3.1 互联网络 419
7.3.2 集合通信原语 420
7.3.3 通信架构设计 424
7.3.4 总结和讨论426
*7.4 设计优化 426
7.4.1 变换427
XXIII
7.4.2 压缩429
7.4.3 近似431
7.4.4 非传统结构和器件434
7.5 本章小结 437
习题 437
第 8 章 智能编程语言 439
8.1 为什么需要智能编程语言439
8.1.1 语义鸿沟 440
8.1.2 硬件鸿沟 442
8.1.3 平台鸿沟 445
8.1.4 小结445
8.2 智能计算系统抽象架构446
8.2.1 抽象硬件架构 447
8.2.2 典型智能计算系统447
8.2.3 控制模型 448
8.2.4 存储模型 449
8.2.5 计算模型 450
8.3 智能编程模型 450
8.3.1 异构编程 450
8.3.2 多核并行 452
8.3.3 存储空间 454
8.4 智能编程语言基础 455
8.4.1 语法概述 455
8.4.2 内建变量与内建函数 457
8.4.3 BCL 程序示例458
8.5 智能应用编程接口 459
8.5.1 核函数接口459
8.5.2 运行时接口460
8.5.3 使用示例 462
8.6 智能应用功能调试 465
8.6.1 功能调试方法 465
8.6.2 功能调试接口 470
8.6.3 功能调试工具 472
8.6.4 精度调试方法 474
8.6.5 功能调试实践 476
8.7 智能应用性能调优 483
8.7.1 性能分析工具 483
8.7.2 性能调优方法 489
8.8 智能编程语言的应用 495
8.8.1 高性能算子开发 496
8.8.2 编程框架算子开发502
8.9 本章小结 509
习题 509
第 9 章 大模型计算系统511
9.1 大模型算法分析512
9.2 大模型驱动范例:BLOOM 516
9.2.1 BLOOM-176B 模型 516
9.2.2 BLOOM-176B 运行平台517
9.2.3 BLOOM-176B 计算过程及
分析518
9.3 大模型系统软件524
9.3.1 训练场景 525
9.3.2 推理场景 530
9.4 大模型基础硬件534
9.4.1 大模型计算节点 534
9.4.2 大模型计算集群 538
9.5 本章小结 541
习题 541
参考文献 544
后记566