该问题归类到Transformer架构问题集——前馈网络——全连接层。请参考LLM数学推导——Transformer架构问题集。
在大语言模型(LLM)的架构设计中,前馈神经网络(FFN)的参数共享策略是一个重要的研究方向。参数共享通过跨层或跨模块复用权重矩阵,能够显著减少模型参数量,提升训练效率,同时对模型性能产生复杂影响。本文将从数学原理、实际应用、优缺点分析、优化策略以及代码实现等多个维度,深入解析 FFN 中参数共享的内在机制和效果。
1. FFN 与参数共享基础概念
1.1 FFN 结构回顾
标准 Transformer 中的 FFN 包含两个线性层和一个非线性激活函数,其数学表达式为:
其中,是输入向量,
,
是权重矩阵,
,
是偏置项,
是中间隐藏层维度,通常为
的 4 倍。
1.2 参数共享类型
在 FFN 中,常见的参数共享方式包括:
- 跨层共享:在多层 Transformer 中,不同层的 FFN 使用相同的权重矩阵
- 跨头共享:在多头注意力机制中,不同注意力头的 FFN 共享参数
- 对称共享:在自编码器架构中,编码器与解码器的 FFN 共享参数
- 局部共享:仅共享部分参数,如只共享
或
本文将重点分析跨层共享这一最常见的参数共享策略,其数学表达可表示为:
其中,L是 Transformer 层数,所有层的 FFN 使用相同的、
、
和
。
2. 参数共享的数学原理分析
2.1 参数量与计算复杂度
假设 Transformer 有L层,每层 FFN 的参数量为。在不共享参数的情况下,总参数量为:
而采用跨层参数共享后,总参数量降为:
参数量减少比例为: 例如,当L=12时,参数量减少约 91.7%。
计算复杂度方面,每层 FFN 的前向传播计算量为,参数共享不会改变单步计算复杂度,但由于减少了内存访问,实际运行速度可能有所提升。
2.2 梯度计算与参数更新
在标准反向传播中,第l层 FFN 参数的梯度为: