Categories
程式開發

清华大学陈文光:为什么需要人工智能算力基准测试程序?


6 月 21 日,由北京智源人工智能研究院主办的 2020 北京智源大会正式开幕(直播入口: https://2020.baai.ac.cn ),会期四天。智源大会是北京创建全球人工智能学术和创新最优生态的标志性学术活动,定位于“内行的 AI 盛会”,探索人工智能的下一个十年。InfoQ 将进行全程跟踪报道,为 AI 领域的从业人员带来更多前沿观点,以下内容根据清华大学智源学者陈文光的演讲整理而来。

清华大学陈文光:为什么需要人工智能算力基准测试程序? 1

为什么需要一个人工智能算力基准测试程序?陈文光表示,公众需要一个指标来回答:哪套系统的人工智能算力更强?整个领域的发展状况如何?好的指标可以引领领域的健康发展。

传统高性能计算机的测试结果与人工智能需要的性能不完全一致:高精度计算算力测试程序主要使用双精度浮点数运算,人工智能训练以单精度浮点数或16位浮点数为主,推理以Int8为主。

对人工智能算力来说,制定这样一个指标和测试方法并不容易。陈文光在演讲中表示,一是单个人工智能训练任务很可能达不到全机规模,即使能达到,可能在训练时间和准确率上没有改进,因此使用全机规模是没有意义的;二是如果要测试规模变化巨大的人工智能集群计算机,测试程序必须是规模可变的,试想什么样的主流人工智能应用是规模可以大幅变化的;三是准确率,残差是不是要少于某个标准,还是将准确度计入分数。对人工智能而言,是否可以符合一个较高的准确率,如果给定的准确率较低是不是很快就可以达到。

现有算力benchmark举例

首先,我们来介绍NAS kernels,这是NASA(美国航空航天局)开发的,其从计算流体力学程序中抽取kernel(LU,FFT,CG,IS,BT,EP,MG,SP),使用GFLOPS作为性能量度,并行版本NPB(NAS Parallel Benchmark),这种方式的算法是固定的,在测不同规模的机器时可以自由选择。

清华大学陈文光:为什么需要人工智能算力基准测试程序? 2

接下来是Linpack,最大的好处是N是可变的,缺点是没有I/O操作,只有稠密矩阵运算。没有I/O操作对端到端的性能有很大影响,只有稠密矩阵运算导致无法很好支持稀疏矩阵,但这依旧是目前的主流基准。

清华大学陈文光:为什么需要人工智能算力基准测试程序? 3

在Linpack的基础上,HPCC做了一些补充(如下图),有的方法具备很好的时间局部性,有的具备很好的空间局部性。

清华大学陈文光:为什么需要人工智能算力基准测试程序? 4

SPEC CPU很大程度上主导了CPU核的设计,现在发布一款新的CPU,一定要看其SPEC CPU的数,其使用最广泛的单CPU性能测试Benchmark,每隔一段时间还会更改程序和问题规模。

清华大学陈文光:为什么需要人工智能算力基准测试程序? 5

此外还有TPC-C,这主要是数据库领域的基准,是国际上评测在线事务处理的事实标准。

清华大学陈文光:为什么需要人工智能算力基准测试程序? 6

人工智能基准测试程序

目前,全球很多公司都在这方面有所尝试,百度提出的DeepBench也是国际上比较认可的方式,hpl-ai则是一种混合精度的算法,先用单精度计算得到近似解,再用双精度得到准确解,但和人工智能领域的关系不直接。现有这些方式最大的问题是都属于固定规模,无法满足不同规模机器上的测试;多个应用,思路与NASA类似;有多个分数,但公众最容易理解的是一个分数。

清华大学陈文光:为什么需要人工智能算力基准测试程序? 7

那么,预期的人工智能算力基准测试程序应该具备哪些特性呢?首先是一个分数,分数近似具有线性;其次是可变问题规模,可以适应单卡内存规模的变化,也可以适应多卡;然后,计算要有人工智能意义,比如神经网络运算;最后,多机通信可以少,但不能没有,不能是EP类型的。

设计思路——AutoML

AutoML是通过算法自动搜索合适的神经网络模型结构,找到针对特定任务效果最好的解:所需的计算资源极高,基础算法也包含训练模型本身。

AutoML+NN现有两个主要方面:超参数搜索、网络结构搜索:超参数搜索易于实现,但搜索空间存在一定限制(-100);网络结构搜索的搜索空间往往较大(-10000)。

AutoML具有足够的并行度,常常需要同时训练大量候选模型来对结构进行评估:搜索的结果虽然有一定的随机性,但整体上能找到的解的优劣程度随着搜索所消耗的计算量而逐渐改善。

清华大学陈文光:为什么需要人工智能算力基准测试程序? 8

结构搜索工作流程

如下图所示,Master节点将模型历史及其达到的精度发送至Slave节点;Slave节点根据模型历史及其精度,搜索出一个新的模型,并进行训练;Slave节点将根据某种策略(如连续10个Epoch的测试集精度没有提升)停止训练,并将此模型及其达到的精度发送至Master节点;Master节点接收并更新模型历史及精度。

清华大学陈文光:为什么需要人工智能算力基准测试程序? 9

测试环境(广州超算中心)

清华大学陈文光:为什么需要人工智能算力基准测试程序? 10

测试结果

随着网络越来越大 ,效率会越来越高,出现了超线性加速的情况,后续开销越来越大,需要通过超参数搜索解决这个问题。

清华大学陈文光:为什么需要人工智能算力基准测试程序? 11清华大学陈文光:为什么需要人工智能算力基准测试程序? 12清华大学陈文光:为什么需要人工智能算力基准测试程序? 13清华大学陈文光:为什么需要人工智能算力基准测试程序? 14清华大学陈文光:为什么需要人工智能算力基准测试程序? 15清华大学陈文光:为什么需要人工智能算力基准测试程序? 16

超参数搜索具有网络结构稳定性和生成时间稳定性的特点。网络结构稳定性:超参数的设定一般不影响网络结构,从而使得在整个搜索过程中网络结构保持相对稳定。

生成时间稳定性:生成新的超参数所需时间与已经评测的超参数个数(历史无关),仅与搜索空间相关。

清华大学陈文光:为什么需要人工智能算力基准测试程序? 17清华大学陈文光:为什么需要人工智能算力基准测试程序? 18清华大学陈文光:为什么需要人工智能算力基准测试程序? 19清华大学陈文光:为什么需要人工智能算力基准测试程序? 20

未来一段时间,陈文光表示主要工作将会集中在提高模型生成与搜索的效率,可支持千卡量级,包括并行化模型生成算法,优化模型生成算法(不需要看全部历史,如遗传算法),优化起点,使用更大规模数据集;结合参数搜索,并行性乘10,可支持万卡量级;在多种和更大平台上开展测试;流程管理,包括运行规则,辅助工具,报告与审查机制。