[陈天奇]机器学习编译课程学习笔记


文章目录

  • [陈天奇]机器学习编译课程学习笔记
    • @[TOC]
  • 第一节 机器学习编译概述
    • 1、为什么要学习机器学习编译?
    • 2、机器学习编译的目标是什么?
    • 3、MLC(Machine Learning Compilation)的关键元素

第一节 机器学习编译概述

1、为什么要学习机器学习编译?

AI出现之前的传统应用软件和硬件关系较为简单,上层各种各样的app,依赖少一些的软件库,软件库的实现基于特定的几种语言,但是对应到底层的部署硬件,大多都是x86,arm这样的通用处理器。陈天奇总结的是典型的漏斗型,这个很形象。

但是在机器学习时代,AI软件不是传统意义的app,而是机器学习模型。同时还要求我们将机器学习模型部署在cpu、gpu、npu等各种asic上、甚至是集群环境下,由于有的模型的计算量很大,需要能够在部署的硬件上高效执行。
机器学习编译问题其实本质是机器学习的部署问题。编译过程是将机器学习模型的执行和优化从开发态转变到部署态。这个过程把机器学习模型拆解开来,从计算图执行、优化到计算库,以及底层os和硬件的加速接口等元素详细的拆解开来。

2、机器学习编译的目标是什么?

1、首先是整合和最小化相关的依赖;如何理解:整合主要是类似各种框架中提供的不同算子等大量资源,在具体的应用部署时只需要其中的一小部分资源,这里机器学习编译器可以进行相关的依赖识别,进行相关的整合,来实现高效的应用模型部署。另一种整合,是用户自定义算子和厂商提供的计算库之间的整合。
2、再次就是针对gpu、tpu等不同的部署硬件,进行针对性对的加速计算。
总的目标其实就是优化部署:减少内存使用,提高执行效率

机器学习编译不一定会涉及到代码的生成

3、MLC(Machine Learning Compilation)的关键元素

  • Tensor:指一个多维的array,用来存储输入、输出以及模型的中间执行结果
  • Tensor Function:定义从input到output的计算,可以包含多个算子

对于同一个目标可以有不同的抽象表示,每个抽象表示的实现又可以是不一样的。
MLC的过程可以看作是对于Tensor Function在不同抽象表示下的转换过程。

[陈天奇]机器学习编译课程学习笔记相关推荐

  1. 台湾大学林轩田机器学习技法课程学习笔记4 -- Soft-Margin Support Vector Machine

    红色石头的个人网站:redstonewill.com 上节课我们主要介绍了Kernel SVM.先将特征转换和计算内积这两个步骤合并起来,简化计算.提高计算速度,再用Dual SVM的求解方法来解决. ...

  2. 台湾大学林轩田机器学习技法课程学习笔记1 -- Linear Support Vector Machine

    红色石头的个人网站:redstonewill.com 关于台湾大学林轩田老师的<机器学习基石>课程,我们已经总结了16节课的笔记.这里附上基石第一节课的博客地址: 台湾大学林轩田机器学习基 ...

  3. 台湾大学林轩田机器学习基石课程学习笔记13 -- Hazard of Overfitting

    红色石头的个人网站:redstonewill.com 上节课我们主要介绍了非线性分类模型,通过非线性变换,将非线性模型映射到另一个空间,转换为线性模型,再来进行分类,分析了非线性变换可能会使计算复杂度 ...

  4. 台湾大学林轩田机器学习技法课程学习笔记16(完结) -- Finale

    红色石头的个人网站:redstonewill.com 上节课我们主要介绍了Matrix Factorization.通过电影推荐系统的例子,介绍Matrix Factorization其实是一个提取用 ...

  5. 台湾大学林轩田机器学习技法课程学习笔记15 -- Matrix Factorization

    红色石头的个人网站:redstonewill.com 上节课我们主要介绍了Radial Basis Function Network.它的原理就是基于距离相似性(distance-based simi ...

  6. 台湾大学林轩田机器学习技法课程学习笔记11 -- Gradient Boosted Decision Tree

    红色石头的个人网站:redstonewill.com 上节课我们主要介绍了Random Forest算法模型.Random Forest就是通过bagging的方式将许多不同的decision tre ...

  7. 机器学习技法课程学习笔记16 -- Finale

    上节课我们主要介绍了Matrix Factorization.通过电影推荐系统的例子,介绍Matrix Factorization其实是一个提取用户特征,关于电影的线性模型.反过来也可以看出是关于用户 ...

  8. 台湾大学林轩田机器学习技法课程学习笔记12 -- Neural Network

    红色石头的个人网站:redstonewill.com 上节课我们主要介绍了Gradient Boosted Decision Tree.GBDT通过使用functional gradient的方法得到 ...

  9. 台湾大学林轩田机器学习技法课程学习笔记3 -- Kernel Support Vector Machine

    红色石头的个人网站:redstonewill.com 上节课我们主要介绍了SVM的对偶形式,即dual SVM.Dual SVM也是一个二次规划问题,可以用QP来进行求解.之所以要推导SVM的对偶形式 ...

最新文章

  1. 半导体基础知识(4):无源,有源和机电组件
  2. 安装python模块时出现:error: Setup script exited with error: command 'gcc' failed with exit status 1...
  3. NOI Linux2.0使用系列视频集
  4. Bootstrap3 过渡插件
  5. CTS(4)---mtk cts FAIL处理方法
  6. c#动态编译并执行字符串
  7. vbreport8.wpf.viewer 个别电脑不显示_手机听歌不过瘾?一招将Win10电脑变成蓝牙音箱...
  8. cas登录成功返回用户更多信息
  9. windows与虚拟机中的Ubuntu共享文件夹
  10. 24小时学通LINUX内核系列
  11. Bailian4022 买房子【迭代】
  12. 手把手入门三菱PLC FX2N系列(一)安装GX works2 、 连接PLC、基本操作
  13. Scrapy-豆瓣电影Top250
  14. 狂神说SpringMVC课堂笔记
  15. 联想微型计算机B3O5,触摸电视功能 联想B3系列一体电脑评测
  16. 单片机c语言有没有跳转指令,51单片机跳转指令
  17. 阿里巴巴fastjson下载
  18. 冰冻三尺,非一日之寒。数据解析——正则解析(1)
  19. QT 小游戏 : 别踩白块儿~
  20. 网站可访问性:ARIA入门

热门文章

  1. SPWM波调制度原理
  2. br 还是 br /?
  3. idea 如何使用tomcat启动项目
  4. 如何做组件库的单元测试
  5. 富兰克林的自律十三条
  6. 网文阅读付费模式为何重走回头路?
  7. SystemServer
  8. BJFU_C++程序设计-实验二(SRW版本)
  9. 核心转储文件的设置和查看
  10. 如何保证申请内存的地址是4的倍数