Transformer参数量计算:从Embedding到FFN的完整公式推导

引言:1750亿参数从何而来? 当你看到"GPT-3有1750亿参数"、“LLaMA 7B”、“Claude 100K上下文"这样的描述时,你是否想过:这1750亿参数到底是怎么算出来的?它们分别存储在模型的哪些部分? ...

18 min · 8531 words

Transformer的权重共享:为什么一行代码能省下两亿参数

一行代码的魔法 在PyTorch中实现一个简单的语言模型时,你可能会看到这样一行看似普通的代码: self.lm_head.weight = self.embedding.weight 这行代码做的事情非常简单:让输出层的权重指针直接指向嵌入层的权重。但就是这样一行代码,却能够为一个典型的70亿参数大模型节省约2亿个参数——相当于模型总参数量的3%左右。 ...

13 min · 6138 words

自注意力与交叉注意力:Transformer如何用两种机制处理「同一序列」与「两个世界」

2017年,Vaswani等人在论文《Attention Is All You Need》中提出了Transformer架构。这篇论文的核心洞察可以用一句话概括:循环神经网络并非处理序列数据的唯一途径,注意力机制本身就足够了。 ...

17 min · 8389 words

Teacher Forcing:为什么这个"作弊"技术统治了序列模型训练三十年

训练一个能够生成文本的模型,听起来是一个简单的任务:给它看很多文本,让它学会预测下一个词。但真正动手实现时,一个根本性的问题会摆在面前——训练时模型应该看到什么? ...

21 min · 10413 words

因果语言模型与掩码语言模型:两种预训练范式的本质差异

2017年,《Attention Is All You Need》论文提出了Transformer架构,彻底改变了自然语言处理的范式。然而,这个架构很快分化为两条截然不同的发展路径:一条以BERT为代表的编码器路线,通过掩码语言模型(Masked Language Modeling, MLM)学习双向上下文表示;另一条以GPT为代表的解码器路线,通过因果语言模型(Causal Language Modeling, CLM)实现自回归文本生成。 ...

7 min · 3433 words

SwiGLU为何成为大模型的标配:从ReLU到门控激活函数的十五年演进

2017年,Transformer论文发表时,作者选择了一个看似平淡无奇的组件作为前馈神经网络(FFN)的激活函数:ReLU。这个在2011年被重新发现的函数,因其计算简单、梯度稳定而成为深度学习的标配。然而,到了2023年,几乎所有新发布的大语言模型——LLaMA、PaLM、Mistral——都在FFN层抛弃了ReLU,转而采用一个名字拗口的组合:SwiGLU。 ...

14 min · 6895 words

为什么大模型能从几个例子中学会新任务:从隐式梯度下降到Induction Head的技术解密

2020年5月,OpenAI发布了GPT-3。论文中有一个让研究社区困惑不已的发现:这个拥有1750亿参数的模型,竟然能在没有任何参数更新的情况下,仅凭输入中提供的几个示例,就学会完成全新的任务。 ...

10 min · 4967 words