|
|
|
@ -10,7 +10,7 @@ FFNN前馈神经网络输出结果后,经过数值缩放,来到了这里。
|
|
|
|
|
|
|
|
|
|
### Linear层
|
|
|
|
|
|
|
|
|
|
这是一个线性变换层,它将前一层(如多头注意力层或前馈神经网络层)的输出进行线性变换,以生成一个新的特征空间。在Transformer中,这通常是将维度较高的特征向量映射到一个较低维度的空间,这个空间的维度等于词汇表的大小。在GPT-2里,也就是我们前面查到的50257个词汇量。
|
|
|
|
|
这是一个线性变换层,它将前一层(如多头注意力层或前馈神经网络层)的输出进行线性变换,以生成一个新的特征空间。在Transformer中,这通常是将特征向量映射到与词汇表大小相同的空间。在GPT-2里,也就是我们前面查到的50257个词汇量。
|
|
|
|
|
|
|
|
|
|
将特征映射到词汇表空间:Transformer模型的目标是生成文本,因此需要将内部的高维特征表示映射到一个与词汇表大小相同的空间,以便能够选择最可能的下一个词。
|
|
|
|
|
|
|
|
|
@ -60,7 +60,7 @@ Output Y: [-2.59709604 -0.78316274 -4.6765379 3.25016417]
|
|
|
|
|
|
|
|
|
|
<img src="../assets/image-20240503181100601.png" alt="image-20240503181100601" width="550" />
|
|
|
|
|
|
|
|
|
|
可以看到线形层的目标,就是把高维降低到低维,并且跟总词汇量是一致的。同时你也会发现,输出的并不是概率(当然值也不一定有那么多大的幅度),维度不统一就无法比较,所以我们还需要用Softmax去转成概率。
|
|
|
|
|
可以看到线性层的目标,就是把高维降低到低维,并且跟总词汇量是一致的。同时你也会发现,输出的并不是概率(当然值也不一定有那么多大的幅度),维度不统一就无法比较,所以我们还需要用Softmax去转成概率。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -81,13 +81,13 @@ $$
|
|
|
|
|
- **训练阶段**:
|
|
|
|
|
- 在训练阶段,模型使用带标签的数据集进行学习。Linear层学习如何将特征映射到词汇表空间,而Softmax层将这些映射转换为概率分布。然后,模型的输出(概率分布)与真实的标签进行比较,计算损失函数(如交叉熵损失),并通过反向传播更新模型的参数。
|
|
|
|
|
- **推理阶段**:
|
|
|
|
|
- 在推理阶段,模型不再更新参数,而是使用训练好的参数来生成预测。Linear层将输入特征映射到词汇表空间,Softmax层将这些映射转换为概率分布。根据这个分布,模型可以采用贪婪解码、束搜索(beam search)或其他策略来生成最终的文本输出。在生成每个词后,通常会将预测的词作为下一个时间步的输入,直到生成结束符号或达到最大长度限制为止。
|
|
|
|
|
- 在推理阶段,模型使用训练好的参数来生成预测,不再进行参数更新。Linear层将输入特征映射到词汇表空间,Softmax层将这些映射转换为概率分布。根据这个分布,模型可以采用贪婪解码、束搜索(beam search)或其他策略来生成最终的文本输出。在生成每个词后,通常会将预测的词作为下一个时间步的输入,直到生成结束符号或达到最大长度限制为止。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### 总结
|
|
|
|
|
|
|
|
|
|
在Transformer模型的最后阶段,Linear层负责将前一层的输出通过线性变换映射到与词汇表大小相同的空间,为文本生成做准备。GPT中,这一层的权重与词嵌入共享。接着,Softmax层将Linear层的输出转换为概率分布,为每个词分配一个概率值,以便选择下一个最可能的词。在训练阶段,模型通过比较预测和真实标签来学习,使用损失函数进行优化。而在推理阶段,模型停止学习,使用已训练好的参数来生成文本,可以采用不同的解码策略来输出最终结果。这两个层是文本生成模型的关键组成部分,确保了输出的连贯性和准确性。
|
|
|
|
|
在Transformer模型的每个层之后,Linear层负责将输出通过线性变换映射到与词汇表大小相同的空间,为文本生成做准备。GPT中,这一层的权重与词嵌入共享。接着,Softmax层将Linear层的输出转换为概率分布,为每个词分配一个概率值,以便选择下一个最可能的词。在训练阶段,模型通过比较预测和真实标签来学习,使用损失函数进行优化。而在推理阶段,模型停止学习,使用已训练好的参数来生成文本,可以采用不同的解码策略来输出最终结果。这两个层是文本生成模型的关键组成部分,确保了输出的连贯性和准确性。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|