深度学习发展早期,AI往往采用单节点的训练模式,只是随着更大的数据和更深层次的模型(从AlexNet、ResNet、NasNet直至AmoebaNet)被提出,意味着计算机需要更大的内存和计算能力。
当单GPU训练也无法承受应用的负载时,AI企业不得不采用边缘计算的形式为其解压。“分布式或并行计算将在AI框架中变得尤为重要。”谭光明表示。
据悉,目前无论是国外的TensorFlow、PyTorch还是国内的旷视天元MegEngine、百度飞桨都设计了分布式深度学习框架。
但是这一框架依然有着遗憾,比如算法的性能和精度。
Batch Size(批量取样规模)指的是深度学习神经网络中一次训练所选取的样本数,其大小会影响计算模型的优化程度和速度,也会直接影响GPU内存。
如果把计算模型看作是一头奶牛,那么批量取样规模是牧草。大量的牧草能提供奶牛丰富的营养,产出的牛奶质量越高。只是奶牛消化牧草需要时间,产奶也需要过程。因此,目前妥协于GPU内存情况和计算速度,AI企业不得不将批量取样规模调整到较小的数值,牺牲了准确度。
Facebook曾在1小时内完成了ImageNet的训练。当时Facebook采用的手段是将GPU的线性扩展到256个规模,并将8K作为批量取样规模的选择,能达到76%的准确率。与此类比,Google将批量取样规模从128上调至1024,但达到的准确率只有57%左右。
根据中科院研究院在2019年IEEE举办的一场峰会上发表的成果,计算模型在训练前后期,AI的学习效果显著不同,并提出了训练前期用8K批量取样规模,后期用64K批量取样规模的可变Batch Size计算策略。如同先给奶牛少部分牧草,促进消化,再提升牧草量,保证产出的牛奶质量。
效果显而易见,相比Facebook,这套新计算策略能在ImageNet上将训练时长从1小时缩短至25分钟。
值得一提的是,在分布式计算框架下,中科院还采用了“决策树”模型,将决策树作为选择器,为不同网络层确定合适的数据布局。
事实上,如果AI根据经验判断提取的数据,往往不一定是最优解。因此,有了“决策树”,目前能达到95%以上的预测精度,要知道运用传统方法,达到90%的预测精度并不容易。
或许从理论和技术上,AI正加快速度走向小学毕业的终点。