|
|
|
|
@ -70,7 +70,7 @@
|
|
|
|
|
|
|
|
|
|
<img src="../assets/image-20240421205946626.png" alt="文字向量化" width="550" />
|
|
|
|
|
|
|
|
|
|
> 这里用英文的输入,引文英文输入使用代码更容易理解
|
|
|
|
|
> 这里用英文的输入,因为英文输入使用代码更容易理解
|
|
|
|
|
|
|
|
|
|
如样本“LLM with me”(大模型和我),通过GPT2Tokenizer转换成索引[3069, 44, 351, 502],转成向量后再结合位置信息编码,如[1,2,3]。继续向上传递。
|
|
|
|
|
|
|
|
|
|
@ -88,7 +88,7 @@
|
|
|
|
|
|
|
|
|
|
<img src="../assets/image-20240421212923027.png" alt="语义关系学习" width="550" />
|
|
|
|
|
|
|
|
|
|
向量传入后,通过语义关系学习(一系列计算,点积/内积的方法),得出一个矩阵,维度是4 × 4的矩阵。矩阵里的每个值都是数字,数字代表了文字对应其它文字的关注程度,越高表示与其它文字的关注度越高(关系越近),反正则越小(关系越远)。
|
|
|
|
|
向量传入后,通过语义关系学习(一系列计算,点积/内积的方法),得出一个矩阵,维度是4 × 4的矩阵。矩阵里的每个值都是数字,数字代表了文字对应其它文字的关注程度,越高表示与其它文字的关注度越高(关系越近),反之则越小(关系越远)。
|
|
|
|
|
|
|
|
|
|
> 为什么数字越大表示关系越近,现在可以简单理解,就是每个词的查询向量(Q)会与序列中所有单词的键(K)向量进行点积运算,得到一个分数,这个分数经过softmax函数处理后,就变成了注意力权重。即每个词都有跟全部词的向量结果,越大表示语义关系越紧密,权重越低则表示关系越疏远。
|
|
|
|
|
>
|
|
|
|
|
@ -128,7 +128,7 @@ Add & Norm的过程可以理解为相同位置元素相加,再做层归一化
|
|
|
|
|
|
|
|
|
|
<img src="../assets/image-20240424204837275.png" alt="前馈神经网络" width="550" />
|
|
|
|
|
|
|
|
|
|
当数据输入到神经网络后,经过一系列运算(点积),输出的数据一般是非线形的。而且维度输出的维度与输入的维度是不变的。这种设计允许FFN在不改变输入和输出维度的情况下,增加网络的非线性和复杂性,从而使模型能够学习更加复杂的特征表示。
|
|
|
|
|
当数据输入到神经网络后,经过一系列运算(点积),输出的数据一般是非线性的。而且维度输出的维度与输入的维度是不变的。这种设计允许FFN在不改变输入和输出维度的情况下,增加网络的非线性和复杂性,从而使模型能够学习更加复杂的特征表示。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -171,7 +171,7 @@ Add & Norm的过程可以理解为相同位置元素相加,再做层归一化
|
|
|
|
|
|
|
|
|
|
<img src="../assets/image-20240503172341945.png" alt="image-20240503172341945" width="300" />
|
|
|
|
|
|
|
|
|
|
可以简单理解为,将前面线形层输出的值,转化成0-1区间的概率分布,进行输出。
|
|
|
|
|
可以简单理解为,将前面线性层输出的值,转化成0-1区间的概率分布,进行输出。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|