《浅谈AI模型如何加速训练?》

浅谈AI模型如何加速训练?

 
 

本文浅要总结了一些模型加速的重点思路,主要适用于深度模型和一小部分传统AI。内容分为如下几个层级展开:

  1. 做科研,如何在算法层加速。
  2. 做科研,如何用小技巧加速。(所谓tricks)
  3. 做科研,如何在工程上加速。
  4. 做工程,如何在编码层面加速。
  5. 做工程,如何在机器层面加速。

 

下面咱们挨个说。

 

做科研想在算法上加速,优化器可以用Nesterov从数学上加速下降、用selu达成数学形式的精简、规定lipschiz性质、为目标设置松弛变量、做boosting、根据较新研究成果所示减小batchsize、找上下界寻求近似解、权重稀疏化低秩化、数据做低秩表达

 

做科研加速训练的小技巧有:数据降维、归一化、正则化、初始化参数(重点)、调超参(重点,磨刀不误砍柴工)、权重量子化

 

做科研的工程方法:数据全放到内存里!显卡cuda大显存!集群spark!帮老板招募本科生!吃好喝好...

 

做工程编码:首选速度快的编译型静态语言,比如c、cpp。不要在源代码里瞎写乱七八糟的邪门招式什么协程内联嵌入汇编,写的玩意费时间不说,还不如老老实实一句O3好使。要大循环在内小循环在外、一定要减少jmp、避免清空流水线、用英特尔性能分析工具、openmp。小任务不要多线程大任务再多线程

 

做工程在机器层面加速:买,别寻思。有你寻思的功夫,新一代u都面世了。

 

 

最后,早点到实验室,加速效果比啥都好。

原文地址:https://www.cnblogs.com/cx2016/p/12868556.html