备案接入阿里云后原网站还能访问吗,阿里云 建网站,wordpress 修改评论框,高德地图看不到菲律宾GPT 浅析 文章目录 GPT 浅析GPT 1无监督预训练有监督微调任务相关的输入变换 GPT2GPT3 GPT 1
在模型架构上#xff0c;GPT-1基于Transformer构造#xff0c;这是因为与其他卷积神经网 络或者循环神经网络相比#xff0c;Transformer提供了效率更高的方法来处理文本 中的长期…GPT 浅析 文章目录 GPT 浅析GPT 1无监督预训练有监督微调任务相关的输入变换 GPT2GPT3 GPT 1
在模型架构上GPT-1基于Transformer构造这是因为与其他卷积神经网 络或者循环神经网络相比Transformer提供了效率更高的方法来处理文本 中的长期依赖关系。
预训练技术GPT-1使用了一种称为“生成式预训练”Generative Pre-TrainingGPT的技术。预训练分为两个阶段预训练和微调fine-tuning。
在预训练阶段GPT-1使用了大量的无标注文本数据集例如维基百科和网页文本等。通过最大化预训练数据集上的对数极大似然概率来训练模型参数。在微调阶段GPT-1将预训练模型的参数用于特定的自然语言处理任务如文本分类和问答系统等。
多层模型GPT-1模型由多个堆叠的Transformer编码器组成每个编码器包含多个注意力头和前向神经网络。这使得模型可以从多个抽象层次对文本进行建模从而更好地捕捉文本的语义信息。
无监督预训练
给定一个无监督的语料数据集 U { u 1 , u 2 , . . . , u n } \mathbf{U}\{\boldsymbol{u}_1,\boldsymbol{u}_2,...,\boldsymbol{u}_n\} U{u1,u2,...,un}, GPT-1使用标准的语言模型进行训练也就是最大化如下似然估计 L 1 ( U ) ∑ i l o g P ( u i ∣ u i − k , . . . , u i − 1 ; θ ) L_1(\mathbf{U})\sum_ilogP(\boldsymbol{u}_i|\boldsymbol{u}_{i-k},...,\boldsymbol{u}_{i-1};\boldsymbol{\theta}) L1(U)i∑logP(ui∣ui−k,...,ui−1;θ) 其中 k k k 表示上下文窗口的大小P表示条件概率 θ \theta θ是网络的参数采用梯度下降法进行训练。
GPT-1使用一个多层Transformer解码器进行语言建模该模型对输入上 下文使用多头自注意力机制然后使用前馈神经网络预测目标单词的概 率分布建模过程如下 h 0 U W e W p h l t r a n s f o r m e r _ b l o c k ( h l − 1 ) P ( U ) s o f t m a x ( h n W e T ) \begin{aligned} \boldsymbol{h}_0\boldsymbol{UW}_e\boldsymbol{W}_p\\ \boldsymbol{h}_ltransformer\_block(\boldsymbol{h}_{l-1})\\ P(\boldsymbol{U})softmax(\boldsymbol{h}_n\boldsymbol{W}_e^T) \end{aligned} h0hlP(U)UWeWptransformer_block(hl−1)softmax(hnWeT) 其中 W e W_e We是一个单词向量矩阵 W p W_p Wp是位置向量矩阵 U U U 表示输入文本的上下文向量 n n n是网络层数。
有监督微调
在使用上述方法进行预训练之后GPT-1采用有监督微调方法将参数调整到更适合下游任务的状态
假设现在有某个有标记的样本集 C C C其中每个样本由一系列的输入单词 { x 1 , x 2 , . . . , x m } \{x^1,x^2,...,x^m\} {x1,x2,...,xm}和一个标签 y y y组成那么输入单词序列首先被送入在前一个阶段预训练好的模型中得到一个状态向量 h l m h_l^m hlm,接着被送入一个线性层进行结果预测 P ( y ∣ x 1 , x 2 , . . . , x m ) s o f t m a x ( h l m W y ) P(y|x^1,x^2,...,x^m)softmax(h_l^mW_y) P(y∣x1,x2,...,xm)softmax(hlmWy) 基于此有监督微调阶段的目标函数就是 L 2 ( C ) ∑ ( x , y ) l o g P ( y ∣ x 1 , x 2 , . . . , x m ) L_2(\mathbf{C})\sum_{(x,y)}logP(\mathbf{y}|\mathbf{x}^1,\mathbf{x}^2,...,\mathbf{x}^m) L2(C)(x,y)∑logP(y∣x1,x2,...,xm) 与此同时GPT-1的设计人员发现在有监督微调阶段将语言模型作为微调的辅助目标能够进一步提升模型的泛化能力并且可以加速收敛帮助学习。最终在有监督微调阶段模型的训练目标变为 L 3 ( C ) L 2 ( C ) λ × L 1 ( C ) \begin{aligned}L_3(\mathbf{C})L_2(\mathbf{C})\lambda\times L_1(\mathbf{C})\end{aligned} L3(C)L2(C)λ×L1(C) 其中 λ \lambda λ是权重系数。
任务相关的输入变换
对于像文本分类一样的任务可以按照上述有监督微调阶段所提到的方法进行微调但是像问答、文本蕴含等自然语言理解任务则需要在输 入阶段进行相应的设计和修改才可以将GPT模型进行应用。
在微调阶段所有任务的输入都增加了特殊的Token作为输入的开始 [start]和结束[extract]。 对于文本分类任务将起始和终止token加入到原始序列两端输入transformer中得到特征向量最后经过一个全连接得到预测的概率分布 对于文本蕴含任务设计者将前提和假设进行拼接然后在二者之间增 加了一个特殊标记“Delim” 。 对于文本相似度计算任务由于被计算相似度的两个句子之间没有前后顺序关系所以对同一对数据进行了不同顺序的拼接最后使用线性化得到相似度得分。特别地输入时两个句子之间增加了特殊标记 “Delim” 用来区分前后两个句子。 对于多项选择的问答任务将每个候选答案与问题和原文片段进行拼接 得到相应的向量表示最后使用Softmax函数在候选答案范围中进行结 果概率预测。 在模型实现细节上GPT-1很大程度上遵循了原始的Transformer工作模式 训练了一个具有掩码自注意力机制的12层仅包含解码器的Transformer。对 于前馈神经网络使用了3072维的内部状态使用最大学习率为2.5×10-4 的Adam优化方案。
GPT2
GPT-2提供了一种更为灵活和通用的形式来指定任务、输入和输出避免了算法级别的任务定制。如在机器翻译任务中模型的输入可以被设定为 “请翻译为法语、英语原文内容、对应法语内容”在机器阅读理解任务 中训练样本可以被写成“问题的答案、问题、原文、答案” 。
GPT-2的思想本质上就是早期的指令微调Prompt Finetuning方法这种做法可以使得模型学习在遇到类似的提示语之后应该输出什么样的内 容。
在模型实现上GPT-2仍然使用Transformer作为主干模型与GPT-1的整体架构类似只进行了少量修改包括层归一化被移到每个块的输入部分 起到类似预激活的作用在最终的自注意力块之后又增加了额外的层归一化同时Transformer的Decoder层数从GPT-1的12层增加到了24层、36 层和48层。
GPT3
GPT-3的主要目标是使用更少的领域数据且不经过微调去解决问题。它沿用GPT-2的模型和训练方法将模型参数大小从GPT-2的15亿个升级到1750亿。
在几十个自然语言处理数据集上对GPT-3进行了评估包括三种设置
零样本学习Zero-shot Learning不允许展示具体的任务样本只告知模型自然语言表示的指令单样本学习One-shot Learning 只允许向模型展示一个样本小样本学习Few-shot Learning 允许尽可能多的向模型展示样本大概在10-100个之间。
在开发GPT-3的过程中研究人员发现模型增大之后引入一些质量较差的数据带来的负面影响变小了因此与GPT-1和GPT-2相比GPT-3开始使用Common Crawl数据集进行训练。