当天看到OpenAI前些年颁布的一个模型计算量的剖析,觉得很有价值,有需求的人童鞋可以看一下, 内容如下:
自 2012 年以来,最大规模 AI 训练运转中经常使用的计算量呈指数级增长,翻倍时期为 3.4 个月(相比之下,摩尔定律的翻倍期为 2年)。自 2012 年以来,这一目的增长了 300,000 多倍(2 年的翻倍期只能发生 7 倍的增长)。计算才干的优化不时是 AI 提高的关键组成局部,因此只需这一趋向继续下去,就值得为远远超出当今才干的系统带来的影响做好预备。
AlexNet 到 AlphaGo Zero:计算量参与了 300,000 倍
总计算量(以千万亿次/秒为单位),$[footnote-petaflops]$用于训练相对出名的选定结果,在其时期内经常使用了少量计算,并提供了足够的消息来预计所经常使用的计算。
概述
推进人工自动开展的起因有三个:算法翻新、数据(可以是监视数据或交互式环境)以及可用于训练的计算量。算法翻新和数据难以追踪,但计算却可以量化,为权衡人工自动提高的一项投入提供了时机。当然,大规模计算的经常使用有时只会泄露咱们算法的缺陷。
但至少在的许多畛域中,更多的计算仿佛可预感地带来更好的功能(,并且通常与算法的提高相补充。
关于此剖析,OpenAi以为相关数字不是单个 GPU 的速度,也不是最大数据中心的容量,而是用于训练单个模型的计算量——这个数字最有或许与咱们的最佳模型的弱小水平相关。每个模型的计算与总体计算有很大不同,由于并行性遭到限度((配件和算法)限度了模型的大小或训练成果。当然,关键的打破依然须要过度的(计算量——上方的剖析仅涵盖计算才干。
这一趋向每年大概增长 10 倍。这在必定水平上是由定制配件推进的,这些配件准许以给定多少钱(GPU 和 TPU)每秒口头更多操作,但关键推进力是钻研人员不时寻觅并行经常使用更多芯片的方法,并情愿为此付出经济老本。
时代
依据提供的图表,咱们可以将GPU在机器学习畛域的开展历程分为四个阶段:
须要指出的是,2012年到2014年时期,大少数结果经常使用了1-8个GPU,每个GPU的功能峰值约为1-2 TFLOPS,合计0.001-0.1PFSDays。随着数据并行化带来的效益逐渐降落,进一步扩展规模的训练所带来的价值也会遭到限度。
等候
基于给定的图表,OpenAI以为 ML 的这种趋向或许会继续存在。首先,许多配件初创公司正在开发 AI 公用芯片,并宣称在未来 1-2 年内将成功FLOPS/Watt的大幅优化(FLOPS/$ 也相似)。这象征着仅仅经过以更低的经济老本口头相反数量的操作,就或许带来好处。在并行性方面,许多最近的算法翻新准则上可以相互累积,例如架构搜查和大规模并行 SGD。
但是,老本最终会限度这种趋向的并行性方面,而物理会限度芯片效率方面。当今最大规模的训练经营经常使用的配件购置老本高达数百万美元(虽然摊销老本要低得多)。但理想上,大局部神经网络计算仍在推理(部署)中成功,而不是训练,这象征着公司可以重复应用或累赘得起购置更大的芯片用于训练。因此,只需有足够的经济能源,咱们或许会看到更大规模的并行训练经营,这将使这种趋向继续数年。
另外,世界配件总估算为 1 万亿美元/年,因此相对下限依然遥遥无期。总的来说,思考到以往的数据、计算指数趋向的先例、机器学习公用配件的开展以及其中的经济能源,以为这种趋向不会在短期内继续下去是不实际践的。
虽然过去的趋向无余以预测未来这种趋向将继续多久,也无余以预测这种趋向将继续下去会出现什么,但即使有极速优化才干的正当后劲,也象征着如今开局处置人工自动的安保和恶意经常使用疑问至关关键。远见至关关键,关于担任任的政策制订和担任任的技术开展,必定在这些趋向的前面行事,而不是缓慢地做出反响。
附录:方法
OpenAI经常使用两种方法生成数据点:
关于大少数论文,咱们优先选用第一种方法;但是,关于一局部论文,咱们驳回第二种方法,并尽或许同时计算这两种方法以做分歧性审核。OpenAI还与作者核实了却果。坐着的计算准确性不是十分严厉,但能够在2-3倍范围内正确。并在下文提供了一些计算示例。
方法1:计算模型中的计算
当作者提供了前向传递中经常使用的操作数时,该方法十分便于经常使用。例如,Resnet 论文(尤其是 Resnet-151 模型)中给出了操作数。
计算公式为:(add-multiplies per forward pass) × (2 FLOPs/add-multiply) × (3 for forward and backward pass) × (number of examples in>Resnet-151 模型:
在某些深度学习框架中,咱们甚至可以经过编程模式计算已知模型架构的操作数,或许手动计算操作数。假设论文提供了足够的消息来启动此计算,计算结果会十分准确。但是,在某些状况下,论文或许没有提供一切必要的消息,作者也或许不可泄漏这些消息。
方法2:GPU 时期
假设不能间接计算操作数,咱们可以审核训练了多少个 GPU,训练破费了多长时期,而后假定 GPU 应用率,尝试预计口头的数量。OpenAI在这里没有计算峰值通常 FLOPS,而是经常使用假定的通常 FLOPS 分数来尝试猜想实践 FLOPS。依据阅历,通常假定 GPU 的应用率为 33%,CPU 的应用率为 17%,除非Open失掉到更详细的消息(例如,作者交换过,或工程是在 OpenAI 成功的)。
例如,AlexNet 论文中指出:"网络在两个 GTX 580 3GB GPU 上训练须要五到六天的时期"。依据咱们的假定,这象征着总计算量为:
更多模型的计算
方法 2:1 GPU * 4 days * 1.54 TFLOPS/GTX 580 * 0.33 utilization = 184 PF = 0.0021 pfs-days
可视化并了解卷积网络(
方法 2: 1 GPU * 12 days * 1.54 TFLOPS/GTX 580 * 0.33 utilization = 532 PF = 0.0062 pfs-days
DeepSpeech2 (
Neural Architecture Search (
原文链接: