这里回顾dlsys第二十四讲,本讲内容是模型部署。

课程主页:

大纲

  • 模型部署概述;
  • 机器学习编译;

模型部署概述

到目前为止我们在这门课上学到了什么

  • 如何构建深度学习系统,在标准计算环境(使用 GPU)上高效地训练深度学习模型;
  • 自动微分;
  • 深度模型;
  • 硬件加速和扩展;
  • 规范化、初始化、优化;

模型部署

将学习到的模型部署不同的应用环境:

模型部署注意事项

  • 应用环境可能会带来限制(模型大小,no-python);
  • 利用本地硬件加速(移动GPU、加速 CPU 指令、NPU)
    与应用程序集成(数据预处理、后处理);

模型导出并部署到推理引擎

推理引擎内部

  • 许多推理引擎被构造为计算图解释器;
  • 为中间激活分配内存,遍历图并执行每个运算符;
  • 通常只支持一组有限的运算符和编程模型(例如动态);

机器学习编译

库驱动的推理引擎部署的局限性

需要为每个硬件后端构建专门的库,大量的工程优化工作。

机器学习编译

模型的编译器表示

也称为中间表示 (IR):

编译流例子:high-level transformation

编译流例子:lowering to loop IR

编译流例子:low-level transformation

编译流例子:代码生成和执行

high-level IR和优化

  • 计算图(或类图)表示;
  • 每个节点都是一个张量运算符(例如卷积);
  • 可以转换(例如融合)和注释(例如设备放置);
  • 大多数 ML 框架都有这一层;

Low-level代码优化

Low-level循环表示的元素

转换循环:splitting

转换循环:reorder

转换循环:thread binding

通过学习成本模型搜索

小结:自动化ML编译器的元素

  • 程序表示
    • 如何将人们感兴趣的部分进行表示,然后加以优化;
  • 通过一组变换构建搜索空间
    • 涵盖常见的优化;
    • 寻找领域专家提供意见的方式;
  • 有效搜索
    • 成本模型、可转移性;