『The Hardware Lottery』
这篇文章系统的分析一个近几年我们都有所感受的现象,“某个研究的想法取得成功,往往是因为它更适合于可用的软件和硬件,而不是因为该想法本身优于其他研究方向”[1],并且用“Hardware Lottery”这个词汇来描述这种“赌博”成分。
这篇文章先介绍了一个“悖论”:“尽管硬件在决定什么想法成功方面起着重要作用,机器学习研究人员大多忽略硬件”[2]。当然,机器学习发展到今天,我感觉大部分算法研究者不大可能不了解计算系统的重要性。但无论如何,“Hardware Lottery”效应已经“淘汰”了一些和主流计算系统不太匹配的思路了。文章中举的一个例子,就是Capsule Networks(胶囊网络),这是当时大热的模型。我想大部分人也都同意它在理论上的优势,通过引入新的操作,比如“squashing” 和“routing by agreement”,来解决卷积神经网络中的缺陷(缺乏旋转不变性和空间层次理解)。但是这些新的操作虽然可以在CPU上实现简单的原型,但是在需要到GPU和TPU上“出成果”的时候被“否决”了。当前的DSA (Domain-Specific Architecture)在计算系统中越来越重要,这导致“Hardware Lottery”更加明显,“赢家”和“输家”间的差距会越来越大。另外,虽然文章用的是“Hardware”这个词,但实际指包括软件的计算系统,软件工具对算法的“选择”同样不容忽视。
那么,为什么不能专门为Capsule Networks设计一个专门的硬件呢?(说实话我真有想过
如果我们大家都认可“Hardware Lottery”现象越来越强的存在感,那么接下来要讨论的就是它的后果。显而易见,如果一个Idea的成败决定于它是否和可获得的计算系统相匹配,那么我们的创造性岂不是被计算范式给“绑架”了?这几年神经网络和深度学习可以说席卷各个领域,取得了很多突破,这和计算系统的给力支持有很大关系。我们相信这个方向还会有更大的发展,这也是我们开发专用的DSA的原因。但一个令人担忧的问题是,神经网络和深度学习真能通往我们理想中的人工智能吗?还是我们只是在“试图建造通往月亮的梯子”(trying to build a ladder to the moon)[2]。如果未来证明真是这种情况,那我们现在就正在错失真正的机会。
那么,我们在享受DSA创造的高效计算能力同时,是不是能尽量避免上述问题呢?
在理想的算法-软件-硬件协同设计的世界里,算法研究可以有足够的创新空间,计算系统可以按照相同的速度配合算法迭代和变化的速度,让各种算法可以得到公平的加速。
而在现实的世界里,虽然已有有不少尝试,但在可预见的未来,硬件(芯片)迭代的速度和成本不太可能有本质变化。即使DSA的实现成本和周期相对可以下降,但实现算法-软件-硬件的协同设计和优化本身仍是个极端复杂的问题,虽然我们也做过很多年探索,也取得一些进步,但离理想情况仍然相去甚远(可以参考一下“AI芯片“软硬件协同设计”的理想与实践”)。
对于这个问题,近几年我一直有一些观察和思考。从现实出发可做的事情还是有很多的,特别软件方面,毕竟软件迭代的速度和成本比硬件要好的多。目前一个比较好的趋势是一些领域语言和框架的出现,它们至少可以帮助更多种类的算法充分利用底层硬件(比如GPU和TPU)提供的效率。很多研究人员会自己设计一些专门的DSL,框架,编译器和加速库并来源出来,比如面向图神经网络的DGL,PyG;面向可微计算的JAX;面向计算机图形的Taichi,Jittor;面向物理仿真的DeepMD,等等。这种尝试很大程度上可以帮助不同领域的专家充分使用下层软件(比如Pytorch和Tensorflow这样的通用框架,以及各种编译技术,比如TVM和MLIR)提供的能力,进而享受DSA提供的效率。对此[1]也有类似的观点,但同时也提出一个新问题,这些简化研究人员工作的尝试可能进一步提高抽象层次,让算法设计者和硬件的距离更远,也许会加重“Hardware Lottery”甚至“Software Lottery”问题。
第二,虽然算法-软件-硬件的快速协同迭代是不太可能的。一个有可能的工作是实现硬件适用性分析和算法趋势性分析。软件框架和编译器作为媒介,首先可以快速给出什么样的硬件能更好的支持某种算法的评估。用[1]中的说法是,“Ideally, software could even surface recommendations about what type of hardware to use given the configuration of an algorithm.”另一方面,算法变化的需求首先会体现软件工具的使用上,比如新的operator的需求,当软件工具“探测”到大的变化趋势的时候,可以给下一代硬件提出更精准的建议。这两件事情在当前的软件框架里都是可行的。
第三,我们现在对DSA的优势讲的很多。但如果换一个角度,如果我们在一个假想的世界,摩尔定理还能延续,通用架构的性能仍可以快速提升。那么,选择通用架构支持算法的多样性仍然是最好的选择。DSA虽然已经是不可避免的趋势,在强调DSA的效率的同时,保持一定的通用性,让各种创新都有一定的生存空间,是缓解“Hardware Lottery”的负面影响的重要方法。另一种可能是,增加DSA的多样性。目前的半导体热潮的确也催生了大量新的架构和新的半导体技术,希望这些技术最终可以存活下来(往往还需要非商业化的长期投入的支持),催生不同的算法创新。
对于未来的对策,[1]中还有一些其它想法,这里就不再赘述。
最后,我们回到SWITCH TRANSFORMERS,这实际是一个非常好的结合计算系统特点来优化模型的例子。而非常有意思的是,在论文中的DISCUSSION部分,有个问题是“Why aren’t sparse models widely used already?”答案引用了“Hardware Lottery”文章,大家可以品一品。
参考资料
[1] William Fedus, et al., "SWITCH TRANSFORMERS: SCALING TO TRILLION PARAMETER MODELS WITH SIMPLE AND EFFICIENT SPARSITY"
[2] Sara Hooker. The hardware lottery. arXiv preprint arXiv:2009.06489, 2020
公众号专题:
人工智能芯片技术进步
人工智能芯片产业发展
人工智能芯片初创公司
人工智能芯片评测对比
科技巨头的芯片尝试
从学术会议看人工智能芯片
基础芯片技术
题图来自网络,版权归原作者所有
本文为个人兴趣之作,仅代表本人观点,与就职单位无关