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

本文涉及的产品
交互式建模 PAI-DSW,每月250计算时 3个月
模型训练 PAI-DLC,5000CU*H 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
简介: 阿里巴巴高级算法专家邱明辉在阿里云开发者社区特别栏目《周二开源日》直播中,为大家带来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)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
相关文章
|
3月前
|
机器学习/深度学习 数据采集 数据可视化
基于爬虫和机器学习的招聘数据分析与可视化系统,python django框架,前端bootstrap,机器学习有八种带有可视化大屏和后台
本文介绍了一个基于Python Django框架和Bootstrap前端技术,集成了机器学习算法和数据可视化的招聘数据分析与可视化系统,该系统通过爬虫技术获取职位信息,并使用多种机器学习模型进行薪资预测、职位匹配和趋势分析,提供了一个直观的可视化大屏和后台管理系统,以优化招聘策略并提升决策质量。
181 4
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
详谈什么是自然语言处理(NLP),特点以及使用场景场景(一)
详谈什么是自然语言处理(NLP),特点以及使用场景场景(一)
81 0
|
2月前
|
机器学习/深度学习 人工智能 算法
ML.NET:一个.NET开源、免费、跨平台的机器学习框架
ML.NET:一个.NET开源、免费、跨平台的机器学习框架
|
3月前
|
机器学习/深度学习 PyTorch TensorFlow
机器学习框架调研
机器学习框架调研
38 1
|
3月前
|
机器学习/深度学习 JSON API
【Python奇迹】FastAPI框架大显神通:一键部署机器学习模型,让数据预测飞跃至Web舞台,震撼开启智能服务新纪元!
【8月更文挑战第16天】在数据驱动的时代,高效部署机器学习模型至关重要。FastAPI凭借其高性能与灵活性,成为搭建模型API的理想选择。本文详述了从环境准备、模型训练到使用FastAPI部署的全过程。首先,确保安装了Python及相关库(fastapi、uvicorn、scikit-learn)。接着,以线性回归为例,构建了一个预测房价的模型。通过定义FastAPI端点,实现了基于房屋大小预测价格的功能,并介绍了如何运行服务器及测试API。最终,用户可通过HTTP请求获取预测结果,极大地提升了模型的实用性和集成性。
243 1
|
3月前
|
机器学习/深度学习 PyTorch TensorFlow
NumPy 与机器学习框架的集成
【8月更文第30天】NumPy 是 Python 中用于科学计算的核心库之一,它提供了高效的多维数组对象,以及用于操作数组的大量函数。NumPy 的高效性和灵活性使其成为许多机器学习框架的基础。本文将探讨 NumPy 如何与 TensorFlow 和 PyTorch 等流行机器学习框架协同工作,并通过具体的代码示例来展示它们之间的交互。
56 0
|
3月前
|
机器学习/深度学习 数据采集 测试技术
利用Python实现简单的机器学习模型软件测试的艺术与科学:探索自动化测试框架的奥秘
【8月更文挑战第27天】在本文中,我们将一起探索如何通过Python编程语言创建一个简单的机器学习模型。我们将使用scikit-learn库中的线性回归模型作为示例,并通过一个实际的数据集来训练我们的模型。文章将详细解释每一步的过程,包括数据预处理、模型训练和预测结果的评估。最后,我们会用代码块展示整个过程,确保读者能够跟随步骤实践并理解每个阶段的重要性。
|
4月前
|
自然语言处理 搜索推荐 机器人
自然语言处理(NLP)技术的应用场景深度解析
【7月更文挑战第28天】自然语言处理(NLP)技术以其广泛的应用场景和卓越的性能在人工智能领域占据重要地位。从搜索引擎优化到机器翻译,从情感分析到聊天机器人,NLP技术正在不断地改变着我们的工作和生活方式。随着技术的不断进步和应用领域的不断拓展,我们有理由相信NLP将在未来的人工智能领域中发挥更加重要的作用,为人类社会带来更多的便利和创新。
|
4月前
|
存储 分布式计算 MaxCompute
构建NLP 开发问题之如何支持其他存储介质(如 HDFS、ODPS Volumn)在 transformers 框架中
构建NLP 开发问题之如何支持其他存储介质(如 HDFS、ODPS Volumn)在 transformers 框架中
|
3月前
|
人工智能 物联网 异构计算
AI智能体研发之路-模型篇(一):大模型训练框架LLaMA-Factory在国内网络环境下的安装、部署及使用
AI智能体研发之路-模型篇(一):大模型训练框架LLaMA-Factory在国内网络环境下的安装、部署及使用
223 0

热门文章

最新文章