文章 "神经网络变得简单(第 95 部分):降低变换器模型中的内存消耗"

 

新文章 神经网络变得简单(第 95 部分):降低变换器模型中的内存消耗已发布:

基于变换器架构的模型展现出高效率,但由于在训练阶段、及运行期间都资源成本高昂,故它们的使用变得复杂。在本文中,我提议领略那些能够降低此类模型内存占用的算法。

MLKV 方法是 MQA 和 GQA 算法的逻辑延续。在指定的方法中,由于 KV 头的减少,KV 缓存大小亦会减小,并在单个自关注层内的一个关注头分组共享。一个完全预期的步骤是在自关注层之间共享 Key 和 Value 实体。最近 FeedForward 模块在变换器算法中的作用的研究,或许证明了这一步的合理性。它假设指定的模块模拟 “键-值” 内存,处理不同的信息级别。然而,对我们来说最有趣的是观察到连续层分组计算相似的东西。更准确地说,较低级别处理表面形态,而较高级别处理更多的语义细节。因此,可以得出结论,即关注力能够委派给各层的分租,同时在 FeedForward 模块中保留必要的计算。直观上,KV 头可以在具有相似目标的层之间共享。

为了开拓这些思路,MLKV 方法的作者提供了多级键交换。MLKV 不仅在同一个自关注层的 Query 关注头之间共享 KV 头,而且在其它层的关注头亦如此。这样就能减少变换器中 KV 头的总数,从而允许更小的 KV 缓存。

作者:Dmitriy Gizlyk

 
你怎么知道网络已经学到了什么,而不是产生了随机信号?
 
Maxim Dmitrievsky #:
你又是如何意识到网络已经学会了一些东西,而不是产生了随机信号呢?

行动者的随机政策假定行动具有一定的随机性。不过,在学习过程中,随机值的分散范围会大大缩小。问题的关键在于,在制定随机政策时,每个行动都要训练两个参数:平均值和数值散布的方差。在训练策略时,平均值趋于最优,方差趋于 0。

为了了解代理行动的随机性,我对同一策略进行了多次测试运行。如果代理产生的行为是随机的,那么所有测试的结果都会大相径庭。对于训练有素的策略来说,结果的差异将是微不足道的。

 
Dmitriy Gizlyk #:

行动者的随机政策假定行动具有一定的随机性。不过,在训练过程中,随机值的散布范围会大大缩小。问题在于,在制定随机策略时,每个行动都需要训练两个参数:平均值和数值散布的方差。在训练策略时,平均值趋于最优,方差趋于 0。

为了了解 Agent 行动的随机性,我对同一策略进行了多次测试运行。如果代理产生的行为是随机的,那么所有测试的结果都会大相径庭。对于训练有素的策略来说,结果的差异将是微不足道的。

明白了,谢谢。