Transformer参数量计算:从Embedding到FFN的完整公式推导
引言:1750亿参数从何而来? 当你看到"GPT-3有1750亿参数"、“LLaMA 7B”、“Claude 100K上下文"这样的描述时,你是否想过:这1750亿参数到底是怎么算出来的?它们分别存储在模型的哪些部分? ...
引言:1750亿参数从何而来? 当你看到"GPT-3有1750亿参数"、“LLaMA 7B”、“Claude 100K上下文"这样的描述时,你是否想过:这1750亿参数到底是怎么算出来的?它们分别存储在模型的哪些部分? ...
一个反直觉的设计选择 如果你在2018年告诉一个深度学习研究者,未来最先进的大语言模型会删除所有线性层的偏置项,他们可能会觉得你疯了。毕竟,偏置项是神经网络最基础的组成部分之一——从单层感知机到深度卷积网络,几乎每一个神经元的输出都包含一个偏置参数。 ...
一行代码的魔法 在PyTorch中实现一个简单的语言模型时,你可能会看到这样一行看似普通的代码: self.lm_head.weight = self.embedding.weight 这行代码做的事情非常简单:让输出层的权重指针直接指向嵌入层的权重。但就是这样一行代码,却能够为一个典型的70亿参数大模型节省约2亿个参数——相当于模型总参数量的3%左右。 ...
2017年,Transformer论文发表时,作者选择了一个看似平淡无奇的组件作为前馈神经网络(FFN)的激活函数:ReLU。这个在2011年被重新发现的函数,因其计算简单、梯度稳定而成为深度学习的标配。然而,到了2023年,几乎所有新发布的大语言模型——LLaMA、PaLM、Mistral——都在FFN层抛弃了ReLU,转而采用一个名字拗口的组合:SwiGLU。 ...