简单易用高性能!一文了解开源迁移学习框架EasyTransfer

本文涉及的产品
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
交互式建模 PAI-DSW,每月250计算时 3个月
模型训练 PAI-DLC,100CU*H 3个月
简介: 近日,阿里云正式开源了深度迁移学习框架EasyTransfer,这是业界首个面向NLP场景的深度迁移学习框架。该框架由阿里云机器学习PAI团队研发,让自然语言处理场景的模型预训练和迁移学习开发与部署更加简单和高效。本文将对EasyTransfer进行深度解读。开源地址:https://github.com/alibaba/EasyTransfer

image.png
面向自然语言处理场景的深度迁移学习在现实场景里有巨大的需求,因为大量新的领域不断涌现,传统的机器学习需要对每个领域都积累大量训练数据,这将会耗费大量标注的人力与物力。深度迁移学习技术可以将源领域学到的知识迁移到新的领域的任务,进而大大减少标注的资源。

尽管面向自然语言场景的深度迁移学习有很多的需求,目前开源社区还没有一个完善的框架,而且构建一个简单易用且高性能的框架有巨大挑战。

  • 首先,预训练模型加知识迁移现在是主流的NLP应用模式,通常预训练模型尺寸越大学习到的知识表征越有效,然而超大的模型给框架的分布式架构带来了巨大挑战。如何提供一个高性能的分布式架构,从而有效支持超大规模的模型训练。
  • 其次,用户应用场景的多样性很高,单一的迁移学习算法无法适用,如何提供一个完备的迁移学习工具来提升下游场景的效果。
  • 第三,从算法开发到业务落地通常需要很长的链路,如何提供一个简单易用的从模型训练到部署的一站式服务。

面对这三大挑战,PAI团队推出了EasyTransfer,一个简单易用且高性能的迁移学习框架。框架支持主流的迁移学习算法,支持自动混合精度、编译优化和高效的分布式数据/模型并行策略,适用于工业级的分布式应用场景。

值得一提的是,配合混合精度、编译优化和分布式策略,EasyTransfer支持的ALBERT模型比社区版的ALBERT在分布式训练的运算速度上快4倍多。

同时,经过了阿里内部10多个BU,20多个业务场景打磨,给NLP和迁移学习用户提供了多种便利,包括业界领先的高性能预训练工具链和预训练ModelZoo,丰富易用的AppZoo,高效的迁移学习算法,以及全面兼容阿里巴巴PAI生态产品,给用户提供一个从模型训练到部署的一站式服务。

阿里云机器学习PAI团队负责人林伟表示:本次开源EasyTransfer代码,希望把阿里能力赋能给更多的用户,降低NLP的预训练和知识迁移的门槛,同时也和更多伙伴一起深入合作打造一个简单,易用,高性能的NLP和迁移学习工具。

image.png

一 EasyTransfer六大亮点

简单高性能的框架

屏蔽复杂的底层实现,用户只需关注模型的逻辑结构,降低了NLP和迁移学习的入门门槛;同时,框架支持工业级的分布式应用场景,改善了分布式优化器,配合自动混合精度,编译优化,和高效的分布式数据/模型并行策略,做到比社区版的多机多卡分布式训练在运算速度上快4倍多。

语言模型预训练工具链

支持完整的预训练工具链,方便用户预训练语言模型如T5和BERT,基于该工具链产出的预训练模型在中文CLUE 榜单和英文SuperGLUE 榜单取得很好的成绩。

丰富且高质量的预训练模型ModelZoo

支持PAI-ModelZoo,支持Bert,Albert,Roberta,XLNet,T5等主流模型的Continue Pretrain和Finetune。同时支持自研的多模态模型服装行业的Fashionbert等。

丰富且易用的应用AppZoo
支持主流的NLP应用和自研的模型应用,比方说文本匹配下支持DAM++、HCNN等单塔模型,以及BERT双塔+向量召回模型;阅读理解下支持BERT-HAE等模型。

自动知识蒸馏工具

支持知识蒸馏,可以从大的teacher模型蒸馏到小的student模型。集成了任务有感知的BERT模型压缩AdaBERT,采用了神经网路架构搜索去搜索出任务相关的架构去压缩原始的BERT模型,可以压缩最多到原来的1/17,inference最多提升29倍,且模型效果损失在3%以内。

兼容PAI生态产品

框架基于PAI-TF开发,用户通过简单的代码或配置文件修改,就可以使用PAI自研高效的分布式训练,编译优化等特性;同时框架完美兼容PAI生态的产品,包括 PAI Web组件(PAI Studio),开发平台(PAI DSW),和PAI Serving平台(PAI EAS)。

二 平台架构总览

EasyTransfer的整体框架如下图所示,在设计上尽可能的简化了深度迁移学习的算法开发难度。框架抽象了常用的IO,layers,losses,optimizers, models,用户可以基于这些接口开发模型,也可以直接接入预训练模型库ModelZoo快速建模。框架支持五种迁移学习(TL)范式,model finetuning,feature-based TL, instance-based TL, model-based TL和meta learning。同时,框架集成了AppZoo,支持主流的NLP应用,方便用户搭建常用的NLP算法应用。最后,框架无缝兼容PAI生态的产品,给用户从训练到部署带来一站式的体验。

image.png

三 平台功能详解

下面详细介绍下EasyTransfer框架的核心功能。

简单易用的API接口设计
image.png

高性能分布式框架

EasyTransfer框架支持工业级的分布式应用场景,改善了分布式优化器,配合自动混合精度,编译优化,和高效的分布式数据/模型并行策略,PAI-ALBERT做到比社区版的ALBERT在多机多卡分布式训练的运算速度上快4倍多。

image.png

丰富的ModelZoo

框架提供了一套预训练语言模型的工具供用户自定义自己的预训练模型,同时提供了预训练语言模型库ModelZoo供用户直接调用。目前支持了20+预训练模型,其中在PAI平台上预训练的PAI-ALBERT-zh取得中文CLUE榜单第一名,PAI-ALBERT-en-large取得英文SuperGLUE第二名的好成绩。下面是详细的预训练模型列表:

image.png

预训练模型在CLUE榜单的效果:

image.png

SuperGLUE的效果:

image.png

丰富的AppZoo

EasyTransfer封装了高度易用、灵活且学习成本低的AppZoo,支持用户在仅用几行命令的条件下“大规模”运行“前沿”的开源与自研算法,即可迅速接入不同场景和业务数据下的NLP应用,包括文本向量化、匹配、分类、阅读理解和序列标注等。

image.png

高效的迁移学习算法

EasyTransfer框架支持所有主流的迁移学习范式,包括Model Fine-tuning, Feature-based TL, Instance-based TL, Model-based TL和Meta Learning。基于这些迁移学习范式开发了10多种算法,在阿里的业务实践中取得了良好效果的效果。后续所有的算法都会开源到EasyTransfer代码库里。在具体应用的时候,用户可以根据下图来选择一种迁移学习范式来测试效果。

image.png

预训练语言模型

自然语言处理的一大热点工作就是预训练语言模型比方说BERT,ALBERT等,这类模型在各大自然语言处理场景都取得了非常不错的效果。为了更好的支持用户使用预训练语言模型,我们在新版的迁移学习框架EasyTransfer里植入了一套预训练语言模型的标准范式和预训练语言模型库ModelZoo。传统Albert为了减少参数总量,取消了bert的encoder堆叠的方式,转而采用encoder循环的方式,如下图所示。全循环方式在下游任务上表现并不十分理想,于是我们将全循环改为了在2层堆叠的encoder上全循环。然后我们基于英文C4数据,重新对Albert xxlarge进行预训练。在预训练的过程中,我们仅仅使用MLM loss,配合Whole Word Masking,基于EasyTransfer的Train on the fly功能,我们实现了dynamic online masking,即可以在每次读入原始句子的同时动态生成需要masking的tokens。我们最终的预训练模型PAI-ALBERT-en-large在SuperGLUE榜单上取得国际第二,国内第一的成绩,模型参数仅仅为第一名Google T5的1/10,效果差距在3.5%以内。后续我们会继续优化模型框架,争取以1/5的模型参数达到比T5更好的效果。

image.png

多模态模型FashionBERT

随着Web技术发展,互联网上包含大量的多模态信息,包括文本,图像,语音,视频等。从海量多模态信息搜索出重要信息一直是学术界研究重点。多模态匹配核心就是图文匹配技术(Text and Image Matching),这也是一项基础研究,在非常多的领域有很多应用,例如 图文检索(Cross-modality IR),图像标题生成(Image Caption),图像问答系统(Vision Question Answering), 图像知识推理(Visual Commonsense Reasoning)。但是目前学术界研究重点放在通用领域的多模态研究,针对电商领域的多模态研究相对较少。基于此,我们和阿里ICBU团队合作提出了FashionBERT多模态预训练模型,针对电商领域的图文信息进行预训练的研究,在多个跨模态检索和图文匹配等业务场景都有成功的应用。模型架构图如下所示。该工作提出了Adaptive Loss,用于平衡图文匹配,纯图片,和纯文本三部分loss。

image.png

任务自适应的知识蒸馏

预训练模型从海量无监督数据中提取通用知识,并通过知识迁移的方法提升下游任务的效果,在场景里取得了优异的效果。通常预训练模型尺寸越大,学习到的知识表征对下游任务越有效,带来的指标提升也越明显。然而大模型显然无法满足工业界应用的时效性需求,因此需要考虑模型压缩。我们和阿里智能计算团队合作提出了一种全新的压缩方法 AdaBERT,利用可微神经架构搜索(Differentiable Neural Architecture Search)自动地将 BERT 压缩成任务自适应的小型模型。

在这个过程中,我们将BERT作为老师模型,提炼它在目标任务上有用的知识;在这些知识的指导下,我们自适应地搜索一个适合目标任务的网络结构,压缩得到小规模的学生模型。我们在多个NLP公开任务上进行了实验评估,结果显示经由AdaBERT压缩后的小模型在保证精读相当的同时,推理速度比原始BERT快 12.7 到 29.3 倍,参数规模比原始BERT小 11.5 到 17.0倍 。

image.png

QA场景领域关系学习

早在2017年,我们就在阿里小蜜问答场景里面尝试了迁移学习,我们主要侧重于DNN based Supervised TL。这类算法主要有两种框架,一个是Fully-shared(FS),另外一个是Specific-shared(SS)。两者最大的差别是前者只考虑了shared representation,而后者考虑了specific representation。通常来说SS的模型效果比FS效果好,因为FS可以看作是SS的一个特例。对于SS来说,最理想的情况下是shared的部分表示的是两个领域的共性,specific的部分表示的是特性。然而往往我们发现要达到这样的效果很难,于是我们考虑用一个adversarial loss和domain correlation来协助模型学好这两部分特征。基于此,我们提出了一个新的算法,hCNN-DRSS,架构如下所示:

image.png

我们将这个算法应用在了小蜜的实际业务场景中,在多个业务场景里(AliExpress, 万象,Lazada)取得了不错的效果。

强化迁移学习Reinforced Transfer Learning

迁移学习的有效性,很大程度上取决于source domain和target domain之间的gap,如果gap比较大,那么迁移很可能是无效的。在小蜜QA场景,如果直接把Quora的text matching数据迁移过来,有很多是不太合适的。我们在小蜜的QA场景,基于Actor-Critic算法,搭建了一个通用的强化迁移学习框架,用RL来做样本选择,帮助TL模型取得更好的效果。整个模型分三部分,基础QA模型,迁移学习模型(TL)和强化学习模型(RL)。其中RL的policy function负责选出高质量的样本(actions),TL模型在选出来的样本上训练QA模型并提供反馈给RL,RL根据反馈(reward)来更新actions。该框架训练的模型在双11AliExpress的俄语和西语匹配模型,在西语和俄语的匹配准确率都取得了非常不错的提升。

image.png

元调优Meta Fine-tuning

预训练语言模型的广泛应用,使得Pre-training+Fine-tuning的两阶段训练模型成为主流。我们注意到,在fine-tuning阶段,模型参数仅在特定领域、特定数据集上fine-tune,没有考虑到跨领域数据的迁移调优效果。元调优(Meta Fine-tuning)算法借鉴Meta-learning的思想,旨在学习预训练语言模型跨领域的meta-learner,从而使得学习的meta-learner可以快速迁移到特定领域的任务上。这一算法学习训练数据样本的跨领域typicality(即可迁移性),同时在预训练语言模型中增加domain corruption classifier,使得模型更多地学习到领域无关的特征(domain-invariant representations)。

image.png

我们将该fine-tuning算法应用于BERT,在自然语言推理和情感分析等多个任务上进行了实验。实验结果表明,元调优算法在这些任务上都优于BERT的原始fine-tuning算法和基于transfer learning的fine-tuning算法。

元知识蒸馏Meta-Knowledge Distillation

随着BERT等预训练语言模型在各项任务上都取得了SOTA效果,BERT这类模型已经成为 NLP 深度迁移学习管道中的重要组成部分。但 BERT 并不是完美无瑕的,这类模型仍然存在以下两个问题:模型参数量太大和训练/推理速度慢的问题,因此一个方向是将BERT知识蒸馏到一个小模型。但是大部分的知识蒸馏工作都聚焦在同一个领域,而忽略了跨领域对蒸馏任务提升的问题。我们提出了用Meta Learning的方式将跨领域的可迁移知识学出,在蒸馏阶段额外对可迁移的知识进行蒸馏。这样的做法使得学习到的Student模型在相应的领域的效果显著提升,我们在多个跨领域的任务上都蒸馏出了较好的学生模型,逼近教师模型的效果。我们近期会梳理这个工作,发布代码和文章。

四 创新文章

EasyTransfer框架已在阿里集团内数十个NLP场景落地,包括智能客服、搜索推荐、安全风控、大文娱等,带来了显著业务效果的提升。目前EasyTransfer日常服务有上亿次调用,月均训练调用量超过5万次。EasyTransfer团队在落地业务的同时也沉淀了很多的创新的算法解决方案,包括元学习,多模态预训练,强化迁移学习,特征迁移学习等方向的工作,共合作发表了几十篇顶级会议文章,下面列举一些代表性工作。后续这些算法都会在EasyTransfer框架里开源供广大用户使用。

  • [EMNLP 2020]. Meta Fine-Tuning Neural Language Models for Multi-Domain Text Mining. EMNLP 2020. Full Paper.
  • [SIGIR 2020] FashionBERT: Text and Image Matching for Fashion Domain with Adaptive Loss.
  • [ACM MM 2020] One-shot Learning for Text Field Labeling in Structure Information Extraction. To appear, Full Oral paper.
  • [IJCAI 2020] AdaBERT: Task-Adaptive BERT Compression with Differentiable Neural Architecture Search, IJCAI 2020.
  • [KDD 2019] A Minimax Game for Instance based Selective Transfer Learning. Oral, KDD 2019.
  • [CIKM 2019] Cross-domain Attention Network with Wasserstein Regularizers for E-commerce Search, CIKM 2019.
  • [WWW 2019] Multi-Domain Gated CNN for Review Helpfulness Prediction, WWW.
  • [SIGIR 2019]. BERT with History Modeling for Conversational Question Answering. SIGIR 2019.
  • [WSDM 2019]. Learning to Selectively Transfer: Reinforced Transfer Learning for Deep Text Matching. WSDM 2019, Full Paper.
  • [ACL 2018]. Transfer Learning for Context-Aware Question Matching in Information-seeking Conversation Systems in E-commerce. ACL. 2018.
  • [SIGIR 2018]. Response Ranking with Deep Matching Networks and External Knowledge in Information-seeking Conversation Systems. Long Paper.
  • [WSDM 2018]. Modelling Domain Relationships for Transfer Learning on Retrieval-based Question Answering Systems in E-commerce, 2018. Long Paper.
  • [CIKM 2017]. AliMe Assist: An Intelligent Assistant for Creating an Innovative E-commerce Experience, CIKM 2017, Demo Paper, Best Demo Award.
  • [ICDM 2017]. A Short-Term Rainfall Prediction Model using Multi-Task Convolutional Neural Networks. Long paper, ICDM 2017.
  • [ACL 2017]. AliMe Chat: A Sequence to Sequence and Rerank based Chatbot Engine,ACL 2017.
  • [arXiv]. KEML: A Knowledge-Enriched Meta-Learning Framework for Lexical Relation Classification,arXiv.

最后,EasyTransfer工具是中文CLUE社区官方推荐的toolkit。同时,阿里云天池平台将携手CLUE社区打造一个多任务语义理解的大赛,EasyTransfer为默认的开发工具,用户可以基于EasyTransfer轻松搭建多任务的baseline和进行建模和优化,敬请大家期待。

相关实践学习
使用PAI-EAS一键部署ChatGLM及LangChain应用
本场景中主要介绍如何使用模型在线服务(PAI-EAS)部署ChatGLM的AI-Web应用以及启动WebUI进行模型推理,并通过LangChain集成自己的业务数据。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
目录
相关文章
|
7月前
|
存储 人工智能 PyTorch
基于PyTorch/XLA的高效分布式训练框架
基于PyTorch/XLA的高效分布式训练框架
321 2
|
7月前
|
人工智能 物联网 PyTorch
SCEdit:轻量级高效可控的AI图像生成微调框架(附魔搭社区训练实践教程)
SCEdit是一个高效的生成式微调框架,由阿里巴巴通义实验室基础视觉智能团队所提出。
|
机器学习/深度学习 算法 openCL
高效、轻量的深度学习框架MNN
MNN是一个高效、轻量的深度学习框架。
高效、轻量的深度学习框架MNN
|
机器学习/深度学习 人工智能 Cloud Native
高性能深度学习推理平台 OpenPPL 正式开源!
高性能深度学习推理平台 OpenPPL 正式开源!
2219 0
|
9天前
|
机器学习/深度学习 人工智能 Android开发
《C++与 MXNet:分布式训练与移动端部署的卓越融合》
MXNet是一款高效灵活的深度学习框架,尤其在分布式训练和移动端部署方面表现突出。基于C++的MXNet通过高效的通信机制和扩展性,支持大规模数据处理及复杂模型训练,同时其轻量化设计和性能优化使其成为移动端智能应用的理想选择。
68 29
|
20天前
|
自然语言处理 资源调度 并行计算
从本地部署到企业级服务:十种主流LLM推理框架的技术介绍与对比
本文深入探讨了十种主流的大语言模型(LLM)服务引擎和工具,涵盖从轻量级本地部署到高性能企业级解决方案,详细分析了它们的技术特点、优势及局限性,旨在为研究人员和工程团队提供适合不同应用场景的技术方案。内容涉及WebLLM、LM Studio、Ollama、vLLM、LightLLM、OpenLLM、HuggingFace TGI、GPT4ALL、llama.cpp及Triton Inference Server与TensorRT-LLM等。
96 7
|
1月前
|
机器学习/深度学习 监控 PyTorch
深度学习工程实践:PyTorch Lightning与Ignite框架的技术特性对比分析
在深度学习框架的选择上,PyTorch Lightning和Ignite代表了两种不同的技术路线。本文将从技术实现的角度,深入分析这两个框架在实际应用中的差异,为开发者提供客观的技术参考。
49 7
|
4月前
|
机器学习/深度学习 PyTorch TensorFlow
深度学习框架之争:全面解析TensorFlow与PyTorch在功能、易用性和适用场景上的比较,帮助你选择最适合项目的框架
【8月更文挑战第31天】在深度学习领域,选择合适的框架至关重要。本文通过开发图像识别系统的案例,对比了TensorFlow和PyTorch两大主流框架。TensorFlow由Google开发,功能强大,支持多种设备,适合大型项目和工业部署;PyTorch则由Facebook推出,强调灵活性和速度,尤其适用于研究和快速原型开发。通过具体示例代码展示各自特点,并分析其适用场景,帮助读者根据项目需求和个人偏好做出明智选择。
96 0
|
4月前
|
机器学习/深度学习 分布式计算 PyTorch
构建可扩展的深度学习系统:PyTorch 与分布式计算
【8月更文第29天】随着数据量和模型复杂度的增加,单个GPU或CPU已无法满足大规模深度学习模型的训练需求。分布式计算提供了一种解决方案,能够有效地利用多台机器上的多个GPU进行并行训练,显著加快训练速度。本文将探讨如何使用PyTorch框架实现深度学习模型的分布式训练,并通过一个具体的示例展示整个过程。
190 0
|
机器学习/深度学习 SQL 人工智能
基于PyTorch、易上手,细粒度图像识别深度学习工具库Hawkeye开源
基于PyTorch、易上手,细粒度图像识别深度学习工具库Hawkeye开源
353 0
下一篇
DataWorks