ALBERT凳子还没坐热,GLUE就又换了老大,Google T5 (Text-to-Text Transfer Transformer)大力出奇迹,威震天在角落默不作声。

简介

这次的T5模型虽然名字和BERT+系列不一样,但底子里还是差不多的。给我的感觉就是大型Seq2Seq的BERT+干净的数据+多任务+一些改动。论文的作者深入对比了不同的预训练目标、模型结构、无监督数据集、迁移方法、NLU任务,最终拼成了T5。文章除去reference一共34页,可以说很良心地剖析了transformer的效果,建议同学们根据自己的任务和时间慢慢读。

来感受一下T5的size:

贴一下在GLUE和SUPERGLUE的登顶照:

1. 模型

输入和输出

和GPT2一样,T5把所有的NLP问题归结为了“text-to-text”的任务,下图展示了T5在翻译、分类、相似度、摘要任务上的输入输出样例:

Relative position embeddings (PE)

T5使用了简化的相对位置embeding,即每个位置对应一个数值而不是向量,将(key和query)相对位置的数值加在attention softmax之前的logits上,每个head的有自己的PE,所有的层共享一套PE。个人认为这种方式更好一点,直接在计算attention weight的时候加入位置信息,而且每一层都加一次,让模型对位置更加敏感。

2. 数据

Colossal Clean Crawled Corpus (C4)

作者选取了Common Crawl数据集,这个数据集每周大约爬取20TB的WEB数据。虽然数据集已经抽取了文本,但实际上并不干净,里面还包含了很多非自然语言的东西,比如错误消息、菜单、重复文本,用过脏数据的同学一定深有体会。于是本文对数据进行了比较细致的处理:

  • 只取结尾有标点的句子

  • 去掉包含脏话的网页

  • 有很多页面包含"enable Javascript"的提示,去掉包含Javascript的句子

  • "lorem ipsum"是一个测试网页排版的拉丁文,去掉包含这个占位符的网页

  • 去掉包含代码片段的网页

  • 以三句为一个片段进行去重

  • 去掉非英文的网页

经过上述处理后最终生成了750GB的数据集C4,并且在TensorFlow Datasets开源了。

3. 任务及数据格式

任务

机器翻译、问答、生成式摘要、文本分类(单句&双句)

数据格式

  • 输入:参考GPT2,直接把任务名称当作prefix和输入拼在一起

  • 输出:分类任务(如推断),需要输出"entailment", "neutral", "contradiction"这三种文本,否则都算错;回归任务输出str类型的浮点数。还有其他任务,请需要的同学前往附录D参考~

4. 训练

预训练

  • 参考SpanBERT,mask掉15%,平均长度为3的span

  • 训练更长步数,1百万步*1024个样本

  • 使用Multi-task预训练,即混入在无监督数据中混入一定比例的任务数据

精调

  • 也是Multi-task,将所有GLUE/SuperGLUE的数据拼在一起变成精调一个task,减少过拟合,但同时也会牺牲一些精度

  • batch size减小到8

  • 其实最后同时进行了多任务精调和单独精调,根据dev集选择最好的结果

解码

大部分使用Greedy decoding,对于输出句子较长的任务使用beam search

5. 结论

Architectures

  1. 原始的Transformer结构表现最好

  2. encoder-decoder结构和BERT、GPT的计算量差不多

  3. 共享encoder和decoder的参数没有使效果差太多

Unsupervised objectives

  1. 自编码和自回归的效果差不多

  2. 作者推荐选择更短目标序列的目标函数,提高计算效率

Datasets

  1. 在领域内进行无监督训练可以提升一些任务的效果,但在一个小领域数据上重复训练会降低效果

  2. Large、diverse的数据集最香了

Training strategies

  1. 精调时更新所有参数 > 更新部分参数

  2. 在多个任务上预训练之后精调 = 无监督预训练

Scaling

  1. 在小模型上训练更多数据 < 用少量步数训练更大的模型

  2. 从一个预训练模型上精调多个模型后集成 < 分开预训练+精调后集成

总体感觉T5除了position embedding之外没什么新的东西,在GLUE以及机器翻译上的提升都很有限,但作者本来的意图也是做一个全面的分析,砸百万美元替大家排忧解难,此处应有掌声。

从最近的研究来看,目前模型复杂度和性能真的是很难平衡,但今天也听到了量子计算的福音,科技永远向前,希望NLP越来越好。


往期精彩回顾适合初学者入门人工智能的路线及资料下载机器学习及深度学习笔记等资料打印机器学习在线手册深度学习笔记专辑《统计学习方法》的代码复现专辑
AI基础下载机器学习的数学基础专辑
获取一折本站知识星球优惠券,复制链接直接打开:
https://t.zsxq.com/y7uvZF6
本站qq群704220115。加入微信群请扫码:

【NLP】Google T5速读相关推荐

  1. 小哥凭“量子速读”绝技吸粉59万:看街景图0.1秒,“啪的一下”在世界地图精准找到!...

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 明敏 金磊 发自 凹非寺 量子位 | 公众号 QbitAI 一张图在 ...

  2. 2018-2019-1 20189215 书籍速读

    书籍.课程速读提问:<文献管理与信息分析>.<构建之法>.<深入理解计算机系统>.<从问题到程序>还未读. <文献管理与信息分析> 本课程主 ...

  3. KPCB 女皇 2014 年互联网趋势报告新鲜速读

    小雨Christine • 18:09 / 29 KPCB 女皇 2014 年互联网趋势报告新鲜速读 几小时前,KPCB 的"互联网女皇" Mary Meeker 发布了 2014 ...

  4. 【论文速读】城市自动驾驶应用的概率语义地图

    点云PCL免费知识星球,点云论文速读. 标题:Probabilistic Semantic Mapping for Urban Autonomous Driving Applications 作者:D ...

  5. 【论文速读】RandLA-Net大规模点云的高效语义分割

    点云PCL免费知识星球,点云论文速读. 文章:RandLA-Net: Efficient Semantic Segmentation of Large-Scale Point Clouds 作者:Qi ...

  6. 【论文速读】基于投影方法的激光雷达点云处理比较

    点云PCL免费知识星球,点云论文速读. 文章:LiDAR point-cloud processing based on projection methods: a comparison 作者:Gui ...

  7. 【论文速读】基于图像的伪激光雷达三维目标检测

    点云PCL免费知识星球,点云论文速读. 标题:End-to-End Pseudo-LiDAR for Image-Based 3D Object Detection 作者:Rui Qian, Divy ...

  8. 【点云论文速读】最佳点云分割分析

    点云PCL免费知识星球,点云论文速读. 标题:Learning to Optimally Segment Point Clouds 作者:Peiyun Hu, David Held 星球ID:part ...

  9. 【点云论文速读】点云高质量3D表面重建

    点云PCL免费知识星球,点云论文速读. 标题:Local Implicit Grid Representations for 3D Scenes 作者:Chiyu "Max" Ji ...

最新文章

  1. (解释)单片机与各种外围设备(Flash、RAM、网络控制器、A/D、传感器、MCU等)进行直接串行通信通常采用( D)接口
  2. Gitlab 官方对整个数据删除事件的详细说明
  3. python怎么做折线图_python怎么画折线图
  4. 我的jQuery动态表格插件二
  5. kaggle入门-Bike Sharing Demand自行车需求预测
  6. SAP Hybris的build callback和SAP ABAP的SGEN事务码
  7. ASP.NET MVC HandleError异常过滤器过滤器用法
  8. leetcode543. 二叉树的直径
  9. 这里有一个让你变成技术大牛的机会
  10. zend studio配置php手册
  11. 有了 Git 这个操作,我再也不怕代码混乱了!
  12. 压缩与解压缩 与多个安装文件的合并问题
  13. 一个奇怪的DNS服务器故障
  14. esp32 cam 内网穿透 视频传输
  15. jq ajax传参的两种方式
  16. SonarQube代码质量管理平台 的安装、配置与使用
  17. 初学者应该选择什么样吉他桶型?新手入门畅销民谣吉他牌子推荐
  18. gaynbsp;andnbsp;lalanbsp;超短小说
  19. 【学习笔记】状态转移矩阵
  20. Android - BlueTooth BLE 之 Central 与 Peripheral

热门文章

  1. 获取某几个分类下的前N条数据 mssql语句
  2. Linux下安装 Indy 到 Lazarus
  3. [Python3] 003 变量类型概述 数字类型详叙
  4. JQuery的$和其它JS发生冲突的快速解决方法
  5. The prefix context for element context:component-scan is not bound.
  6. MeteoInfoLab脚本示例:TRMM 3B43 HDF数据
  7. hdu 4046 Panda 线段树
  8. Windows Azure 解决方案系列: 能源监测减少支出,通过托管平台拓展业务
  9. jsp stc_为什么说jsp的本质是servlet?
  10. 机器人学习--视觉定位数据集介绍