作者:临在、岑鸣、熊兮

一 导读

跟着 BERT、Megatron、GPT-3 等预练习模型在NLP范畴获得注目的成果,越来越多团队投身到超大规划练习中,这使得练习模型的规划从亿级别开展到了千亿乃至万亿的规划。可是,这类超大规划的模型运用于实践场景中依然有一些应战。首要,模型参数量过大使得练习和推理速度过慢且布置本钱极高;其次在很多实践场景中数据量缺乏的问题依然约束着大模型在小样本场景中的运用,进步预练习模型在小样本场景的泛化性依然存在应战。为了应对以上问题,PAI 团队推出了 EasyNLP 中文 NLP 算法结构,助力大模型快速且高效的落地。

EasyNLP 背面的技能结构如何规划?未来有哪些规划?今日一起来深入了解。

二 EasyNLP简介

EasyNLP 是 PAI 算法团队根据 PyTorch 开发的易用且丰厚的中文NLP算法结构,支撑常用的中文预练习模型和大模型落地技能,而且供给了从练习到布置的一站式 NLP 开发体会。EasyNLP 供给了简练的接口供用户开发 NLP 模型,包含NLP运用 AppZoo 和预练习 ModelZoo,一起供给技能协助用户高效的落地超大预练习模型到事务。除此之外 EasyNLP 结构凭借 PAI 团队在通讯优化、资源调度方面的深沉积累,可认为用户供给大规划、鲁棒的练习能力,一起能够无缝对接 PAI 系列产品,例如 PAI-DLC、PAI-DSW、PAI-Designer 和 PAI-EAS,给用户带来高效的从练习到落地的完好体会。

EasyNLP 现已在阿里巴巴内部支撑 10 多个 BU 的事务,一起在阿里云上供给了 NLP 处理计划和 ModelHub 模型协助用户处理事务问题,也供给用户自定义模型服务便利用户打造自研模型。在经过内部事务打磨之后,咱们将EasyNLP 面向开源社区,希望能够服务更多的 NLP 算法开发者和研究者,也希望和社区一起推动 NLP 技能特别是中文 NLP 的快速开展和事务落地。\

开源项目地址: github.com/alibaba/Eas…

阿里云机器学习PAI开源中文NLP算法框架EasyNLP,助力NLP大模型落地

EasyNLP is a Comprehensive and Easy-to-use NLP Toolkit

EasyNLP is a Comprehensive and Easy-to-use NLP Toolkit

EasyNLP 首要特性如下:

  • 易用且兼容开源:EasyNLP 支撑常用的中文 NLP 数据和模型,便利用户评测中文 NLP 技能。除了供给易用简练的 PAI 命令方式对前沿NLP算法进行调用以外,EasyNLP 还笼统了必定的自定义模块如 AppZoo 和 ModelZoo,降低NLP 运用的门槛,一起 ModelZoo 里面常见的预练习模型和 PAI 自研的模型,包含常识预练习模型等。EasyNLP 能够无缝接入 huggingface/ transformers 的模型,也兼容 EasyTransfer 模型,而且能够凭借结构自带的分布式练习结构(根据Torch-Accelerator)提高练习功率。
  • 大模型小样本落地技能:EasyNLP 结构集成了多种经典的小样本学习算法,例如 PET、P-Tuning 等,完成根据大模型的小样本数据调优,然后处理大模型与小练习集不相匹配的问题。此外,PAI 团队结合经典小样本学习算法和比照学习的思路,提出了一种不增加任何新的参数与任何人工设置模版与标签词的计划 Contrastive Prompt Tuning,在 FewCLUE 小样本学习榜单获得第一名,相比 Finetune 有超过 10% 的提高。
  • 大模型常识蒸馏技能:鉴于大模型参数大难以落地的问题,EasyNLP 供给常识蒸馏功用协助蒸馏大模型然后得到高效的小模型来满意线上布置服务的需求。一起 EasyNLP 供给 MetaKD 算法,支撑元常识蒸馏,提高学生模型的作用,在很多范畴上乃至能够跟教师模型的作用相等。一起,EasyNLP 支撑数据增强,经过预练习模型来增强方针范畴的数据,能够有用的提高常识蒸馏的作用。

三 EasyNLP结构特点

全体架构

阿里云机器学习PAI开源中文NLP算法框架EasyNLP,助力NLP大模型落地

如图所示,EasyNLP 架构首要有如下几个中心模块:

  • 基础模块:供给了预练习模型库 ModelZoo,支撑常用的中文预练习模型,包含 BERT,MacBERT,WOBERT 等;也供给常用的 NN 模块,便利用户自定义模型;
  • 运用层:AppZoo 支撑常见的 NLP 运用比方说文本分类,文本匹配等;EasyNLP 支撑预练习模型落地东西,包含小样本学习和常识蒸馏,助力大模型快速落地,这里也集成了多个 PAI 团队自研的算法;
  • NLP 运用和处理计划:供给了多个 NLP 处理计划和ModelHub模型协助用户处理事务问题;
  • 东西层:能够支撑本地拉起服务,也能够在阿里云产品上布置和调用,比方说 PAI-DLC、PAI-DSW、PAI-Designer 和 PAI-EAS,给用户带来高效的从练习到落地的完好体会。

大模型常识蒸馏技能

跟着BERT等预练习言语模型在各项使命上都获得 SOTA 作用,大规划预练习模型现已成为 NLP学习管道中的重要组成部分,可是这类模型的参数量太大,而且练习和推理速度慢,严重影响到了需求较高 QPS 的线上场景,布置本钱十分高。EasyNLP 结构集成了经典的数据增强和常识蒸馏算法,使得练习出的小模型在相应使命行为上能够逼近大模型的作用。

因为现有大部分的常识蒸馏工作都聚焦在同范畴模型的蒸馏,而忽略了跨范畴模型对方针蒸馏使命作用的提高。PAI 团队进一步提出了元常识蒸馏算法MetaKD(Meta Knowledge Distillation),将跨范畴的可搬迁常识学出,在蒸馏阶段额定对可搬迁的常识进行蒸馏。MetaKD 算法使得学习到的学生模型在相应的范畴的作用显著提高,逼近教师模型的作用。这一算法的中心结构图如下所示:

阿里云机器学习PAI开源中文NLP算法框架EasyNLP,助力NLP大模型落地

其间,MetaKD 算法包含两个阶段。第一个阶段为元教师模型学习(Meta-teacher Learning)阶段,算法从多个范畴的练习数据协同学习元教师模型,它对每个范畴的样本都计算其典型得分(Prototype Score),使更具有跨范畴典型性的样本在学习阶段有更大的权重。第二个阶段为元蒸馏(Meta-distillation)阶段,将元教师模型选择性地蒸馏到特定范畴的学习使命上。因为元教师模型可能无法做到在所有范畴上都有准确的猜测作用,咱们额定引入了范畴专业性权重(Domain-expertise Weight),使元教师模型只将置信度最高的常识搬迁到学生模型,避免学生模型对元教师模型的过拟合。

下图展现了 MetaKD 算法在MNLI的5个范畴数据集的跨使命蒸馏作用。由结果可见,MetaKD 蒸馏出的 BERT-Small 模型的和原始 BERT 模型相比,在坚持模型精度值均匀只下降1.5%的前提下参数减少了87%,大大减少了布置的压力。

阿里云机器学习PAI开源中文NLP算法框架EasyNLP,助力NLP大模型落地

目前,MetaKD 算法也现已集成到 EasyNLP 结构中开源。

常识蒸馏实践详见:github.com/alibaba/Eas…

大模型小样本学习技能

预练习言语模型规划的扩大,使得这一类模型在自然言语理解等相关使命作用不断提高。可是,这些模型的参数空间比较大,假如在下流使命上直接对这些模型进行微调,为了到达较好的模型泛化性,需求较多的练习数据。在实践事务场景中,特别是笔直范畴、特定职业中,练习样本数量缺乏的问题广泛存在,极大地影响这些模型在下流使命的准确度。为了处理这一问题,EasyNLP结构集成了多种经典的小样本学习算法,例如 PET、P-Tuning 等,完成根据预练习言语模型的小样本数据调优,然后处理大模型与小练习集不相匹配的问题。

此外,PAI团队结合经典小样本学习算法和比照学习的思路,提出了一种不增加任何新的参数与任何人工设置模版与标签词的计划Contrastive Prompt Tuning (CP-Tuning)。这一算法的中心结构图如下所示:

阿里云机器学习PAI开源中文NLP算法框架EasyNLP,助力NLP大模型落地

如上图,CP-Tuning 算法放弃了经典算法中以“[MASK]”字符对应预练习模型 MLM Head 的猜测输出作为分类根据,而是参考比照学习的思路,将句子经过预练习模型后,以“[MASK]”字符经过预练习模型后的接连化表征作为features。在小样本使命的练习阶段,练习方针为最小化同类样本 features 的组内间隔,最大化非同类样本的组间间隔。在上图中,[OMSK]即为咱们所用于分类的“[MASK]”字符,其优化的 features 表明为[EMB]。因而,CP-Tuning 算法不需求定义分类的标签词。在输入侧,除了输入文本和[OMSK],咱们还加入了模版的字符[PRO]。与经典算法不同,因为CP-Tuning不需求学习模版和标签词之间的对应,咱们直接将[PRO]初始化为使命无关的模版,例如“it is”。在模型练习过程中,[PRO]的表明能够在反向传达过程中自动更新。除此之外,CP-Tuning 还引入了输入文本的Mask,表明为[TMSK],用于一起优化辅佐的 MLM 使命,提高模型在小样本学习场景下的泛化性。CP-Tuning 算法的丢失函数由两部分组成:

阿里云机器学习PAI开源中文NLP算法框架EasyNLP,助力NLP大模型落地

如上所示,两个部分分别为 Pair-wise Cost-sensitive Contrastive Loss(PCCL)和辅佐的 MLM 丢失。咱们在多个 GLUE 小样本数据集上进行了验证,其间练习会集每个类别约束只有16个标示样本。从下述结果能够看出,CP-Tuning 的准确度逾越了经典的小样本学习算法,也比规范 Fine-tuning 算法的准确度高10%以上。

阿里云机器学习PAI开源中文NLP算法框架EasyNLP,助力NLP大模型落地

目前,除了咱们自研的 CP-Tuning 算法之外,EasyNLP 结构中集成了多种经典小样本学习算法例如 PET、P-tuning 等。

小样本学习实践详见:github.com/alibaba/Eas…

大模型落地实践

下面咱们给出一个示例,将一个大的预练习模型(hfl/macbert-large-zh)在小样本场景上落地,而且蒸馏到仅有1/100参数的小模型上。如下图所示,一个大模型(3亿参数)在一个小样本场景上原始的Accuracy为83.8%,经过小样本学习能够提高7%,到达90.6%。一起,假如用一个小模型(3百万参数)跑这个场景的话,作用仅有54.4%,能够把作用提高到71%(提高约17%),inference的时间相比大模型提高了10倍,模型参数仅为原来的1/100。

模型 参数量 Dev Set目标(Accuracy) Batch Inference时间
规范Finetune hfl/macbert-large-zh 325 Million 0.8375 0.54s
规范Finetune alibaba-pai/pai-bert-tiny-zh 3 Million 0.54375 0.06s
常识蒸馏Finetune alibaba-pai/pai-bert-tiny-zh 3 Million 0.7125 0.06s
小样本Finetune hfl/macbert-large-zh 325 Million 0.90625 0.53s

代码详见:github.com/alibaba/Eas…

运用事例

EasyNLP支撑了阿里巴巴集团内10个 BU20 多个事务,一起过 PAI 的产品例如PAI-DLC、PAI-DSW、PAI Designer 和 PAI-EAS,给集团用户带来高效的从练习到落地的完好体会,一起也支撑了云上客户自定定制化模型和处理事务问题的需求。针对公有云用户,关于入门级用户 PAI-Designer 组件来经过简单调参就能够完成 NLP 模型练习,关于高档开发者,能够运用 AppZoo 练习 NLP 模型,或者运用预置的预练习模型 ModelZoo 进行 finetune,关于资深开发者,供给丰厚的API接口,支撑用户运用结构进行定制化算法开发,能够运用咱们自带的 Trainer 来提高练习功率,也能够自定义新的 Trainer。

下面罗列几个典型的事例:

  • PAI团队和达摩院NLP团队协作共建落地超大预练习模型(百亿参数),推出自研小样本学习算法 CP-Tuning 和模型稀少化算法 CAP。其间,这一自研 CP-Tuning 算法与 AliceMind 平台集成, 完成了超大预练习模型的小样本学习,在在小样本场景下,比规范 Fine-tune 精准度提高10%以上;
  • PAI团队和达摩院协作在 FewCLUE 小样本学习榜单上获得冠军,乃至一个小样本学习使命上的精准度超过了人类。一起,阿里巴巴某 BU 运用 ToB客户服务场景下的事务数据在 EasyNLP 结构下进行小样本学习算法学习,在事务数据上相比 Baseline,提高实体辨认的准确度2%以上,提高属性辨认的准确度5%以上;
  • 针对公有云客户对文本分类功用的小模型、高 QPS 需求,根据 EasyNLP 结构的常识蒸馏功用,选用某预练习模型作为教师模型(参数量3亿)、PAI-BERT 中文小预练习模型作为学生模型(参数量4百万),蒸馏得到这一小模型上线,参数量约为原有模型的百分之一,精度丢失在10%以内;根据此,咱们集成了常识蒸馏功用,助力大模型在实践事务场景下落地;
  • 在风控场景,咱们搜集了约一亿的中文预练习数据,根据 EasyNLP 预练习了一个 PAI-BERT 中文模型,在风控数据上获得了十分不错的作用,提高了10%以上的准确率和召回率;根据此,咱们在公有云上也推出了文本风控处理计划,在多个客户场景里落地并获得不错的作用;
  • 跟着 UGC 等用户生成内容不断涌现,对从文本提取标签用于细粒度剖析的需求不断涌现;选用根据 EasyNLP 预练习中文模型,在新闻数据的超过300个类别的文本标签猜测准确率超过80%;根据此,咱们集成了文本标签猜测,关键词抽取,和实体词提取等功用,在公有云上推出了通用文本打标处理计划,而且在多个典型客户场景里成功落地,服务于智能引荐等运用场景。

RoadMap

  • 根据 EasyNLP 的中文 CLUE/FewCLUE 等的 Benchmark
  • 常识预练习技能: 发布一系列常识预练习模型,致力于提高预练习模型的常识性和常识性
  • 中文预练习模型:发布针对中文的 SOTA 的预练习模型,降低中文预练习技能门槛
  • 多模态预练习:发布针对中文的多模态预练习模型
  • 中文数据的搜集和 API 接口:搜集常用的中文数据,供给预处理和练习接口
  • 笔直场景的 SOTA 中文模型整合:针对笔直事务场景,整协作用最好的中文模型
  • 发布处理计划和 PAI 组件

参考文献

  • [AAAI 22] DKPLM: Decomposable Knowledge-enhanced Pre-trained Language Model for Natural Language Understanding.arxiv.org/abs/2112.01…
  • [ACL 2021] Meta-KD: A Meta Knowledge Distillation Framework for Language Model Compression across Domains.arxiv.org/abs/2012.01…
  • [arXiv] Making Pre-trained Language Models End-to-end Few-shot Learners with Contrastive Prompt Tuning:arxiv.org/pdf/2204.00…
  • [AAAI 22] From Dense to Sparse: Contrastive Pruning for Better Pre-trained Language Model Compression.arxiv.org/abs/2112.07…
  • [EMNLP 2021] TransPrompt: Towards an Automatic Transferable Prompting Framework for Few-shot Text Classification.aclanthology.org/2021.emnlp-…

[1]github.com/alibaba/Eas…

[2]github.com/alibaba/Eas…

[3]github.com/alibaba/Eas…

[4]github.com/alibaba/Eas…

[5]达摩院NLP团队:github.com/alibaba/Ali…

[6]文本风控处理计划:help.aliyun.com/document_de…

[7]通用文本打标处理计划:help.aliyun.com/document_de…

开源项目地址: github.com/alibaba/Eas…

想了解更多AI开源项目,请点击:

www.aliyun.com/activity/bi…