大语言模型系列-T5


前言

目前已经讲解了目前LLM的三大流派的两个起始模型:GPT-1(Decoder only)、BERT(Encoder only),但是这两个模型针对不同下游不同的NLP任务时还需要进行一定的修改(如添加一些线性层),Google经过庞大的预训练,最终提出了一个通用框架T5模型(Encoder-Decoder), 将所有NLP任务转化为text to text任务,微调时无需再修改模型,直接在原模型上微调即可。

ps:T5最核心的理念是:使用前缀任务声明及文本答案生成,统一所有自然语言处理任务的输入和输出。在此之前的几乎所有预训练语言模型,在下游任务微调过程中都需要添加非线性层,将模型的输出转化为任务指定的输出格式。

下图所示为T5的输入格式和输出格式。绿色部分表示翻译任务,红色和黄色部分分别表示CoLA(单句分类)和STS-B(文本语义相似度)任务,蓝色部分表示摘要生成任务,左侧的框表示T5的输入样例,右侧的框则是对应的输出结果。
在这里插入图片描述
T5唯一需要做的就是在输入数据前加上任务声明前缀,如:

  • 英德翻译:translate English to German:That is good.
  • 情感分类:sentiment:This movie is terrible!

提示:以下是本篇文章正文内容,下面内容可供参考

一、T5的网络结构和流程

T5模型和原始的Transformer结构基本一致,具体的做了如下几点改动:

  1. 简化了Layer normalization,其中激活只是重新调整,没有添加附加偏差。
    请添加图片描述
  2. 使用了简化的相对位置embedding,即每个位置对应一个数值而不是向量,原来的Transformer采用sin/cos习得position embeddings,而T5将(key和query)相对位置的数值加在attention softmax之前的logits上,每个head的有自己的position embeddings,所有的层共享一套position embeddings,每一层都计算一次,让模型对位置更加敏感。

在这里插入图片描述

二、T5的预训练过程

T5对预训练目标进行了大范围探索,总共从四个层面来进行比较:在这里插入图片描述

  1. 第一个方面,高层次方法(自监督的预训练方法)对比,总共三种方法:

    - Prefix language modeling,从左到右顺序预测
    - BERT-style 式(Masked LM),就是像BERT一样将一部分给破坏掉,然后还原出来,其效果最好
    - Deshuffling(顺序还原)式,就是将文本打乱,然后还原出来
    

    在这里插入图片描述
    结论:发现 BERT-style 式预训练方法最好,因此下一个开始探索文本破坏策略

  2. 第二方面,对文本一部分进行破坏时的策略,也分三种方法:

    - Masked法,将被破坏token换成特殊字符,如[M]
    - Replace spans法,把Mask 法中相邻 [M] 都合成了一个特殊符,每一小段替换一个特殊符,提高计算效率,其效果最好
    - Drop法,没有替换操作,直接随机丢弃一些字符
    

    结论:Replace Spans 法胜出,因此下一个开始探索文本破坏的百分比

  3. 第三方面,探索对文本进行多大程度的破坏,挑了 4 个值:10%,15%,25%,50%,最后发现还是BERT的15%效果最好
    在这里插入图片描述

  4. 第四方面,Replace Spans需要决定对大概多长的小段进行破坏,于是对不同长度进行探索:2,3,5,10这四个值,最后发现Span length=3时的效果最好
    在这里插入图片描述

此时就获得了完整的 T5 模型及其训练方法:

  • Transformer Encoder-Decoder 模型;
  • BERT-style 式的文本破坏方法;
  • Replace Spans 的文本破坏策略;
  • 15 %的文本破坏比;
  • Replace Spans破坏时小段长度为3。

三、其他训练结论

  1. 网络结构(Architectures)

    - 原始的Transformer结构表现最好
    - encoder-decoder结构和BERT、GPT的计算量差不多
    - 共享encoder和decoder的参数没有使效果差太多
    
  2. 无监督目标(Unsupervised objectives)

    - 自编码(encoder-decoder)和自回归(decoder)的效果差不多
    - 推荐选择更短目标序列的目标函数,提高计算效率
    
  3. 数据集(Datasets)

    - 在领域内进行无监督训练可以提升一些任务的效果,但在一个小领域数据上重复训练会降低效果
    - Large、diverse的数据集效果最好
    
  4. 训练策略(Training strategies)

    - 精调时更新所有参数 > 更新部分参数
    - 在多个任务上预训练之后微调 = 无监督预训练
    
  5. 模型缩放(Scaling)

    - 在小模型上训练更多数据 < 用少量步数训练更大的模型
    - 从一个预训练模型上微调多个模型后集成 < 分开预训练+微调后集成
    

总结

Google利用其庞大资源,给其他研究者带来了LLM领域新的研究方向和思路。

在这里插入图片描述

  • 20
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
语言模型自然语言处理领域的一个热门研究方向。以下是目前大语言模型的一些相关工作: 1. GPT系列:GPT(Generative Pre-trained Transformer)是OpenAI公司开发的一系列基于Transformer的大型语言模型,包括GPT、GPT-2和GPT-3等。这些模型在自然语言生成、文本分类、问答系统等任务上都取得了很好的效果。 2. BERT:BERT(Bidirectional Encoder Representations from Transformers)是Google开发的一种预训练的大型语言模型,它在自然语言处理领域取得了很好的效果,被广泛应用于文本分类、问答系统、语义相似度等任务上。 3. XLNet:XLNet是CMU和Google Brain联合开发的一种预训练的大型语言模型,它采用了自回归和自编码两种方式来预训练模型,可以更好地处理长文本序列和多种关系。 4. RoBERTa:RoBERTa(Robustly Optimized BERT Pretraining Approach)是Facebook开发的一种基于BERT的预训练语言模型,通过对BERT的改进和优化,取得了更好的效果。 5. T5T5(Text-to-Text Transfer Transformer)是Google开发的一种基于Transformer的模型,可以将各种自然语言处理任务转化为文本到文本的转换任务,可用于机器翻译、文本摘要、问答系统等任务。 6. UniLM:UniLM是微软开发的一种基于Transformer的预训练语言模型,可以同时适应多种自然语言处理任务,如文本生成、文本分类、语言推理等。 以上是目前大语言模型的一些相关工作,这些模型的出现和发展,极大地推动了自然语言处理领域的发展,并在多个自然语言处理任务中取得了令人瞩目的成果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学海一叶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值