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

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

观看精彩回放

一、EasyTransfer框架背景

什么是迁移学习?

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

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

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

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架构,128100倍数的加速

梳理海量弹内和弹外数据(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模型的特点:

小蜜多语言:俄语,西语

搜索:querytitle点击数据

四大Finetune应用场景:MRC Sequence LabelingSentence Pair Classification Text Classification

我们取得的成果有:

业务:AliExpress的多个场景落地

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

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

image.png

第二种范式是Feature-based TL

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

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

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

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

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

对抗迁移:利用对抗学习,学到更好 的sharedspecific特征

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

提出CAT-BERT:公开多轮阅读理解榜第一,超过GoogleBERTAI2和科大讯飞 (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

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

现有工作:知识蒸馏

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

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

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

取得的成果有:

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

推理速度提升29倍,参数仅为原来 1/10Avg精度损失在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


相关实践学习
使用PAI-EAS一键部署ChatGLM及LangChain应用
本场景中主要介绍如何使用模型在线服务(PAI-EAS)部署ChatGLM的AI-Web应用以及启动WebUI进行模型推理,并通过LangChain集成自己的业务数据。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
相关文章
|
5天前
|
机器学习/深度学习 自然语言处理 算法
面向自然语言处理的迁移学习(三)(5)
面向自然语言处理的迁移学习(三)
9 0
|
5天前
|
机器学习/深度学习 自然语言处理 数据可视化
面向自然语言处理的迁移学习(三)(2)
面向自然语言处理的迁移学习(三)
7 0
|
5天前
|
机器学习/深度学习 自然语言处理 数据可视化
面向自然语言处理的迁移学习(三)(1)
面向自然语言处理的迁移学习(三)
11 0
|
5天前
|
机器学习/深度学习 自然语言处理 机器人
面向自然语言处理的迁移学习(二)(4)
面向自然语言处理的迁移学习(二)
17 2
|
5天前
|
机器学习/深度学习 自然语言处理 数据可视化
面向自然语言处理的迁移学习(二)(3)
面向自然语言处理的迁移学习(二)
15 2
|
5天前
|
机器学习/深度学习 自然语言处理 数据可视化
面向自然语言处理的迁移学习(二)(2)
面向自然语言处理的迁移学习(二)
14 1
|
5天前
|
机器学习/深度学习 自然语言处理 数据可视化
面向自然语言处理的迁移学习(二)(1)
面向自然语言处理的迁移学习(二)
10 0
|
7天前
|
机器学习/深度学习 自然语言处理 算法
面向自然语言处理的迁移学习(一)(5)
面向自然语言处理的迁移学习(一)
27 1
|
7天前
|
机器学习/深度学习 自然语言处理 算法
面向自然语言处理的迁移学习(一)(4)
面向自然语言处理的迁移学习(一)
16 0
|
7天前
|
机器学习/深度学习 自然语言处理 算法
面向自然语言处理的迁移学习(一)(3)
面向自然语言处理的迁移学习(一)
21 3