前言:
现时看官们对“算法效率怎么算”大约比较关心,看官们都想要分析一些“算法效率怎么算”的相关资讯。那么小编同时在网络上收集了一些对于“算法效率怎么算””的相关知识,希望大家能喜欢,看官们一起来了解一下吧!作者 | 蒋宝尚
编辑 | 丛 末
摩尔定律预测芯片性能每18个月翻一倍,那 AI 算法性能多少个月翻一番?
答案是16个月。
图注:蓝点是给定时间的最低计算机,灰点是测量值。观察结果是每16个月性能翻一倍。
近日,OpenAI针对AI算法在过去数年中性能的提升做了一个详细的分析。他们发现,自2012年以来,在 ImageNet 分类上训练具有相同性能的神经网络,所需要的计算量,每16个月降低一倍。与2012年相比,现在将神经网络训练到 AlexNet 的性能,所需的计算量仅为原来的1/44(相比之下,摩尔定律仅降低为1/11)。
若将“算法效率”定义为:减少训练特定任务所需的计算量。我们还可以看到:
在ImageNet上,ResNet-50 级别的训练效率翻倍时间大约为17个月;
在WMT’14的翻译任务上,Transformer相比seq2seq,训练的“算法效率”提升了61倍,所用时间约为 3 年,也即翻倍时间为 6 个月;
在围棋任务上,AlphaGo Zero所需的计算量是AlphaZero的1/8,翻倍时间仅为 4 个月;
在Dota 任务上,翻倍时间仅为 25 天!!!
所有这些结果表明,对于近期投入大量资金的这些 AI 任务,算法上的进步相比硬件的进步(服从摩尔定律,每18个月翻倍),能产生更多的效益。
如果用有效计算的概念把AI和计算的趋势结合起来,那么,其表现就如下图所示:AI和计算的趋势被分解为硬件效率(摩尔定律)以及金钱和并行化(money/parallelization)之后,算法效率的提升只占总体提升的一部分。
1 主要衡量指标
前面也提到,所使用的衡量方法对现有的开源项目的再实现。另外OpenAI还在体系结构之间进行了少量超参数调整以及小范围的调优。
使用的计算是基于以下结果:
1、每个图像的浮点计算,由PyTorch库计数
2、图片每个epoch的数量
3、架构的性能优于或等于OpenAI训练的AlexNet模型所需的时间间隔数。
据OpenAI介绍,其很大程度上遵循了PyTorch示例模型中建议的超参数,对于每一个模型都使用SGD进行训练,批次大小为256,冲量(momentum)为0.9,权重衰减设置为1e-4。
对于预处理的架构,例如GoogleNet 和 VGG,学习率为0.01,对于其他架构学习率为0.1。
RESNET-50学习曲线如图所示
对于AlexNet,作者遵循了原始论文的学习率表(learning rate schedule),每30个epoch衰减10倍,其他的则降低1000倍的学习率。为了检查超参数设置是否合理,作者在ResNet18上进行了扫描,并将初始学习率设置为0.0316、0.1以及0.316,总的衰减率为250X,1000X,以及2500X。另外,对于除AlexNet以外的所有模型,作者对学习率及进行了平滑处理,如上图所示,显然这对早期的学习非常重要。
在论文中,OpenAI还提到,除了效率,还有许多其他衡量标准揭示了人工智能领域的整体算法进展,毕竟算法还受到底层硬件、硬件利用率以及云设施的改进影响。例如当处于低数据体系时,样本效率是关键。当考虑到经济效益时候,GPU、参数、FLOPs(浮点运算次数)推理效率的提高也很有意义。
2 主要结果
前面也提到,从2012年到目前,实现AlexNet级别性能所需的计算减少到了原来的1/44。另外,作者还将训练效率的进步分为数据效率和减少每个时间段所需的FLOP数量。如下表所示,将总训练效率收益分解为每一epoch的训练周期和每一epoch的浮点运算数。
另一个观察结果是:基于FLOPs的学习曲线。这可以帮助理清模型之间的比较。如下图所示,与其他模型相比,某些模型(例如ShuffleNet_v2)使用比较少的计算量就能达到其他模型(例如AlexNet)能够达到的准确率。
Vgg-11的最大精度要比AlexNet高,但达到相同精度所需要花费的计算量却要比AlexNet大很多。另一方面,如果综合考虑算力和准确率,则ResNet50优于VGG-11,GoogLeNet优于AlexNet。
第三个观察结果是:ResNet-50分类性能效率提升和AlexNet类似,而围棋、Dota和机器翻译等任务的效率提升速度相比AlexNet要快很多。如下表所示,就浮点运算而言,给定任务,其计算效率都有不同程度提高。
再放一次
另外,更为细致的观察发现,1)翻译任务在较短的时间内取得的进步比CV更大;2)对围棋和DOTA的观察时间比较短,但只要在接下来的 5 年里,在围棋上再有三倍,DOTA上再有5倍的性能提升,它们的效率增益就能超过视觉任务了。
另外,在利用ImageNet完成相关推理任务时,效率的提升同样是明显的:
1、Shufflenet实现了AlexNet级别的性能,推理效率在5年内提高了18倍(15个月翻一番);
2、EfficientNet-b0在3年半的时间内就达到了ResNet-50级别的性能,推理效率提高了10倍。
3 局限性以及未来工作
当然,此次对计算效率的测量还是存在局限性的。
首先,尚不清楚观察到的效率趋势在多大程度上可以泛化到其他AI任务上。也就是说,在Al领域中是否存在一个与摩尔定律相当的“AI定律”,还不能得出肯定的结论。
其次,算法效率的提升只是进步的一个表现,此次分析并没有量化整体的进步。毕竟AI能力进步背后是整体概念的表现,而不仅仅是效率的提升。
此外,本分析主要关注模型的最终训练运行成本(final training run cost),并不是总开发成本(total development costs)。一些算法上的改进使超参数的空间变得更大,从而可以更稳定地训练模型。另一方面,架构搜索也增大了最终训练运行成本和总开发成本之间的差距。
一般来说,算法的改进是推动AI进步的关键因素,动态测量SOTA算法效率的改进,将有助于评估算法效率提升的质量,推动AI算法的改进。由于硬件和算法效率提升可以相互叠加,所以AI的进步应该综合考虑这两者的情况。
ACL 2020原定于2020年7月5日至10日在美国华盛顿西雅图举行,因新冠肺炎疫情改为线上会议。为促进学术交流,方便国内师生提早了解自然语言处理(NLP)前沿研究,AI 科技评论将推出「ACL 实验室系列论文解读」内容,同时欢迎更多实验室参与分享,敬请期待!
标签: #算法效率怎么算