丰富的线上&线下活动,深入探索云世界
做任务,得社区积分和周边
最真实的开发者用云体验
让每位学生受益于普惠算力
让创作激发创新
资深技术专家手把手带教
遇见技术追梦人
技术交流,直击现场
海量开发者使用工具、手册,免费下载
极速、全面、稳定、安全的开源镜像
开发手册、白皮书、案例集等实战精华
为开发者定制的Chrome浏览器插件
尽管面向自然语言场景的深度迁移学习有很多的需求,目前开源社区还没有一个完善的框架,而且构建一个简单易用且高性能的框架有巨大挑战。
面对这三大挑战,PAI团队推出了EasyTransfer,一个简单易用且高性能的迁移学习框架。框架支持主流的迁移学习算法,支持自动混合精度、编译优化和高效的分布式数据/模型并行策略,适用于工业级的分布式应用场景。
值得一提的是,配合混合精度、编译优化和分布式策略,EasyTransfer支持的ALBERT模型比社区版的ALBERT在分布式训练的运算速度上快4倍多。
同时,经过了阿里内部10多个BU,20多个业务场景打磨,给NLP和迁移学习用户提供了多种便利,包括业界领先的高性能预训练工具链和预训练ModelZoo,丰富易用的AppZoo,高效的迁移学习算法,以及全面兼容阿里巴巴PAI生态产品,给用户提供一个从模型训练到部署的一站式服务。
阿里云机器学习PAI团队负责人林伟表示:本次开源EasyTransfer代码,希望把阿里能力赋能给更多的用户,降低NLP的预训练和知识迁移的门槛,同时也和更多伙伴一起深入合作打造一个简单,易用,高性能的NLP和迁移学习工具。
简单高性能的框架
语言模型预训练工具链
支持完整的预训练工具链,方便用户预训练语言模型如T5和BERT,基于该工具链产出的预训练模型在中文CLUE榜单和英文SuperGLUE榜单取得很好的成绩。
丰富且高质量的预训练模型ModelZoo
支持PAI-ModelZoo,支持Bert,Albert,Roberta,XLNet,T5等主流模型的ContinuePretrain和Finetune。同时支持自研的多模态模型服装行业的Fashionbert等。
丰富且易用的应用AppZoo支持主流的NLP应用和自研的模型应用,比方说文本匹配下支持DAM++、HCNN等单塔模型,以及BERT双塔+向量召回模型;阅读理解下支持BERT-HAE等模型。
自动知识蒸馏工具
兼容PAI生态产品
框架基于PAI-TF开发,用户通过简单的代码或配置文件修改,就可以使用PAI自研高效的分布式训练,编译优化等特性;同时框架完美兼容PAI生态的产品,包括PAIWeb组件(PAIStudio),开发平台(PAIDSW),和PAIServing平台(PAIEAS)。
EasyTransfer的整体框架如下图所示,在设计上尽可能的简化了深度迁移学习的算法开发难度。框架抽象了常用的IO,layers,losses,optimizers,models,用户可以基于这些接口开发模型,也可以直接接入预训练模型库ModelZoo快速建模。框架支持五种迁移学习(TL)范式,modelfinetuning,feature-basedTL,instance-basedTL,model-basedTL和metalearning。同时,框架集成了AppZoo,支持主流的NLP应用,方便用户搭建常用的NLP算法应用。最后,框架无缝兼容PAI生态的产品,给用户从训练到部署带来一站式的体验。
下面详细介绍下EasyTransfer框架的核心功能。
高性能分布式框架
EasyTransfer框架支持工业级的分布式应用场景,改善了分布式优化器,配合自动混合精度,编译优化,和高效的分布式数据/模型并行策略,PAI-ALBERT做到比社区版的ALBERT在多机多卡分布式训练的运算速度上快4倍多。
丰富的ModelZoo
框架提供了一套预训练语言模型的工具供用户自定义自己的预训练模型,同时提供了预训练语言模型库ModelZoo供用户直接调用。目前支持了20+预训练模型,其中在PAI平台上预训练的PAI-ALBERT-zh取得中文CLUE榜单第一名,PAI-ALBERT-en-large取得英文SuperGLUE第二名的好成绩。下面是详细的预训练模型列表:
预训练模型在CLUE榜单的效果:
SuperGLUE的效果:
丰富的AppZoo
EasyTransfer封装了高度易用、灵活且学习成本低的AppZoo,支持用户在仅用几行命令的条件下“大规模”运行“前沿”的开源与自研算法,即可迅速接入不同场景和业务数据下的NLP应用,包括文本向量化、匹配、分类、阅读理解和序列标注等。
高效的迁移学习算法
EasyTransfer框架支持所有主流的迁移学习范式,包括ModelFine-tuning,Feature-basedTL,Instance-basedTL,Model-basedTL和MetaLearning。基于这些迁移学习范式开发了10多种算法,在阿里的业务实践中取得了良好效果的效果。后续所有的算法都会开源到EasyTransfer代码库里。在具体应用的时候,用户可以根据下图来选择一种迁移学习范式来测试效果。
预训练语言模型
自然语言处理的一大热点工作就是预训练语言模型比方说BERT,ALBERT等,这类模型在各大自然语言处理场景都取得了非常不错的效果。为了更好的支持用户使用预训练语言模型,我们在新版的迁移学习框架EasyTransfer里植入了一套预训练语言模型的标准范式和预训练语言模型库ModelZoo。传统Albert为了减少参数总量,取消了bert的encoder堆叠的方式,转而采用encoder循环的方式,如下图所示。全循环方式在下游任务上表现并不十分理想,于是我们将全循环改为了在2层堆叠的encoder上全循环。然后我们基于英文C4数据,重新对Albertxxlarge进行预训练。在预训练的过程中,我们仅仅使用MLMloss,配合WholeWordMasking,基于EasyTransfer的Trainonthefly功能,我们实现了dynamiconlinemasking,即可以在每次读入原始句子的同时动态生成需要masking的tokens。我们最终的预训练模型PAI-ALBERT-en-large在SuperGLUE榜单上取得国际第二,国内第一的成绩,模型参数仅仅为第一名GoogleT5的1/10,效果差距在3.5%以内。后续我们会继续优化模型框架,争取以1/5的模型参数达到比T5更好的效果。
多模态模型FashionBERT
随着Web技术发展,互联网上包含大量的多模态信息,包括文本,图像,语音,视频等。从海量多模态信息搜索出重要信息一直是学术界研究重点。多模态匹配核心就是图文匹配技术(TextandImageMatching),这也是一项基础研究,在非常多的领域有很多应用,例如图文检索(Cross-modalityIR),图像标题生成(ImageCaption),图像问答系统(VisionQuestionAnswering),图像知识推理(VisualCommonsenseReasoning)。但是目前学术界研究重点放在通用领域的多模态研究,针对电商领域的多模态研究相对较少。基于此,我们和阿里ICBU团队合作提出了FashionBERT多模态预训练模型,针对电商领域的图文信息进行预训练的研究,在多个跨模态检索和图文匹配等业务场景都有成功的应用。模型架构图如下所示。该工作提出了AdaptiveLoss,用于平衡图文匹配,纯图片,和纯文本三部分loss。
任务自适应的知识蒸馏
预训练模型从海量无监督数据中提取通用知识,并通过知识迁移的方法提升下游任务的效果,在场景里取得了优异的效果。通常预训练模型尺寸越大,学习到的知识表征对下游任务越有效,带来的指标提升也越明显。然而大模型显然无法满足工业界应用的时效性需求,因此需要考虑模型压缩。我们和阿里智能计算团队合作提出了一种全新的压缩方法AdaBERT,利用可微神经架构搜索(DifferentiableNeuralArchitectureSearch)自动地将BERT压缩成任务自适应的小型模型。
在这个过程中,我们将BERT作为老师模型,提炼它在目标任务上有用的知识;在这些知识的指导下,我们自适应地搜索一个适合目标任务的网络结构,压缩得到小规模的学生模型。我们在多个NLP公开任务上进行了实验评估,结果显示经由AdaBERT压缩后的小模型在保证精读相当的同时,推理速度比原始BERT快12.7到29.3倍,参数规模比原始BERT小11.5到17.0倍。
QA场景领域关系学习
早在2017年,我们就在阿里小蜜问答场景里面尝试了迁移学习,我们主要侧重于DNNbasedSupervisedTL。这类算法主要有两种框架,一个是Fully-shared(FS),另外一个是Specific-shared(SS)。两者最大的差别是前者只考虑了sharedrepresentation,而后者考虑了specificrepresentation。通常来说SS的模型效果比FS效果好,因为FS可以看作是SS的一个特例。对于SS来说,最理想的情况下是shared的部分表示的是两个领域的共性,specific的部分表示的是特性。然而往往我们发现要达到这样的效果很难,于是我们考虑用一个adversarialloss和domaincorrelation来协助模型学好这两部分特征。基于此,我们提出了一个新的算法,hCNN-DRSS,架构如下所示:
我们将这个算法应用在了小蜜的实际业务场景中,在多个业务场景里(AliExpress,万象,Lazada)取得了不错的效果。
强化迁移学习ReinforcedTransferLearning
迁移学习的有效性,很大程度上取决于sourcedomain和targetdomain之间的gap,如果gap比较大,那么迁移很可能是无效的。在小蜜QA场景,如果直接把Quora的textmatching数据迁移过来,有很多是不太合适的。我们在小蜜的QA场景,基于Actor-Critic算法,搭建了一个通用的强化迁移学习框架,用RL来做样本选择,帮助TL模型取得更好的效果。整个模型分三部分,基础QA模型,迁移学习模型(TL)和强化学习模型(RL)。其中RL的policyfunction负责选出高质量的样本(actions),TL模型在选出来的样本上训练QA模型并提供反馈给RL,RL根据反馈(reward)来更新actions。该框架训练的模型在双11AliExpress的俄语和西语匹配模型,在西语和俄语的匹配准确率都取得了非常不错的提升。
元调优MetaFine-tuning
预训练语言模型的广泛应用,使得Pre-training+Fine-tuning的两阶段训练模型成为主流。我们注意到,在fine-tuning阶段,模型参数仅在特定领域、特定数据集上fine-tune,没有考虑到跨领域数据的迁移调优效果。元调优(MetaFine-tuning)算法借鉴Meta-learning的思想,旨在学习预训练语言模型跨领域的meta-learner,从而使得学习的meta-learner可以快速迁移到特定领域的任务上。这一算法学习训练数据样本的跨领域typicality(即可迁移性),同时在预训练语言模型中增加domaincorruptionclassifier,使得模型更多地学习到领域无关的特征(domain-invariantrepresentations)。
我们将该fine-tuning算法应用于BERT,在自然语言推理和情感分析等多个任务上进行了实验。实验结果表明,元调优算法在这些任务上都优于BERT的原始fine-tuning算法和基于transferlearning的fine-tuning算法。
元知识蒸馏Meta-KnowledgeDistillation
最后,EasyTransfer工具是中文CLUE社区官方推荐的toolkit。同时,阿里云天池平台将携手CLUE社区打造一个多任务语义理解的大赛,EasyTransfer为默认的开发工具,用户可以基于EasyTransfer轻松搭建多任务的baseline和进行建模和优化,敬请大家期待。