10月28日,Jeaf Dean发了一篇博客(https://blog.google/technology/ai/introducing-pathways-next-generation-ai-architecture/),简单介绍了谷歌下一代AI架构Pathways的关键特性。
文章引起了AI圈内很多人士的关注,特别是对AI平台架构有兴趣的对此做了非常丰富的解读。
MindSpore项目组内部也进行了讨论,总结了一些观点供大家思考(这些观点主要来自岳大师)。
在分享我们对AI架构的未来的一些分析判断之前,也先简单的谈谈对Pathways的几个关键点的看法。
Pathways一文,三个要点,其实是两个方面:
1、是关于智能模型能力提升的两个点:one model fit 'all' tasks (multi-task)和multiple senses(multi-modeling);
2、是切实影响了AI平台架构的一个点:sparse activation,dynamic-routing。
关于第一方面,多任务,是智能算法一直在发展的方向,多任务模型问题在于任务到底有多少?泛泛的说多任务,其实需要看这些不同的问题之间,内部是否具有通用的机理,多任务的模型对各个任务是否都有增益;多模态,也是智能算法一直在发展的方向,到底融合哪些信息,其实是一个按应用分场景的问题。我们认为,在多感官信息融合,类似拟人机器人等场合,为了丰富信息来源,这是必然的,但是如何多信息融合,不一定有一个通用的最优模式。
总之,关于第一方面的两个点,如果泛泛的一股脑的多任务多模态,效果未必就好,甚至可能过于理想主义。关键要看是否必要:智能模型的部署,至少要粗略的分两种场景,数据中心的巨无霸和边缘终端等专一小模型,在计算力和能耗上不得不考虑。如果是面向更强或者更通用的智能的研究,怎么探索都不为过。只是多任务和多模态,对所谓下一代AI架构来说,个人感觉不是最关键的。
关于第二方面,文章提到的GShard和Switch Transformer等代表的稀疏激活/动态路由等机制,确实会对AI平台的架构产生影响。
我们认为除了Jeaf Dean提到的几个点外,下面几个方向也会深刻影响AI架构未来,值得关注:
1、当前AI计算模式和理想模式的差距
AI算法最基本的两部分,表达和优化。前者NeruralNetwork/DeepLearning对平台来说是算子的DAG;后者BackPropagation对平台来说是计算梯度然后逐层调整权重。对于后者,从计算流程上看,形象的说,就是ABCDE层前馈,然后EDCBA反馈,一轮又一轮。每一轮,输出对标签的“全局”错误信号,本质上要的逐层传播到最前面的层。
对比人脑,很难找到这种全局错误信号的一轮次一轮次的同步的传播,做到基于物理邻接的层(节点)的错误信息进行学习,应该才是更理想的表达和学习的机制。其中Local Learning是对该问题的研究,曾经系统的跟踪了这些方向:Predictive Coding,Proxy Objective,Feedback Connection,Weight Constraint,Synthetic Gradient,Target Propagation,NGRAD GlobalErrorVector DistributionalCodeDopamine,Biological Plausibility,Equilibrium Propagation,Extra X-Learning。
按照不同的"Local"思路,进一步展开看:
朴素的物理原则/生物机制(关联和竞争) :Hebbian/ContrastiveHebbian /Grossberg/Oja/LWA/Random Feedback Weights/…
辅助网络学习调节:RL for Local Learning/MetaL for Local Learning/
时变比对:Real Time Recurrent Leaning/Recurrent Backpropagation/Eligibility Propagation(资格传播)/Equilibrium Propagation(均衡传播) (No.3)
生成模型:Target Propagation/Difference Target Propagation/Predictive Coding (No.1)
反馈连接比对:Feedback Connections/Direct Feedback Alignment (No.2)/ Deep Feedback Control
对称权重或符号:Weight Mirror & KP+/ Weight Symmetry/ Sign Symmetry
神经/脉冲启发的扩展图(节点):SpikeGrad/
其他:NGRAD/Neural Gradient Representation by Activity Differences / Dynamic Stimuli(动态刺激) Trace Learning/ GlobalErrorVector Broadcasting/ Node Perturbation(节点扰动)
我们需要从三个维度权衡出一条好的路线:
能否规模化学习深度网络处理复杂大任务,
是否具有局部学习之外的其他学习能力(在线,增量,持续),
是否具有硬件友好性(哪怕是全新的可行的底层硬件结构)。
基于我们有限的理解,对上述方向,估计了最有可能突破的方向No.1(Predictive Coding )——>No.2(Direct Feedback Alignment)——>No.3(Equilibrium Propagation-均衡传播 )。
可惜到目前为止,这些方向的研究进展,都还没有达到期望的效果。
回到我们讨论的AI下一代架构的话题上来,Local Learning/Non-BP/Gradient-Free的突破,应该是对架构影响最大的,直接对DAG和BP的冲击。
2、脑等神经科学发展和相关机制/思想被引入智能算法的影响
在Bio-Brain和Brain-like的神经计算中,我们觉得这几个关键特征,对AI架构影响很大,现在的AI平台在计算流程中并没有很好的支撑:Asynchronized,Full-Parallel,Pipeline Inference,Sparse Activation,Dynamic Routing。
以异步、高并行度来说,每一个神经元都可以看成一个带有独立内存的和独立芯片的完整的计算单元,甚至更小的神经突触都可以看成异步并行的单元。
以Pipeline Inference来说,人脑是不间断的在做Inference,而且Learning/Train和Inference是紧密的结合在一起的,现在即使是Online Learning也是相对明确可区分的Train和Infer。
当然,另外一个大的方向Spike NN如果能够在CV,NLP等主要的问题上效果超越,AI的平台架构也将是大的改变甚至重启。
Pathways提到的关键点中,包含了Sparse Activation,Dynamic Routing;而Multitask-SingleModel,MultiModeling我们任务对AI架构冲击不大。
3、AI算法发展可能引出的架构需求
在AI算法发展中,如Reservoir Computing,那种Dense的Topology和Recurrent的计算流,如果大型的网络,会对当前的AI平台有一定挑战。当前AI算法能较好的解决很多类型的问题如CV,NLP的,特别Transformer为主的巨无霸模型大有一招鲜吃遍天的感觉;但还有一些问题求解极其糟糕,比如Math-Problem(参见google,facebook等公开的一些数据集和当前AI解决的进展),在这些问题上,堆规模几乎无用甚至还有反作用,我们分析,可能Modularity Compositional-Generalization,Neural Memory,High-Integrated Complex Reinforcement Learning,Discrete/Non-Differentiable Algorithms等会是潜在的突破方向;这些方向对AI下一代的架构,可能会有冲击,虽然还不太明朗。
4、AI重量级应用方向的计算的特点
笼统的说,相对通用的问题如CV,NLP的AI的算法发展进入了一个平缓期,我们认为AI+Science,诸如生物、材料、数字艺术等领域,会有更多的人力物力会投入进来。
这些方向,我们已经感受到一些对AI下一代架构的冲击或诉求:
在生物制药、物理材料、求解器等科学问题上,有一类共同的问题:Size Generalization或Scale Generalization。如果我们叫传统的泛化为Instance Generalization,即我们训练和推理的输出结构一样,需要的泛化能力是对新样本的正确预测。而Size/Scale泛化,则是在一个小体系上训练,需要在大若干倍的体系上预测。在Protein/AlphaFold,RL|GNN-TSP,Material等场景已经存在。这既需要算法支持,对平台也有一定的冲击,比如计算图动态能力,超大规模数据结构(不一定稀疏)的支持。
同样,在科学计算领域,广义物理世界的很多问题,是含有时间因素的,即Time Dependent。无论是原子,分子,到蛋白质,到细胞。含时对模型和平台都有新的挑战。
综上,我们分析了包含Pathways一文三个关键点中真正对AI Architecture有影响的Sparse-Activation/Dynamic-Routing,也分析了其他一些有潜在大冲击的方向,特别是Local Learning和AI Science Computing。当然最近期看,Sparse-Activation/Dynamic-Routing是已经最急迫的需要,大模型上由平台原生支持:类似Dynamic-Dispatch这种面向用户的API/算子,和内部在节点内和节点间的Sparse Activation来低能耗大模型计算。
MindSpore官方资料
GitHub : https://github.com/mindspore-ai/mindspore
Gitee : https : //gitee.com/mindspore/mindspore
官方QQ群 : 486831414