|
|
@@ -175,6 +175,47 @@ OpenAI开源GPT的过程并非简单直接,而是有着复杂的发展历程
|
|
|
[所有大模型的开源](http://www.gitpp.com/explore/projects/topics/LLM)
|
|
|
|
|
|
|
|
|
+# 返回 AI BOOK 主页
|
|
|
+
|
|
|
+[返回 AI BOOK 主页](http://www.gitpp.com/ai1/ai-book)
|
|
|
+
|
|
|
+
|
|
|
+# GPT 开源的解读
|
|
|
+
|
|
|
+
|
|
|
+GPT - 1(Generative Pretrained Transformer 1)是OpenAI开发的一款基于Transformer架构的预训练语言模型,以下为你详细解读其结构:
|
|
|
+
|
|
|
+### 总体架构概述
|
|
|
+GPT - 1采用了Transformer架构中的解码器部分。Transformer是一种基于注意力机制的深度学习模型,由编码器和解码器组成,而GPT - 1专注于解码器,这种架构使得它能够生成连贯的文本序列。
|
|
|
+
|
|
|
+### 具体结构组件
|
|
|
+
|
|
|
+#### 1. 输入嵌入层(Input Embedding)
|
|
|
+- **词嵌入(Word Embedding)**:
|
|
|
+ - 为了让模型能够处理文本,首先需要将输入的文本中的每个词转换为向量表示。GPT - 1使用词嵌入技术,将每个词映射到一个固定维度的向量空间中。例如,每个词可能被表示为一个长度为768的向量。这样的向量表示可以捕捉到词的语义信息,使得语义相近的词在向量空间中距离较近。
|
|
|
+ - **位置嵌入(Position Embedding)**:
|
|
|
+ - 由于Transformer架构本身不包含对序列中词的位置信息的感知,因此需要额外的位置嵌入来表示每个词在序列中的位置。位置嵌入同样是将位置索引映射到一个固定维度的向量,然后与词嵌入向量相加,得到最终的输入嵌入向量。这样模型就能够知道每个词在序列中的相对位置。
|
|
|
+
|
|
|
+#### 2. 多层解码器块(Decoder Blocks)
|
|
|
+GPT - 1包含12个相同的解码器块,每个解码器块都由两个主要子层组成:
|
|
|
+
|
|
|
+- **多头自注意力机制(Multi - Head Self - Attention)**:
|
|
|
+ - **原理**:自注意力机制允许模型在处理每个词时,考虑序列中其他词的信息。多头自注意力机制则是将自注意力机制并行地执行多次,每个头关注不同的信息表示。例如,一个头可能关注词之间的语义关系,另一个头可能关注词的语法结构。
|
|
|
+ - **作用**:通过多头自注意力机制,模型能够捕捉到文本中不同层次和不同类型的依赖关系,从而更好地理解文本的上下文信息。
|
|
|
+ - **前馈神经网络(Feed - Forward Neural Network)**:
|
|
|
+ - **结构**:前馈神经网络由两个线性变换和一个非线性激活函数(通常是ReLU)组成。第一个线性变换将输入向量映射到一个更高维度的空间,然后通过ReLU激活函数引入非线性,最后再通过第二个线性变换将向量映射回原来的维度。
|
|
|
+ - **作用**:前馈神经网络进一步对自注意力机制的输出进行处理和变换,提取更高级的特征表示。
|
|
|
+
|
|
|
+每个解码器块还包含层归一化(Layer Normalization)操作,用于加速模型的训练和提高模型的稳定性。层归一化在每个子层的输入和输出之间进行,对每个样本的特征维度进行归一化处理。
|
|
|
+
|
|
|
+#### 3. 输出层(Output Layer)
|
|
|
+- **线性变换**:经过12个解码器块的处理后,最后一个解码器块的输出会通过一个线性变换,将向量的维度映射到词汇表的大小。
|
|
|
+ - **Softmax激活函数**:线性变换的输出会经过Softmax激活函数,将其转换为一个概率分布,表示词汇表中每个词作为下一个生成词的概率。模型会根据这个概率分布选择概率最大的词作为生成的下一个词。
|
|
|
+
|
|
|
+
|
|
|
+### 结构特点总结
|
|
|
+- **单向语言模型**:GPT - 1是一个单向语言模型,在处理序列时,只关注当前词之前的上下文信息,这使得它在文本生成任务中能够自然地生成连贯的文本。
|
|
|
+ - **预训练和微调**:GPT - 1采用了预训练和微调的两阶段训练方法。在预训练阶段,模型在大规模无监督文本数据上学习语言的通用模式;在微调阶段,模型在特定任务的有监督数据上进行微调,以适应不同的自然语言处理任务,如文本分类、问答系统等。
|
|
|
|
|
|
# 返回 AI BOOK 主页
|
|
|
|