Google让模型依任务学习路由,有效提高大型语言模型推理效率

Google在其最新的人工智能研究,发布了一种用于加速大型模型推理的方法TaskMoE(Task-level Mixture-of-Experts),也就是说,使用该方法,在模型扩大的情况下,推理的成本不会显著增加,因此能继续提供有效率的服务。

由于扩展大型语言模型,能够使像是T5、GPT-3和M4这类语言模型的结果,获得明显的提升,因此在追求更高品质结果的目标下,研究人员无不尽可能扩展模型。构建更大模型的常用方法,通常是增加层数,或是增加层的维度,使模型更深更宽。

这类密集模型采用输入串行,串行会被切分成更小的组件,称为令牌(Tokens),这些令牌会传递给整个网络,活化每一层和参数。Google提到,虽然这些大型且密集的模型,在多自然语言处理任务上获得很不错的结果,但是训练成本也会随着模型规模线性增加。

因此为了降低成本,研究人员开始采用混合专家(Mixture of Experts,MoE)方法,构建稀疏活化模型。与密集模型方法不同之处,在于传递给网络的每个令牌,会借由跳过部分的模型参数,依循被称作专家的独立子网络,借此减少计算量。

而将输入令牌分配给各子网络的决定,则由一个小型的路由网络决定,混合专家方法让扩张模型大小所付出的成本,不会成比例地线性增加,进而提升性能。

但Google提到,虽然这是一个有效的训练策略,但是将长串行令牌发送给多个专家,会再次使推理计算成本增加,因为专家会分散在大量的加速器中,像是1.2T参数的GLaM模型,就需要用到256个TPU-v3芯片。因此又会与密集模型遭遇到相同的问题,混合专家模型提供服务所需要的处理器数量,与模型大小成线性关系增加,因而增加计算需求,并导致明显的通信开销和工程复杂度。

因此Google发展了一种成为TaskMoE的方法,在模型扩展的同时,仍然能够有效率地提供服务。Google的方法是训练一个大型多任务模型,并在推理时,丢弃每个任务未使用的专家,从中萃取出更小、独立的任务子网络,能够适用于推理,又不会损失模型品质,并且显著降低推理延迟,与其他混合专家模型以及使用知识蒸馏压缩(Distillation)的模型相比,Google证明,他们的方法在多语言神经机器翻译方面更为有效。

Google比较TaskMoE、典型混合专家模型TokenMoE和基准密集模型的吞吐量和每秒解码令牌数,TaskMoE模型比TokenMoE模型小达7倍,可以直接在单个TPU-v3芯片上运算,不需要像是TokenMoE使用64个TPU-v3芯片,且TaskMoE吞吐量峰值是TokenMoE的2倍,Google提到,TokenMoE模型花了25%的推理时间在设备间的通信,而TaskMoE几乎没有通信成本。

以结果来看,在多语言翻译任务中,TaskMoE模型的分数,硬是比经蒸馏的TokenMoE模型平均高了2.1 BLEU。