一、输入
输入一句话:Hello CYZLAB the inspired world
每个单词为一个token
二、Embedding
这里的词向量维度为6,矩阵的行数为token数,列数是词向量的维度
这列是注释不算 | ||||||
hello | 1 | 2 | 2 | 6 | 9 | 4 |
CYZLAB | 2 | 2 | 2 | 3 | 7 | 2 |
the | 2 | 2 | 2 | 5 | 9 | 6 |
inspired | 1 | 3 | 2 | 4 | 4 | 0 |
world | 4 | 3 | 1 | 2 | 7 | 3 |
token数X词向量维度
三、位置嵌入
与Embedding相同
四、Q、K、V
Q、K、V的权重:权重权重的行数要与词向量的维度相同,列数任意
如果:权重的权重的尺寸为:词向量的维度X7
Q、K、V的尺寸:token数X7(上面我们自定义的列数)
五、自注意力机制
-
每个词之间的关系(Q*K^T):token数X token数
-
关系与V的加权和(Q*K^T)*V:token数X7
六、添加线性层
让自注意机制的结果与Embedding的联合的矩阵可以按位相加
线性层的权重尺寸:7X词向量的维度
线性层的转换结果:token数X词向量维度
七、add和归一化
尺寸:token数X词向量维度
此后的尺寸都是这样的:token数X词向量维度