面向NLP场景的深度迁移学习框架 PAI-EasyTransfer -阿里云开发者社区

开发者社区> 阿里开源> 正文
登录阅读全文

面向NLP场景的深度迁移学习框架 PAI-EasyTransfer

简介: 阿里巴巴高级算法专家邱明辉在阿里云开发者社区特别栏目《周二开源日》直播中,为大家带来PAI-EasyTransfer-面向NLP场景的深度迁移学习框架的介绍,内容包括EasyTransfer框架背景,框架的易用性和高性能,框架支持的算法,以及框架的产品化。本文为直播内容文字整理,看直播回放,请点击文首链接~

观看精彩回放

一、EasyTransfer框架背景

什么是迁移学习?

迁移学习的核心的思路是把一个领域的知识迁移到其他的领域。

它主要能解决什么样的问题?

我们在真实业务应用的场景里面,虽然数据很多,但是通常标注会很少。然而深度学习的成功一般离不开海量的标注数据,所以这时候我们需要考虑迁移学习。它可以把相关领域的知识迁移到标注少的目标领域。特别是在自然语言处理领域,迁移学习有非常多的应用。目前比较流行的预训练的语言模型,像Bert和T5,就是利用海量的数据预训练了一个通用的模型,然后再把它的知识迁移到下游的场景。迁移学习会是驱动下一个工业应用成功的最主要的驱动力。

image.png

我们开发深度迁移学习框架主要是为了解决几个用户的痛点。

第一个是,超大规模预训练模型能效如何提升。

第二个是,业务场景多样化,如何做好迁移学习。最后,我们从算法的设计到开发落地其实是很长的一个过程。所以从训练到部署,如果我们能提供一体化的解决方案,在真实业务场景当中,会使用的非常方便。所以从这三个痛点和挑战出发,我们设计了这么一个深度迁移学习的框架PAI-EasyTransfer。

它主要有几个亮点:

第一,易用且高性能。模块化(IO, Layers, Models) 高效的分布式用户分层,提高用户体验。

第二,应用导向。预训练模型库ModelZoo,应用库AppZoo,支持五种迁移学习范 式,面向应用,零基础入门。

第三,产品化。无缝对接PAI生态产品:PAI Studio 组件,PAI DSW开发, PAI DLC云原 生训练平台,PAI EAS线上服务。如下图所示,和现有行业上的一些框架对比,我们的框架是有些优势的。

image.png

下面介绍一下我们的工具的整体的一个框架。大家可以看到,我们目前支持的主流的5种迁移学习方式,基本上涵盖了所有主流的方式。我们的框架搭建完的话,是可以无缝对接PAI的一些产品的,有PAI的组件,还有一些开发的模块,导出的模型,是直接可以对接我们的服务。从训练到部署,我们可以提供一站式的服务。下面会详细的介绍一下我们框架的4大类的核心的功能:

•易用且高性能的框架

•五大迁移学习范式

•丰富的AppZoo

•无缝对接PAI产品生态。 

 image.png

二、框架的易用性和高性能

 

首先在易用性上面,我们对深度学习常用的模块做了一些抽象。所以在我们这个框架里面,有Layers这么一个概念,我们把常用的这些模块都封装好了,你可以把相应的内容直接拿出来,跟搭积木一样的把这些内容都搭在一起。右图是我们常用的pipeline,自由的构建相应的模块,这样就可以搭成相应的模型。这里给了一个自定义网络的示例,根据我们的框架你可以自己制定一个网络结构。另外,还给了一个模型训练示例。可以看到整个训练的形式也是比较简单的。除了制定自己的模型以外,还可以直接把modelzoo里面的模型直接拖出来使用。

image.png

同时,我们对分布式也做了一些优化。主要的成果有:

• 优化了LAMB+GA,采用自动混合精度训练,编译优化和高效的分布式策略,比社区版在运算速度上快4倍多

• 优化了参数配置:只需简单的参数,自动给出合理的配置,达到线性加速比(4倍卡数收敛仅需原来的1/4时间)。所以在分布式收敛这一块,我们公司是做的比较好的。

image.png

三、框架支持的算法

 

刚才说过了我们支持4类迁移学习的范式。我们可以根据应用场景的数据的情况来选择不同的迁移学习算法,来应用到具体场景里面去。


如下图所示,这里大概分了两块。如果要提升业务模型的效果,可以考虑前面这4种。在这个基础之上,如果要进一步提升模型的效率,可以考虑Model-based TL。我们在这5个方向的迁移学习范式沉淀了大概有10多种的创新算法,提升模型效果和效率,落地业务并沉淀到框架。后续我们会陆续把它都开源出来。目前框架已经在阿里巴巴内部使用,已经支持了20多个业务,同时我们也在阿里云上出一些解决方案。

image.png

首先是Model Fine-tuning这个方向可以说是NLP上用的最多的一个迁移学习的范式。基本思路是说,高质量预训练模型让所 有下游应用场景收益,难点有:

• 超大规模的预训练模型支持

• 基于无监督数据构造预训练任务和Losses。

语言模型有:

• Ring All Reduce架构,128卡100倍数的加速

• 梳理海量弹内和弹外数据(150T数据)

• 设计不同的预训练loss以提升效果: SpanMask, WWM, Dynamic Mask, SOP等。

我们取得的成果有:

• 兼容主流预训练模型

• 产出PAI-ModelZoo,支持20+预训练模型

• 小蜜数据集取得第一的效果,业务上线

• 预训练的PAI-ALBERT++取得CLUE分类排行第一。

多模态模型包括:

• 图文搜索,图文质检,图文匹配等 (小蜜,淘宝直播,搜索)

• FashionBERT:电商领域图文预训练(Adaptive loss)。

取得的成果有:

• 效果超过SOTA,模型上线ICBU场景

• 创新工作录用SIGIR 2020文章一篇。

 image.png

我们用的比较多的一个场景,是纯NLP的场景。我们有预训练很多语言模型,然后把相关的语言模型在下游场景里面直接进行Fine-tune。在真实应用中也会有一些挑战和难点:

• 数据差异:很多电商场 景直接用效果不理想

• 任务差异:Context-QA 里效果也不理想。下面介绍预训练模型在电商场景的应用。电商数据Continual Pretrain模型的特点:

• 小蜜多语言:俄语,西语

• 搜索:query和title点击数据

• 四大Finetune应用场景:MRC, Sequence Labeling,Sentence Pair Classification, Text Classification。

我们取得的成果有:

• 业务:AliExpress的多个场景落地

• 创新:录用会议文章SIGIR 2019一篇上下文感知的BERT Finetune

• 创新:改造预训练模型,加入任务相关信 息,提出BERT with History Answer Embeddings。

image.png

第二种范式是Feature-based TL

它可以帮助优化标注数据较少的领域。难点包括:• 如何消除领域差异, 如何自动学习领域关 系来帮助迁移

• 多轮阅读理解数据不足,需要从单轮数据里迁移

• 小语种文本匹配数据 缺失,需要其他领域数据。

我们提出了特征迁移解决方案:自动学习领域关系(Domain Relationship Learning),迁移相关领域知识。它的核心点包括:

• 自动领域关系学习:相近领域输出模 型比较相似,不相近则不相似

• 对抗迁移:利用对抗学习,学到更好 的shared和specific特征

• 自研的HCNN模型:效果和效率兼优。我们取得的成果有:

• 提出CAT-BERT:公开多轮阅读理解榜第一,超过Google的BERT,AI2和科大讯飞 (2019.10)

• 提出DRSS-HCNN:上线多个业务场景,录用会议文章WSDM 2019一篇。

 image.png

第三种范式是Instance-based TL

样本迁移的难点是,如何选择合适样本,使源域和目标域分布一致,避免负迁移。我们提出自研的深度强化迁移学习算法:

• RL样本选择器:自动选择合适样本优化TL效果

• Wasserstein领域判别器:提供immediate rewards;提供state表征。取得的成果有:

• 在多个开源数据上取得SOTA效果,在小蜜QA场景和搜索排序场景落地

录用顶级数据挖掘会议KDD2019文章。

image.png

第四种范式是Model-based TL

• 大模型效果好,但是无 法满足业务性能需求:BERT(3亿)

• 现有工作:知识蒸馏

• 出发点:设计学生网络 拟合大模型的表达能力,效果/效率兼优

• 难点:手动设计网络, 任务无关的蒸馏。我们提出了自适应知识蒸馏:

• 基于神经网络架构搜索技术自动搜索合适特定任务的架构。

取得的成果有:

• 基础知识蒸馏:小蜜三个QA场景落地

• 推理速度提升29倍,参数仅为原来 1/10,Avg精度损失在2%以内

• 录用IJCAI 2020文章一篇。

image.png

第五种范式是Meta LearningFine-tuning BERT for multidomains

它的难点是,如何高效的学习元知识 (meta-knowledge)。

Meta Fine-Tuning的核心点包括:

• Learning from Typicality 对每个领域的样本计算权重,在训练 Meta-Leaner时重点学习典型样本

• Learning Domain-invariant Representations 附加学习Corrupted Domain Classifier,使BERT学习到的特征为领域无关的,即拥有跨领域迁移性。取得的成果有:

• 对BERT首先进行跨领域Meta Fine-tune,再针对每个领域Fine-tune,效果提升明显

• 录用IJCAI 2020文章一篇。

 image.png

我们对目前的一些主流的NLP的应用做了一些抽象,方便用户直接能用相关的NLP应用。我们的APPZoo的特点有:

第一,易用性。支持Web组件/命令行,用户只需配置少 量参数;

第二,丰富性。支持NLP各类应用10+;

第三,灵活。组件间串联,灵活对接开源各个预训练语言模型库。

image.png

再举一个简单的例子,比方说文本匹配。这个任务上有三个真实场景当中用的比较多的。第一个是BERT。第二个是DAM。第三个是HCNN。如图所示,通过一个PAI命令,把数据整成相应的输入格式,选择相应的模型就可以了。所以我们应用的形式也是非常简单的。

image.png

四、框架的产品化

我们这个框架是可以跟PAI的生态无缝对接的。目前比较常用的是这三种情况。

第一个是PAI Web Studio。用户根本不需要知道算法的细节是什么,直接可以把相应的组件拖出来。然后我们会有些默认的参数,当然你可以改相应的参数设置就可以直接训练并且部署相应的服务。

PAI组件的特点包括:

• 拖拽式建模,简单直观支持的组件:

• 数据序列化

• 文本向量化

• 文本匹配、分类。

第二个是PAI DSW。如果是资深的用户,可以用PAI DSW开发者模式:

• 导入easytransfer库

• 复用layers

• 复用分布式

• 用户仅需自定义模型。

第三个是PAI CMD。在PAI命令里面的话,可以支持一些常用的应用。你可以通过我们的配置文件做少量的改动,去修改模型的架构。如果要做复杂的定制化开发的话,还是建议用DSW。

image.png


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
+ 订阅

我们开放源码,更相信社区的力量。

官方博客
链接