开发者学堂课程【PAL 平台学习路线:机器学习入门到应用:Easy Transfer:深度迁移学习框架】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/855/detail/14123
Easy Transfer:深度迁移学习框架
内容介绍:
一、迁移学习
二、PAI Easy Transfer:深度迁移学习工具套件
一、迁移学习
近年来AI崛起依赖的三大要素:算法、大数据、计算力,其中大数据意味着非常海量的数据标注的任务,非常消耗成本,而迁移学习提供了一种方式,其他数据中学习到的知识应用到当前任务当中,从而大大降低当前任务对数据的依赖,另外学习到的通用领域的知识可以迁移到相关的个性化的下游任务当中。
谷歌的 T5模型就是一个很好的例子,他通过大量的通用语调中学习到的模型,应用到个性化的下游 NLP 任务当中,只需要在下游分配任务当中标注少量数据做 FanQ 就可以取得非常好的效果。
早在16年就有人指出学习的大规模应用,在监督学习之后迁移学习会是一个非常主要的方向,那近几年来迁移学习的飞速发展尤其是在 NLP 和 CV 领域取得巨大成功也印证了这观点,基于上述考虑,为了让 PAI 用户非常方便的使用最新的迁移学习技术,研发了基 Python 深度学习工具库 E asy Transfer。
二、PAI Easy Transfer:深度迁移学习工具套件
Easy Transfer 给 PAI 用户带来的四个方面的好处:
(1)他提供了方便易用的开发接口,
(2)它提供了丰富的技术模型的 Model Zoo(开源+自研)
(3)他提供了非常丰富的上层应用的 APP Zoo 以及和 PAI 的 其他产品进行一个无缝对接。
在开发结果层面我们基于 PAI 帮助用户构建了整个模型研发的完整的 PAI fly,因此用户可以用非常少的代码去实现一个完整的模型构建的过程。在 Model Zoo 中在我们兼容了常用的开源的模型并提供了阿里自研的有阿里电商特色的轻量化的语言模型模型以及多模态的模型,在更上层我们分装了超过十个面向实际应用场景的 application zoo,目前以NLP 为主,同时也支持了用户自定义应用。在上述接口模型和应用套件在 PAI 的各个产品当中都可以直接使用。
接下来从四个方面对上述内容进行进一步的介绍:
1.简单易用的开发接口
在开发接口抽象方面,我们的目标是简化整个模型已经应用的开发的整个 PAI fly。为此我们定义了一个抽象的Layers,把不同层次的功能的模型构建模块做了进一步的封装。比如在 Layers 中包含了预处理典型的神经网络结构,函数以及常用的语言模型结构。此外封装了简单的 API 通过这些 API 可以把各个 Layers 进行非常方便的这种串联,构造出完整模型和上层应用,下面两段代码是两个简单的例子:
自定义网络示例
def build _ model ( inputs )
net = layers . bert ( inputs )
net = layers . dense ( net , size =16)
return net
模型训练示例
inputs = build _ reader ()
Model = modelzoo . bert (
‘bert _ base '). apply ( inputs )
TrainOP = build _ train ( Model )
Run TrainOP on PAI
Export savedmodel
可以看到用户只需要写非常少的代码就可以了自定义网络结构以及自定义训练任务,迁移学习有多种范式,目前应用最广泛的一种方式就是在大规模手机上去做一个预训练然后把预训练得到的模型在下游任务当中用少量数据去做一个fanQ,为了让用户能够更方便地使用这种范式,提供了丰富的预训练好的模型模型,目前是以 NLP 为主,这里面包括主流的开源模型主要是以 Bert 及其各类优化的变种为主。
2.Model Zoo
自研的模型主要有两个:
一个是基于网络架构搜索和模型蒸馏得到的轻量化的 Bert
AdaBERT,以及电商领域的多模态学习模型 Fashion Bert
对于轻量化 AdaBERT 的目的是减少与训练语言模型的参数量,从而减少计算资源的消耗。目前我们知道预训练语言模型在各个 NLP 领域都获得非常大的成功,但是他也带来了一个非常大的问题,他的模型参数非常的多,那么从最早的Bert 的三亿参数读到T5的百亿参数到最近开研出来的 GTP3的千亿参数,这为实际场景下的应用带来了非常大的困难,研究表明 Bert 的任务方式根据 NLP 的任务的不同而不同为此我们提出一种新的模型压缩的方 法 AdaBERT,使用 Bert 作为 teacher model,使用基于神经网络架构的到的小模型作用于 student model,通过面向任务的知识蒸馏做一个模型压缩的工作,最终压缩后的模型模型参数方面减少了90%,同时在推理速度方面提升了29倍。平均精度损失控制在2%以内,同时我们也和谷歌开源出来的24个小模型进行了全面地对比,我们在模型大小换和效果方面全面领先。
随着 web 技术的发展,当前互联网上充斥着大量的多模态数据,包括图像、视频、语音、文本等等,去对这些多模态的信息去做一个检索和匹配是当前AI领域的重要研究方向。多模态尤其是图文的匹配,训练了针对电商领域的图文表征预训练模型 Fashion Bert 在 Bert 模型架构的基础上,我们增加了 mask patch prediction 任务,把图像以patch序列的方式进行输入,同时我们增加了一个文本和图像进行匹配的一个任务,最终在电商场景的图文匹配和多模态向量检索任务上取得了不错效果。
3.APP Zoo
为了进一步方便用户的使用在开放接口和 Model Zoo 的基础上进一步开发了面向多个不同 NLP 垂直领域的 APP Zoo。用户只需要配置少量的参数就可以直接使用这些应用工具获取结果,当前支持了十个以上的各类 NLP 垂直领域的应用包括:文本匹配、文本分类、阅读理解、序列标注、文本生成等等。
此外为用户提供了丰富的灵活性用户可以通过不同层次的组建进行一个串联,灵活调整包括 AIO 预处理还有各个层次的 Layers 用来组合自己的应用。
4.无缝对接 PAI 生态产品
因为 Transfer 工具套件目前支持多种形式的调用方式并在 PAI 的各个产品可以透出。包括 P AI studio 命令行和拖拽式组建以及以 Python SDK 的方式在 DSW 当中进行调用,拖拽式组件是最简单的使用方式,用户只需要在界面上填写少量的参数就可以方便地使用前面提到的各个功能包括模型的训练和预测。DSW 是更适合开发者的工具,用户可以在 DSW 当中用我们提供的 SDK 接口任意定义各个 layer,并用框架分工的其他功能的其他功能去开发自己的 model以及应用,最大限度的简化整个的开发流程目前 Easy Transfer 框架已经服务了阿里集团内部十+BU 以及20+个业务。