美文网首页
深度语言模型-GPT

深度语言模型-GPT

作者: 南朝容止 | 来源:发表于2021-02-07 13:22 被阅读0次

    简介

    OpenAI在2018提出了GPT(Generative Pre-Training)模型,模型采用了Pre-training + Fine-tuning的训练模式,可用于分类、推理、问答、相似度等任务。


    image.png

    不同点

    GPT就是是在transformer的基础上提出的,但是又稍有不同:

    • 预训练时的不同
      不同点1: 只用Transformer的Encoder进行训练。
      不同点2: 将Transformer中Encoder的Self-Attention, 改为Masked-Attention。 什么意思呢?
      即不同于Self-Attention,一句话中的各种词之间相互attention。 而这里是 单向的Transformer,即句子中的每个词,都只能对包括自己在内的前面所有词进行Attention,后面的词被MASK调

      为什么使用单向Transformer?

      因为使用了Masked Self-Attention,则每个位置的词都不会“看见”后面的词,也就是预测的时候是看不见“答案”的,保证了模型的合理性,这也是为什么OpenAI采用了单向Transformer的原因。

    • fun-tuning时的不同
      在接specific-task进行fun-tuning时,其损失为两个损失的和。如下图所示:

      image.png
      其中 L2(C) 为fun-tuing的具体有标注的任务的损失。
      L1(C) 为预训练任务的损失。具体表现在fun-tuing时将GPT最后一层Encoder输出按照预训练当时的方式计算损失。

    特点

    • Pre-Training的方式
    • 单向Transformer模型
    • Fine-Tuning与不同输入数据结构的变化, 因具体任务不同,fun-tuning结构不同,比如问答、相似度计算、分类、推理等,不同的任务不同的fun-tuning的输出层设计

    算法流程

    预训练

    输入

    一句话中每个词的Embeding向量

    image.png
    其中We为字典单词的Embedding向量,Wp为位置编码矩阵,U可视为独热矩阵。

    中间计算过程

    就是一个单项Transformer,最后一层的输出为 hl

    image.png

    损失计算

    根据最后一层输出,接一个矩阵W,因生成1维,然后算softmax,得到每个词概率,概率最大化。得到损失L1(C) 。 此处注P(u)计算时,使用了字典单词的Embedding向量We,这也是语言模型中常用的技巧。

    image.png

    给出Text1SEPText2,正常走transformer 仅保留masked self attention的decoder, 这样最后一层每个位置就能输出一个概率; 然后分别和对应的下一个词算损失。

    Fun-tuning

    运用少量的带标签数据对模型参数进行微调。

    输入

    将上一步中最后一个词的输出hl,作为下游监督学习的输入。

    损失计算

    按照有监督的标签,进行损失计算得到L2(C) 。

    image.png

    将 L2(C)和 L2(C)求和,即为做后的损失,如下图所示:

    image.png

    优点

    • 有效的利用无监督数据对模型进行充分的训练,模型有很强的文本理解和分析能力,
    • 迁移学习,在第二阶段目标任务上添加简单的输出层,就能达到很高的准确度。

    缺点

    单向Transformer,不能利用当前词后面词的语义。但是好像翻译场景不能利用,就是不知道后面词是什么?真的这样吗??

    相关文章

      网友评论

          本文标题:深度语言模型-GPT

          本文链接:https://www.haomeiwen.com/subject/jqlztltx.html