论文
通过动态KV缓存支持循环语言模型的按需计算
Enabling Dynamic Computation in Looped LMs
摘要
循环语言模型具有较高的参数效率,并有望根据Token难度动态分配计算,从而在简单Token上节省内存和浮点运算。然而,已为动态计算而训练的先进开放循环模型Ouro在实际运行中并未实现这一点,因为每次循环迭代都需要独立层级的KV缓存,迫使系统完成所有循环计算。此外,Ouro对每个Token施加相同的提前退出先验,使不同难度的Token都以近似静态、较浅层的方式处理。我们提出一种简单的“使用当前最佳可用结果”KV缓存策略,无需额外调整即可应用,改善性能与计算深度之间的权衡。该方法在保留完整深度模型性能的同时,最多减少30%的浮点运算和KV缓存内存,体现循环语言模型的计算灵活性。让模型在训练时了解这种缓存策略,还能进一步改善性能和效率。最后,我们对提前退出先验的训练目标作出一个小而有效的修正,使Token根据所需计算量在不同深度退出。研究结果在Ouro模型及从头预训练的较小循环语言模型上得到验证。
