URL
https://mlc.ai/zh/chapter_introduction/index.html
什么是机器学习编译
- 机器学习编译 (machine learning compilation, MLC) 是指,将机器学习算法从开发阶段,通过变换和优化算法,使其变成部署状态。
机器学习的痛点之一是:训练框架繁多/部署终端种类繁多,开发与部署存在 gap 。
- 开发形式 是指我们在开发机器学习模型时使用的形式。典型的开发形式包括用 PyTorch、TensorFlow 或 JAX 等通用框架编写的模型描述,以及与之相关的权重。
- 部署形式 是指执行机器学习应用程序所需的形式。它通常涉及机器学习模型的每个步骤的支撑代码、管理资源(例如内存)的控制器,以及与应用程序开发环境的接口(例如用于 android 应用程序的 java API)。
- 机器学习编译的目标
- 集成与最小化依赖
- 利用硬件加速
- 通用优化
机器学习编译的关键要素
- 张量
- 张量函数
- 抽象:做什么
- 实现:怎么做
绿色节点表示张量,白色节点表示张量函数
机器学习编译过程中的张量函数变换过程
抽象和实现
总结
- 机器学习编译的目标
- 集成与最小化依赖
- 利用硬件加速
- 通用优化
- 为什么学习机器学习编译
- 构建机器学习部署解决方案
- 深入了解现有机器学习框架
- 为新兴硬件建立软件栈
- 机器学习编译的关键要素
- 张量和张量函数
- 抽象和实现是值得思考的工具