文章目录

  • 遇到的挑战:
  • 如何自动生成对机器学习算法的优化?
  • 团队在计算图上的优化:
    • 什么是计算图优化?
    • 计算图优化存在的问题?
    • 解决办法?
  • 未来:

遇到的挑战:

  1. 如何找到最优的并行方案,不同并行方案的效率有很大差别?

  2. 新的平台一直出现,如何快速适应新的算子、平台?

如何自动生成对机器学习算法的优化?

  1. 计算图方面的优化;

  2. 并行的优化;

  3. 不同平台的优化;

团队在计算图上的优化:

什么是计算图优化?

  1. 这个图和指令流图类似;
  2. 定义一些运算规则对图进行优化,比如算子融合;(规则很复杂,目前有500+)

计算图优化存在的问题?

  1. 问题:鲁棒性问题,因为平台比较多,优化得可能不好;

  2. 问题:扩展性问题,不断地有新的硬件平台和算子出现;

  3. 问题:性能,采用程序优化很难有针对性,错失一些优化机会;

  4. 举例:先把简单算子复杂化,然后会出现合并的机会;

    1. 即使如此,对于有些平台,可能优化后的图性能会更差,因此很难将其添加到优化规则中;
  5. 总结,图优化的复杂性;

解决办法?

  1. 不手工去定义规则,用程序优化;而是提供一种方法,自动地优化,并评估优化后的质量;

    1. 好处,减少代码量;
    2. 好处,可以带来最佳三倍的性能提升;
  2. 什么是图替换?

    1. 图的等价性,即优化前和优化后的图是等价的,执行的结果相同;
  3. TASO 的工作流程:

    1. 先输入硬件平台的算子集合;

    2. 由图替换生成器,生成可能的替换规则;

    3. 由图替换验证器,验证图替换规则的正确性;

    4. 正确的图替换规则,会添加到图替换规则中;

  4. 如何生成可能的替换规则,如何验证替换规则的正确性?

    1. 利用图指纹技术生成可能的替换规则;

    2. 利用算子描述和定理证明器,验证替换规则的正确性;

  5. 图替换规则生成器;

    1. 根据硬件平台支持的算子,枚举所有可能出现的图;

    2. 由于枚举空间过大,只考虑有限规模的图,比如四个算子的图;

    3. 四个算子的图一共由66M个,考虑等价性,如果一一对比,则平方关系,复杂性高;利用图指纹技术产生随机化的输入,相同输入的输出一致,则图等价;(类似于FM的一致性验证)错了 是相同输入的输出不一致,则图必然不等价,只考虑输出结果一致的图;

    4. 下一步,要验证对任意输入的等价性,包括可以使用数学逻辑等;

    5. 可以利用自动的图定理证明器,证明图替换规则的等价性;

    6. 即便是新增加了算子,也只需要根据算子为图定理证明器定义一些规则,就可以自动的进行验证;

  6. 图优化器,考虑使用哪些替换规则;

    1. 主要基于每个算子的开销(硬件上测量),以评估图的开销;

    2. 根据算子,重新把过程跑一遍,大概只需要10分钟;

  7. 该方法的优化效果;

    1. 标准测试集能够达到近似的效果;

    2. 而对于新的结构,还没有被完全手工优化,因此效果比较好;

未来:

  1. 考虑是否可以将TASO基于图的优化,和TVM基于算子的优化结合起来;

  2. TASO好像是开源的,可以体验一下;

CNCC2020_贾志豪_Automated Discovery of Machine Learning Optimizations相关推荐

  1. ML之Medicine:利用机器学习研发药物—《Machine Learning for Pharmaceutical Discovery and Synthesis Consortium》

    ML之Medicine:利用机器学习研发药物-<Machine Learning for Pharmaceutical Discovery and Synthesis Consortium> ...

  2. 读贾志鹏线性筛有感 (莫比乌斯函数的应用)

    先拜大牛.感谢贾志鹏严谨的思维.以及简单清晰的论文描述. 一定要结合论文看.我只是提出我觉得关键的部分.论文在网上随处可见.贾志鹏线性筛. 开头两种线性筛的比较. 一种是传统的线性筛.时间复杂度为N* ...

  3. 大坝平台结构——志豪未来科技有限公司

    大坝平台结构--志豪未来科技有限公司 ---- 心得 一开始我们小组成员经过激烈讨论选择了河.湖.大坝管理平台,感觉比较有实战意思,虽然其他也是差不多,但是我们钟爱这个,然后我们就开始找参考材料,经过 ...

  4. 数字联接新动能 | 专访亿联IT总监赖志豪:AI是亿联未来数字化建设的方向

    数字化,近些年来一直是一个炙手可热的话题.尤其在市场快速变革的商业世界,数字化系统能够帮助企业管理者快速掌握企业内外部的各类核心信息,为业务赋能,为决策提供精准洞察. 在数字化建设的道路上,亿联网络也 ...

  5. Resource of computer vision, pattern recognition, machine learning etc.

    Resource of computer vision, pattern recognition, machine learning etc. 1.牛人 Serge Belongie at UC Sa ...

  6. 【github】机器学习(Machine Learning)深度学习(Deep Learning)资料

    转自:https://github.com/ty4z2008/Qix/blob/master/dl.md# <Brief History of Machine Learning> 介绍:这 ...

  7. 机器学习(Machine Learning)深度学习(Deep Learning)资料汇总

    本文来源:https://github.com/ty4z2008/Qix/blob/master/dl.md 机器学习(Machine Learning)&深度学习(Deep Learning ...

  8. 机器学习----(Machine Learning)深度学习(Deep Learning)资料(Chapter 1)

    文章转至:作者:yf210yf  感谢您提供的资源 资料汇总的很多,转载一下也方便自己以后慢慢学习 注:机器学习资料篇目一共500条,篇目二开始更新 希望转载的朋友,你可以不用联系我.但是一定要保留原 ...

  9. 机器学习(Machine Learning)深度学习(Deep Learning)资料【转】

    转自:机器学习(Machine Learning)&深度学习(Deep Learning)资料 <Brief History of Machine Learning> 介绍:这是一 ...

最新文章

  1. 常用API(Object、String、StringBuffer、用户登陆注册)
  2. RDKit toolkit实战一:调用Python API
  3. Spring - Java/J2EE Application Framework 应用框架 第 10 章 使用JDBC进行数据访问
  4. Computer:屏幕录像专家软件的简介、安装、使用方法之详细攻略
  5. 网管交换机与非网管交换机的利弊介绍
  6. 最便宜的那款特斯拉,刚刚喜提“最安全汽车”称号(然后被打脸)
  7. (一)linux下hadoop安装配置
  8. 【Android-混合开发】mPaas-多版本接入篇
  9. 跨境电商ERP综合解决方案丨汇信
  10. Java11完全兼容Java8吗_Java11正式发布,要不要升级请看这里!
  11. wingide运行两个项目_Wing IDE使用教程:部分调试功能介绍
  12. oracle 00936 pivot,oracle 11g 使用 pivot/unpivot 行列转换
  13. java中复数_Java中的复数
  14. Tita OKRs-E 使OKR成为您企业DNA一部分
  15. UIUC计算机科学系博士,PhD捷报|计算机博士全美TOP5!清华首批UIUC CS PhD全奖!恭喜Nuts清华学员!...
  16. 【良心】C语言零基础学习,C语言初学者入门基础知识讲解
  17. 冒险岛登录服务器未响应,打开冒险岛,登陆角色后就黑屏了
  18. python房屋租赁管理系统设计与实现报告_基于web的房屋出租管理系统的设计与开发.doc...
  19. 使用生成对抗网络进行端到端中国山水画创作(SAPGAN)
  20. Zabbix客户端的安装过程(含3.0 agent安装)

热门文章

  1. 机器学习中的高斯过程
  2. 【数学题】有趣的倍数问题
  3. 前台项目20鼠标移入背景颜色改变
  4. bezier曲面制作_Unity渲染——Bezier曲线(曲面)实现
  5. com.android.dex.DexException: Multiple dex files define
  6. 必读的Python入门书籍,你都看过吗?(内有福利)
  7. pmp项目组织结构类型——职能型
  8. Excel如何从混合文本中提取学号、姓名及成绩
  9. linux 运行asf云挂卡,Linux下使用ASF工具 Steam 挂卡的配置使用
  10. go golang 中获取string 长度