当前位置: 首页 > 编程日记 > 正文

T5,一个探索迁移学习边界的模型

640?wx_fmt=png


作者 | Ajit Rajasekharan
译者 | 夕颜
出品 | AI科技大本营(ID:rgznai100)
【导读】10月,Google 在《Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer》这篇论文中提出了一个最新的预训练模型 T5(Text-To-Text Transfer Transformer),其参数量达到了 110 亿,完爆 Bert Large 模型,且在多项 NLP 任务中达到 SOTA 性能。有人说,这是一种将探索迁移学习能力边界的模型,它的意义究竟是什么?潜力还有多大?


T5是什么?

640?wx_fmt=png
T5 是一个文本到文本迁移 Transformer 模型,通过将所有任务统一视为一个输入文本并输出文本,其中任务类型作为描述符嵌入到输入中。该模型使单个模型可以执行各种各样的有监督任务,例如翻译、分类、Q&A、摘要和回归(例如,输出介于 1 到 5 之间两个句子之间的相似性得分。实际上,这是一个 21 类分类问题,如下所述)。该模型首先在大型语料库上进行无监督的预训练(像 BERT 中一样的隐蔽目标),然后进行有监督训练,其中包含代表所有这些任务的输入文本和相关带标签的数据,也就是文本(其中输入流中的特定标记“将英语翻译为法语”或“ stsb句子1:…句子2”,“问题” /“上下文”等对任务类型进行编码,如上图所示,模型经过训练输出与标记数据匹配的文本。)通过这种为监督学习指定输入和输出的方法,该模型在所有不同的任务之间共享其损失函数、解码器等。


T5的贡献是什么?

T5 模型通过将不同的任务编码为输入流中的文本指令,以统一的方式处理各种多对一和多对一 NLP 任务。这样一来,就可以在多种 NLP 任务中(例如翻译、分类、Q&A、摘要,甚至回归)有监督地训练单个模型(尽管实际上它实际上是一种分类)。
虽然这项工作是大规模 Q&A、总结等方面的最新技术成果,但主要贡献也不在于模型,因为这种形式的文本编码方法此前已经有 GPT2 这样的“前辈”存在,除了是在无监督文本情况下之外,它们使用的是相同的思想(因为 GPT2 不能进行分类或标记问题,而 T5 可以在有监督学习阶段进行)。
本文的目的主要是通过使用 T5 模型

  • 研究从大规模的无监督预训练到监督任务,与大规模利用转移学习相关的因素

在此过程中,性能指标也体现出迁移学习在某些语言理解(在人的层面上)任务上的局限性。虽然本文重点是解决未来研究的这些局限性,但在扩展语言理解(不仅是文本)上也有一些进展工作(例如,Yoshua Bengio 的 grounded language understanding https://openreview.net/pdf?id=rJeXCo0cYX)。这些新方法直接从文本解决了当前迁移学习方法的一些缺陷,如样本效率、常识理解、因果推理等。


论文的主要发现

  • 本论文主要关注基于 Transfomer 的模型(与基于 RNN 的序列模型相反)。基于编码器/解码器的 Transfomer 体系结构最适合 T5 模型中使用的文本到文本方法。通过在编码器和解码器之间共享参数计数,参数数量与诸如 BERT 的仅编码器模型相同,而性能没有明显下降。
  • 掩蔽目标(去噪)与 BERT 中使用的掩蔽目标(以及其变体,例如被掩盖的跨度)相同,其性能优于语言建模目标。
  • 最好在大型数据集上进行预训练,而不是小型数据集(尤其是在预训练中多次出现的数据时,对于大型数据集而言,这不是问题)。此外,对域内数据进行预训练还可以提高下游任务的性能。
  • 尽管计算量很大,但在微调过程中更新预训练模型的所有参数所达到的性能要优于仅更新几个参数(请参见下文的最终思路)。
  • 通过在更多数据上训练模型,训练更大的模型或使用组合方法,都可以提高性能。
  • 仅针对英语的预训练方法未在翻译中产生最先进的结果(法语、德语和罗马尼亚语;请参见下图),这表明这是一种与语言相关的方法。
  • 通过使用掩膜(去噪)进行预训练以在下游任务中使用提取的知识,知识提取能力似乎在模型从仅预测损坏的文本跨度中学习知识时受到限制。如前所述,这一发现表明学习方法不仅限于文本(例如,grounded language understanding)。


其他细节

  • 此模型的初始版本仅支持在 TPU 上运行。该链接(https://medium.com/@ajitrajasekharan/setting-up-a-tpu-node-in-google-cloud-step-by-step-instructions-2236ac2aacf7)将逐步介绍设置虚拟机和 TPU 节点的步骤。请注意,按照安装说明,使用具有正确的 Tensorflow 版本的 TPU 节点,以免发生错误。
  • 下图显示了使用“小”模型对输入进行解码的完整测试结果(有关说明,请参见 Github https://github.com/google-research/text-to-text-transfer-transformer#decode 的解码部分。本测试还包括不同大小的预训练模型测试。由于内存需求较大,我无法使用基本模型和大型模型。其中 Winograd schemas style 测试没有产生本论文的结果,不知道是什么问题。
640?wx_fmt=png
  • 这种文本到文本方法还带来了挑战,即该模型可能会不输出预期在测试阶段输出的单词之一。举例来说,在上述“可乐测试”(测试句子语法是可接受的/不可接受的)中,模型可能输出的是“选择1”或“选择2”以外的字符串。作者声称这种情况将被视为测试失败,虽然他们还未观察到这种情况。另外,模型对于相同的输入可能输出不同的结果,这在聚合时很明显。
  • 最后,现实中用于回归的模型只是 21 类分类。与真正的回归模型输出可以是一个连续的值不同,T5 模型预测值的范围为 1-5,增量 .2.。这与值为 0  结合产生 21 个值,本质上是 21 类分类问题。

最后的思考

尽管在较大的数据集上训练的较大模型可以继续提高某些标准 NLP 任务的性能,但从大型语料库上进行预训练中提取的通用知识似乎仍无法使得诸如 Winograd Schema 挑战(WSC)之类的任务的性能接近人类水平(100%)。看起来,至少有两种不同的方法可以解决此问题。
  • 继续扩大 T5 论文和其他相关工作所提出方法的规模或增加训练方法,例如通过不使用替代 tokens(由生成器网络输出)来更改当前的 masking words 预训练程序,并由鉴别器来预测 replacement。但所有这些方法仍然只在词的空间进行预测学习。
  • 尝试完全不同的预测下一个 token 的方法,不是在单词的空间中,而是在抽象表示的变换空间中。这项早期研究强调了现有预测模型词空间上面临的很多挑战,如需要大量的训练数据(样本无效),不能做 WSC 等任务所要求的常识和因果推理。在抽象空间进行预测的目标与词空间相反(或图像-像素空间),这样做该模型可以学习基本的因果变量,除了推理之外,这些因果变量还可以适应基本分布的变化(因果结构仍然保持不变),只需要很少的新训练样本即可,这是迁移学习的关键目标之一。
参考链接:
https://medium.com/@ajitrajasekharan/t5-a-model-that-explores-the-limits-of-transfer-learning-fb29844890b7

(*本文为AI科技大本营翻译文章,转载请微信联系 1092722531


精彩推荐



11.11惠不可挡!

BDTC 2019双十一豪礼大放送,凡11.11当天购买大会“单人票”,即可额外获得价值298元CSDN VIP年卡!(VIP年卡特权:全站免广告+600个资源免积分下载+学院千门课程免费看+购课9折)~

扫描下图二维码或点击阅读原文,领取你的VIP吧!

640?wx_fmt=png

推荐阅读

相关文章:

【Chat】实验 -- 实现 C/C++下TCP, 服务器/客户端 多人聊天室

本次实验利用TCP/IP, 语言环境为 C/C 利用套接字Socket编程,以及线程处理, 实现Server/CLient 之间多人的聊天系统的基本功能。 结果大致如: 下面贴上代码(参考参考...) Server 部分: 1 /* TCPdtd.cpp - main, TCPdayt…

TeamViewer介绍:远程控制计算机

TeamViewer是一个可以远程控制计算机的程序,它也可以进行远程文件传输。TeamViewer支持的平台比较多,如Windows, Mac, Linux, ChromeOs, Android, iOS等,最新发布版本为14.x,它有个人免费和商业付费两种。只要对方告诉你他的TeamV…

PyTorch攻势凶猛,程序员正在抛弃TensorFlow?

来源 | The Gradient译者 | 夕颜出品 | AI科技大本营(ID:rgznai100)自 2012 年深度学习重新获得重视以来,许多机器学习框架便争相成为研究人员和行业从业人员的新宠。从早期的学术成果 Caffe 和 Theano ,到背靠庞大工业支持的 PyT…

swift 错误集合 ------持续更新中

从今天开始凡是在用swift中遇到的错误都会在本博客持续更新 便于自己学习和快速开发 2017.7.20 如果你的程序写的有进入后台的方法,例如我的博客中点击home进入后台持续定位的那篇文章,发信进入后台后定位没有按得定时器规定的时间走,这…

【转载】【贪心】各种覆盖问题

1、独立区间问题 在N个区间里找出最多的互不覆盖的区间 对结束点进行排序,然后从结束点最小的区间开始进行选择即可 2、覆盖区间问题 给一个大区间,再给出N个小区间,求出最少用多少个区间可以把大区间覆盖完 先选出开始的一个,然后…

使用Python3发送邮件测试代码

SMTP(Simple Mail Trasfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,用它来控制信件的中转方式。Python3对SMTP的支持有smtplib和email两个模块,smtplib负责发送电子邮件, email负责组织邮件内…

swift 通知中心 进入后台多久会通知用户关闭此功能

//添加本地通知 func addLocalNotification() { //定义本地通知对象 let notification : UILocalNotification UILocalNotification() //设置调用时间 notification.fireDate NSDate.init(timeIntervalSinceNow: 1800.0)//通知触发的时间,10s以后 notification.…

Python之父退休,C语言之父与世长辞,各大编程语言创始人现状盘点

作者 | 年素清 编辑 | 伍杏玲 来源 | 程序人生(ID:coder_life)从世界上第一台计算机(ENIAC) 于1946年2月在美国诞生至今的七十多年里,涌现出了许多优秀的计算机编程语言。程序员们在使用它们编写程序的时候,一定很好奇…

linux修正系统错误指令fsck和badblocks

fsck [-t文件系统][-ACay]装置名称-t 指定文件系统-A 扫描需要的装置-a 自动修复检查到有问题的扇区-y 与-a类似-C 在检查过程中,显示进度********************************************************** EXT2/EXT3额外选项功能:-f 强制检查-D 针对文件系…

Ubuntu定时任务crontab命令介绍

通过Linux上的crontab命令,我们可以在规定的间隔时间执行指定的系统指令或脚本。时间间隔的单位可以是分钟、小时、日、月、周及以上的任意组合。 crontab默认在Ubuntu上是已经安装的,若未安装,则可执行以下命令进行安装: sudo …

swift 进入后台或者点击home键是程序进入后台后,持续定位

进入后台的方法 import UIKit UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate,CLLocationManagerDelegate { var locationManager : CLLocationManager? var window: UIWindow? var notificationDict NSDictionary() func applicationDidEnterBa…

求助:我有一辆机器人小车,怎么让它跑起来,还会避障、目标跟踪、路径规划?...

也许,你曾见过能灵活地绕开障碍物的它在桌子边缘“疯狂试探”的它它是谁?没错,它就是是英伟达推出的一款入门级人工智能小车——Jetbot ,估计对机器人,尤其是对车械感兴趣的朋友们一定对它不陌生。组装完成后能够通过摄…

Python-常用字符串转换实例

当字符串是:\u4e2d\u56fd >>>s[\u4e2d\u56fd,\u6e05\u534e\u5927\u5b66]>>>strs[0].decode(unicode_escape) #.encode("EUC_KR")>>>print str 中国 当字符串是: >>>print unichr(19996) 东 ord()支持unicode&…

什么是静态UItableView

iOS开发UI篇—简单介绍静态单元格的使用 iOS开发UI篇—简单介绍静态单元格的使用 一、实现效果与说明 说明:观察上面的展示效果,可以发现整个界面是由一个tableview来展示的,上面的数据都是固定的,且几乎不会改变。 要完成上面的…

Python3中PyMongo使用举例

MongoDB是一个基于分布式文件存储的开源数据库,由C语言编写,与平台无关,旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库中功能最丰富,最像关…

PyTorch踩过的12坑 | CSDN博文精选

作者 | hyk_1996 来源 | CSDN博客1. nn.Module.cuda() 和 Tensor.cuda() 的作用效果差异无论是对于模型还是数据,cuda()函数都能实现从CPU到GPU的内存迁移,但是他们的作用效果有所不同。对于nn.Module:model model.cuda() model.cuda() 上面两句能够达到…

解决ubuntu14.04下Qt 5.3.1下的QtCreator fcitx,ibus不能输入中文

2019独角兽企业重金招聘Python工程师标准>>> ubuntu 14.04从Qt官网下载的最新版qt,安装过程很顺利,但却发现没办法输入中文(我用的是 fcitx), 即使下载了fcitx-frontend-qt5和fcitx-frontend-qt4也还是没用。 想必是qt版本的原因吧…

实战:基于技术分析的Python算法交易

译者 | Tianyu 出品 | AI科技大本营(ID:rgznai100)本文是用 Python 做交易策略回测系列文章的第四篇。上个部分介绍了以下几个方面内容:介绍了 zipline 回测框架,并展示了如何回测基本的策略导入自定义的数据并使用 zipline评估交…

深度学习中的Dropout简介及实现

在训练神经网络模型时候,如果模型相对复杂即参数较多而训练样本相对较少,这时候训练出的模型可能对训练集中的数据拟合的比较好,但在测试集上的表现较差,即出现了过拟合的情况。这种情况下可以使用Dropout来降低过拟合的可能性进而…

swift中字符串截取方法(substring)

下面介绍2种swift的字符串截取方法,实际上用到了substringFromIndex,substringToIndex,substringWithRange 1.将String转化为NSString再截取,代码如下: var s"1234567890"var ns1(s as NSString).substringFromIndex(5) var ns2(s as NSString).substrin…

设置IE兼容模式

文件兼容性用于定义让IE如何编译你的网页。此文件解释文件兼容性,如何指定你网站的文件兼容性模式以及如何判断一个网页该使用的文件模式。 前言 为了帮助确保你的网页在所有未来的IE版本都有一致的外观,IE8引入了文件兼容性。在IE6中引入一个增设的兼容…

程序员的自我修养--链接、装载与库笔记:静态链接

1. 空间与地址分配 对于链接器来说,整个链接过程中,它就是将几个输入目标文件加工后合并成一个输出文件。测试代码a.c和b.c内容如下: // a.c extern int shared;int main() {int a 100;swap(&a, &shared); } // b.c int shared 1;void swap(int* a, in…

开启JAVA自学新篇章

MyEclipse Enterprise Workbench简称MyEclipse,是一款专门用于开发Java, J2EE的 Eclipse 插件集合,该软件不仅功能丰富而且强大,包括了完备的编码、调试、测试和发布功能,利用它我们可以在数据库和JavaEE的开发、发布以及应用程序…

12306系统的秒杀“艺术”:如何抗住100万人同时抢1万张票?

作者 | IT牧场 编辑 | 阿秃每到节假日期间,一二线城市返乡、外出游玩的人们几乎都面临着一个问题——抢火车票。虽然现在大多数情况下都能订到票,但是放票瞬间即无票的场景,相信大家都深有体会。尤其是春节期间,大家不仅使用 1230…

C#不错的扩展工具类

FSLibExtension.NET https://github.com/iccfish/FSLib.Extension WebEssentials2013 https://github.com/iccfish/WebEssentials2013

自己写的程序密码功能 ------数字功能

自己写的程序密码功能 ------数字功能 class LockedViewController: UIViewController { var dataBase:FMDatabase? var i 0 var passwordStr : String? var tempStr : String "" var numStr : String "" //初始输入密码 var reNumStr : String &…

程序员的自我修养--链接、装载与库笔记:Windows PE/COFF

1. Windows的二进制文件格式PE/COFF 在32位Windows平台下,微软引入了一种叫PE(Portable Executable)的可执行格式。作为Win32平台的标准可执行文件格式,PE有着跟ELF一样良好的平台扩展性和灵活性。PE文件格式事实上与ELF同根同源,它们都是由…

神州数码与神州控股、神州信息共同主办首届技术年会,透露出什么信号?

11 月 8 日,神州控股、神州数码集团、神州信息共同主办“数字中国 2019 技术年会”,聚焦云计算、大数据、人工智能、区块链、5G 等前沿技术创新与应用实践,众多领域的技术专家展开了深度交流,共同探讨数字时代的技术创新与协同发展…

osi七层协议和tcp/ip四层协议

(大部分内容为转载)OSI(Open System Interconnection)是一个开放性的通行系统互连参考模型,他是一个定义的非常好的协议规范,共包含七层协议。OSI七层协议是由ISO (International Standards Organization)在…

Swift中页面跳转与传值:

1.简单方式 首先,Swift的跳转可分为利用xib文件跳转与storyboard跳转两种方法,我这里选择使用storyboard的界面跳转方法。 1、通过在storyboard中拉button控件建立segue跳转。 2、通过presentViewController方法进行界面跳转。 这里需要注意presentV…