Zhangzhe's Blog

The projection of my life.

0%

1. 机器学习编译概述

URL

https://mlc.ai/zh/chapter_introduction/index.html

什么是机器学习编译

  • 机器学习编译 (machine learning compilation, MLC) 是指,将机器学习算法从开发阶段,通过变换和优化算法,使其变成部署状态。

1.png

机器学习的痛点之一是:训练框架繁多/部署终端种类繁多,开发与部署存在 gap 。

  • 开发形式 是指我们在开发机器学习模型时使用的形式。典型的开发形式包括用 PyTorch、TensorFlow 或 JAX 等通用框架编写的模型描述,以及与之相关的权重。

  • 部署形式 是指执行机器学习应用程序所需的形式。它通常涉及机器学习模型的每个步骤的支撑代码、管理资源(例如内存)的控制器,以及与应用程序开发环境的接口(例如用于 android 应用程序的 java API)。

  • 机器学习编译的目标

    • 集成与最小化依赖
    • 利用硬件加速
    • 通用优化

机器学习编译的关键要素

  • 张量
  • 张量函数
  • 抽象:做什么
  • 实现:怎么做

2.png

绿色节点表示张量,白色节点表示张量函数

3.png

机器学习编译过程中的张量函数变换过程

4.png

抽象和实现

总结

  • 机器学习编译的目标
    • 集成与最小化依赖
    • 利用硬件加速
    • 通用优化
  • 为什么学习机器学习编译
    • 构建机器学习部署解决方案
    • 深入了解现有机器学习框架
    • 为新兴硬件建立软件栈
  • 机器学习编译的关键要素
    • 张量和张量函数
    • 抽象和实现是值得思考的工具