引言(文末有彩蛋(#^.^#))
本文对GPT整个计算过程做了详细的说明,精确到加减乘除每一步,主要内容包括:
- 详细的数据流水线 ,整个GPT2的过程非常详细;
- 适合大模型的初学者,可以明白大模型推理的整个数据流;
- 适合做算子开发,如大模型隐私推理,大模型隐私保护,大模型算子优化;
- 数据流程图+举例+原始GPT2代码的对照,更加通俗易懂的理解GPT.
0 GPT2架构整体
下方是GPT2的架构整体,包括嵌入层、归一化层,多头注意力机制、前馈神经网络层,以及最后的argmax操作(Vec2Word部分)。我们将对各个算子作详细透彻地解读。
1 嵌入层
- 以下是嵌入层的操作,代码中采用的是快捷的索引方法,与示例的方法略有不同,不过功能是一样的。由于维度统一的问题,所有图中的n_seq均为n_ctx,即可支持的最大输入序列长度。
2 layer_norm层(开始进入transformer构建块中)
3 多头注意力机制
3.1 qkv的生成
3.2 因果掩码生成
3.3 attention运算
3.4 堆叠操作
3.5 linear操作和残差操作
4 开始进入前馈神经网络层(FNN层)
4.1 维度提升和激活函数
4.2 linear运算和残差操作
4 然后需要回到归一化层前一步重复12次transformer构建块
5 argmax层(vec2word操作,输出即为预测的token)
6 目前为止,我们已经完成了一个token的预测,若要继续预测下一个token,需要将当前输出inputs重新输入到第一步。
彩蛋:GPT2推理数据流程的原始高清文稿在此处,请自取:https://download.csdn.net/download/qq_37150711/89648003