一般来讲,很少从头手写深度学习代码

深度学习框架(训练)

  • GPU为基础的Tensor运算
  • 构建网络后自动求解梯度的方法
  • 模型训练体系(简洁程度+运算效率)
  • 模型推断体系(转换成有效的服务)

image.pngimage.png

硬件

  • CPU

image.png
避免cache miss

  • GPU

大部分操作的并行化——SIMT(同样一个命令,由多个线程计算)
显存污染:显存的“写后读”
image.png
image.png

  • TPU

image.png
image.png

AI 项目的部署

结构复杂、需要大量的算力、框架依赖复杂

目标

  • 不崩
  • 不出大问题、合适的效率、保证尽可能少的侵入性(系统的改变)(Docker,Kubernetes)

原则

  • 微服务框架
  • Profiler性能的优化(意料之外)

深度学习推断框架

功能:

  • 读取模型,根据模型结果构建出一个网络,提供一个REST接口,只需要询问输入是什么,之后便得到输出;
  • 调取不同的硬件
  • 对推断结果做预处理(重要:批处理)

TF serving

微服务

Docker轻量级的虚拟机
image.png
image.png