接下来介绍基础神经网络,这一部分就更加基础了,主要包括 GELU、Softmax 函数以及 Layer Normalization 和 Linear。
每一小部分都有代码示例,例如在 Linear 部分,作者展示了标准矩阵乘法 + 偏置:
线性层从一个向量空间投影到另一个向量空间的代码如下:
GPT 架构
这部分介绍 GPT 自身架构。
Transformer 架构如下:
Transformer 仅使用解码器堆栈(图的右侧部分):需要注意,由于摆脱了编码器,中间的交叉注意力层也被删除了。
在高层次上,GPT 体系架构有以下三个部分:
- 文本 + 位置嵌入;
- Transformer 解码器堆栈;
- 投影到词汇表。
代码就像下面这样:
代码部分截图
接下来更详细地分解以上三个部分中的每一个部分,这里也不再赘述。
以上就是作者对 GPT 的实现,接下来就是将它们组合在一起并运行代码,得到 gpt2.py。它的全部内容只有 120 行代码(如果删除注释和空格,则为 60 行)。
作者通过以下方式测试结果:
输出结果如下:
正如作者说的:这次实验成功了。
本文只是跟着作者的思路大概介绍了整体流程,想要了解更多内容的小伙伴,可以参考原文链接。
原文链接:https://jaykmody.com/blog/gpt-from-scratch/#basic-layers