本书在介绍如何利用前端技术来实现深度学习的模型部署和预测的基础上,重点介绍了若干运用前端AI技术的典型场景。本书内容包括三大部分:前端与AI、引入新模型和Web AI进阶。本书重点讲解模型开发的“全链路”,从模型供给到业务实现,串联起前端AI开发的整个流程。读者可以根据定制化的需求利用Paddle.js前端推理引擎完成算子开发、精度对齐、业务场景接入等具体的研发工作。本书不仅可以使读者对前端AI的理论和技术体系有深入的了解,还能通过指导实现推理效果的验证,让前端开发和AI技术深入结合,实现理论和实践的统一。
张静媛毕业于西安电子科技大学。在百度参与了语音搜索、百度畅听、百度体育等产品的前端研发工作。目前主要参与 Paddle.js 移动 AI 开发和探索工作,以及搜索团队前端横向技术方向的工作,致力于提升搜索前端技术的基础设施建设。岳双燕毕业于山东大学。在百度参与了多模视觉搜索、百度搜索TOP1、泛娱乐、垂类等产品的前端研发工作,以及搜索团队前端性能及稳定性等技术方向的工作。目前主要参与 Paddle.js 移动 AI 开发和探索。樊中恺毕业于北京科技大学,前端架构师,Paddle.js负责人。2008年开始接触前端开发,并于2012年进入移动端开发领域。曾先后负责百度浏览器、百度文库、百度阅读、手百App的前端技术架构工作。目前工作的主要方向为AI-Native应用的研发。在端智能、工程化、前端架构等领域拥有丰富的经验。
第1部分 前端与AI
第1章 Web AI 2
1.1 Web AI的特点 3
1.2 Web AI的发展历程 5
1.3 总结 8
第2章 神经网络和前端推理引擎 9
2.1 感知机 10
2.2 从感知机到神经网络 12
2.3 前端推理引擎 15
2.4 总结 18
第3章 Paddle.js 初探 19
3.1 AI全链路 19
3.1.1 AI全链路基本介绍 20
3.1.2 前端推理引擎Paddle.js 21
3.2 模型和神经网络拓扑结构 24
3.2.1 模型结构文件与参数文件 25
3.2.2 神经网络拓扑结构 26
3.3 推理过程与运行环境 31
3.3.1 推理过程 31
3.3.2 运行环境 33
3.4 使用Paddle.js 33
3.5 总结 44
第4章 CV项目实战 46
4.1 paddlejs-models模型库 46
4.1.1 backend选择 47
4.1.2 引入模型 library 48
4.2 经典CV模型实战 50
4.2.1 图像分类 51
4.2.2 图像分割 56
4.2.3 目标检测 66
4.3 小程序CV项目 73
4.3.1 微信小程序插件paddlejsPlugin 73
4.3.2 百度智能小程序动态库paddlejs 76
4.4 总结 78
第2部分 引入新模型
第5章 模型准备 82
5.1 模型转换 82
5.1.1 转换工具使用 83
5.1.2 转换过程 87
5.2 模型算子 90
5.2.1 算子基本信息 90
5.2.2 算子计算规则 92
5.3 算子开发与测试 93
5.3.1 算子开发 93
5.3.2 算子测试 96
5.4 总结 99
第6章 模型前后处理 100
6.1 模型前处理 100
6.1.1 媒体资源获取 101
6.1.2 输入数据处理 107
6.2 模型后处理 114
6.2.1 目标分类 114
6.2.2 目标框选 115
6.2.3 目标分割 116
6.3 总结 117
第7章 图像处理 118
7.1 简单滤镜 118
7.1.1 灰度 119
7.1.2 色相旋转 121
7.2 美颜效果 125
7.2.1 美白滤镜 125
7.2.2 磨皮滤镜 129
7.2.3 瘦脸滤镜 134
7.2.4 大眼滤镜 139
7.3 总结 142
第3部分 Web AI进阶
第8章 计算方案 146
8.1 基本概念 146
8.1.1 多线程 147
8.1.2 SIMD 147
8.1.3 CPU与GPU 148
8.2 计算方案介绍 149
8.2.1 PlainJS计算方案 150
8.2.2 WebGL计算方案 151
8.2.3 WebGPU 计算方案 154
8.2.4 WebAssembly计算方案 159
8.2.5 NodeGL计算方案 161
8.2.6 Web Worker在Paddle.js上的应用 161
8.3 计算方案对比 168
8.4 总结 169
第9章 性能优化 170
9.1 算子融合 170
9.2 向量化计算 174
9.3 多线程 179
9.4 总结 186
第10章 Web AI应用安全 187
10.1 安全问题与安全目标 187
10.1.1 安全问题 188
10.1.2 安全目标 190
10.2 前端安全技术 191
10.2.1 加解密方案 191
10.2.2 代码安全 193
10.2.3 安全加固方案 196
10.3 安全方案 197
10.3.1 安全中心 198
10.3.2 离线部署 201
10.3.3 在线推理 202
10.4 总结 203
第11章 Web AI的发展趋势 205
11.1 Web AI的六大能力 205
11.2 技术展望 209
11.2.1 Web AI的标准 209
11.2.2 Web AI中的端云协同 210
11.3 总结 212
第12章 未来已来 213
12.1 大语言模型简介 215
12.1.1 什么是GPT 216
12.1.2 超大语言模型带来的能力跃升 219
12.1.3 GPT-4的又一次生长 221
12.1.4 回答准确性和可解释性 222
12.2 前端和大语言模型 223
12.2.1 提示语是一切的核心 224
12.2.2 学会如何与GPT交流 230
12.2.3 用GPT优化工作流 233
12.3 关于未来的畅想 242
12.4 给前端工程师的建议 246