大语言模型-GPT-Generative Pre-Training

一、背景信息:

GPT是2018 年 6 月由OpenAI 提出的预训练语言模型。

GPT可以应用于复杂的NLP任务中,例如文章生成,代码生成,机器翻译,问答对话等。

GPT也采用两阶段的训练过程,第一阶段是无监督的方式来预训练生成式的语言模型,第二阶段根据特定任务进行微调。

GPT的网络架构使用的是多层Transformer Decoder改的结构。

二、整体结构:

GPT 使用Transformer的 Decoder 结构,并进行了一些改动,GPT 中的Decoder只保留了原Decoder中的第一个Attention模块Mask Multi-Head Attention。

GPT堆叠了12个Transformer的Decoder模块作为解码器,然后通过全连接得到输出的概率分布。

GPT中采用的是单向的语言模型,即通过上文预测当前的词,而Decoder中的Masked Multi Self-Attention可以起到遮掩待预测的下文内容的效果。

GPT 处理不同任务时的输入变换

GPT模型由输入嵌入层多层Transformer Decoder以及输出层这三个部分组成。

其中
1、输入嵌入层: 将输入的文本序列转换为词向量、位置向量并将二者相加得到输入向量。
2、多层Transformer Decode: 其中每一层由以残差和的方式做LayerNorm的掩码多头自注意力机层与以残差和的方式做LayerNorm的双层前馈神经网络组成。
X o u t p u t = X o u p u t − o r i ⊗ X M a s k X = L a y d e r N o r m ( X o u t p u t + M a s k M u l t i H e a d A t t e n t i o n ( X o u p u t ) ) X = F e e d F o r w o r d ( X ) = m a x ( 0 , X W 1 + b 1 ) W 2 + b 2 \begin{matrix} \\X_{output}=X_{ouput-ori }\otimes X_{Mask} \\X = LayderNorm(X_{output} + MaskMultiHeadAttention(X_{ouput})) \\X = FeedForword(X) = max(0, XW_{1} + b_{1})W_{2} + b_{2}\begin{matrix}\end{matrix} \end{matrix} Xoutput=Xouput−ori⊗XMaskX=LayderNorm(Xoutput+MaskMultiHeadAttention(Xouput))X=FeedForword(X)=max(0,XW1+b1)W2+b2
3、输出层: GPT模型的输出层通常为一个全连接层,将多层解码器的输出转换为对应的单词概率分布。

  • 分类任务(Classification):将起始和终止token加入到原始序列两端,输入transformer中得到特征向量,最后经过一个全连接得到预测的概率分布。
  • 自然语言推理(Entailment):将前提(premise)和假设(hypothesis)通过分隔符(Delimiter)隔开,两端加上起始和终止token。再依次通过Transformer多层Decoder和全连接得到预测结果。
  • 语义相似度(Similarity):输入的两个句子,正向和反向各拼接一次,然后分别输入给Transformer多层Decoder,得到的特征向量拼接后再送给全连接得到预测结果;
  • 多项选择(MutipleChoice):将n个选项的问题抽象化为n个二分类问题,即每个选项分别和内容进行拼接,然后各送入Transformer多层Decode和全连接中,最后选择置信度最高的作为预测结果。

三、GPT训练

GPT的训练包含无监督预训练有监督fine-tune两个阶段。

GPT的无监督预训练:

假设未标注的词汇集合为 U = { u 1 , u 2 , . . . u n } U = \left \{ {{u_{1},u_{2},...u_{n}}}\right \} U={u1,u2,...un},GPT模型的优化目标是对参数进行最大似然估计:
L 1 ( U ) = ∑ i l o g P ( u i ∣ u 1 , . . . , u k − 1 ; Θ ) L_{1}(U) = \sum_{i}^{} log P(u_{i}|u_{1},...,u_{k-1};\Theta ) L1(U)=i∑logP(ui∣u1,...,uk−1;Θ)

其中,k是滑动窗口的大小, P 为条件概率, Θ \Theta Θ为条件概率的参数, 参数更新采用随机梯度下降(SGD)方法。

下面是整个过程的公式示例:
{ h 0 = U W e + W p h l = T r a n s f o r m e r D e c o d e r B l o c k ( h l − q ) P ( u ) = s o f t m a x ( h n W e T ) \left\{\begin{matrix}h_{0} = UW_{e} + W{p} \\h_{l} = TransformerDecoderBlock(h_{l-q}) \\P(u) = softmax(h_{n}W_{e}^{T} ) \end{matrix}\right. ⎩ ⎨ ⎧h0=UWe+Wphl=TransformerDecoderBlock(hl−q)P(u)=softmax(hnWeT)

  1. 输入嵌入层: W e W_{e} We是token的词向量Embedding矩阵, W p W_{p} Wp是位置编码的Embedding矩阵,二者求和得到输入向量矩阵 h 0 h_{0} h0
  2. 多层Transformer Decode:TransformerDecoderBlock指多层Decoder模块
  3. 输出层:通过Softmax函数将输出的词向量转换为对应的单词概率分布

GPT的有监督fine-tune:

预训练后,需要针对特定任务进行有监督Fine-Tuning。

这里以一个文本分类任务举例,展示GPT在某一任务有监督微调的过程。

假设带标注的数据集C中的输入序列X为 [ x 1 , . . . , x m ] [x^{1},..., x^{m}] [x1,...,xm];模型的输出y是一个分类标签; h l m h_{l}^{m} hlm代表Decoder层最后的输出; W y W_{y} Wy代表输出层的Softmax参数。 L 2 ( C ) L_{2}(C) L2(C)是分类任务的最大似然函数, L 3 ( C ) L_{3}(C) L3(C)是整体的最大似然函数;GPT 在微调的时候需要同时考虑预训练的损失函数,因此微调的训练目标是最大化似然函数 L 3 ( C ) L_{3}(C) L3(C).
{ P ( y ∣ x 1 , . . . , x m ) = s o f t m a x ( h l m W y ) L 2 ( C ) = ∑ x , y l o g P ( y ∣ x 1 , . . . , x m ) L 3 ( C ) = L 2 ( C ) + λ × L 1 ( C ) \left\{\begin{matrix}P(y|x^{1},..., x^{m}) = softmax(h_{l}^{m}W_{y}) \\L_{2}(C) = \sum_{x,y}^{} log P(y|x^{1},..., x^{m}) \\L_{3}(C) = L_{2}(C) + \lambda \times L_{1}(C) \end{matrix}\right. ⎩ ⎨ ⎧P(y∣x1,...,xm)=softmax(hlmWy)L2(C)=∑x,ylogP(y∣x1,...,xm)L3(C)=L2(C)+λ×L1(C)

Reference

1.Attention Is All You Need

2.BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding

3.Improving Language Understanding by Generative Pre-Training

相关推荐
NAGNIP8 小时前
一文搞懂深度学习中的通用逼近定理!
人工智能·算法·面试
冬奇Lab9 小时前
一天一个开源项目(第36篇):EverMemOS - 跨 LLM 与平台的长时记忆 OS,让 Agent 会记忆更会推理
人工智能·开源·资讯
冬奇Lab9 小时前
OpenClaw 源码深度解析(一):Gateway——为什么需要一个"中枢"
人工智能·开源·源码阅读
AngelPP13 小时前
OpenClaw 架构深度解析:如何把 AI 助手搬到你的个人设备上
人工智能
宅小年13 小时前
Claude Code 换成了Kimi K2.5后,我再也回不去了
人工智能·ai编程·claude
九狼13 小时前
Flutter URL Scheme 跨平台跳转
人工智能·flutter·github
ZFSS13 小时前
Kimi Chat Completion API 申请及使用
前端·人工智能
天翼云开发者社区14 小时前
春节复工福利就位!天翼云息壤2500万Tokens免费送,全品类大模型一键畅玩!
人工智能·算力服务·息壤
知识浅谈15 小时前
教你如何用 Gemini 将课本图片一键转为精美 PPT
人工智能
Ray Liang15 小时前
被低估的量化版模型,小身材也能干大事
人工智能·ai·ai助手·mindx