关于nlp:EasyNLP开源|中文NLP大模型落地EasyNLP-is-all-you-need

81次阅读

共计 6508 个字符,预计需要花费 17 分钟才能阅读完成。

简介:EasyNLP 背地的技术框架如何设计?将来有哪些布局?明天一起来深刻理解。

作者 | 临在、岑鸣、熊兮
起源 | 阿里开发者公众号

一 导读

随着 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 的疾速倒退和业务落地。

EasyNLP is a Comprehensive and Easy-to-use NLP Toolkit[1]

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 框架特点

1 整体架构

如图所示,EasyNLP 架构次要有如下几个外围模块:

  • 根底模块:提供了预训练模型库 ModelZoo,反对罕用的中文预训练模型,包含 BERT,MacBERT,WOBERT 等;也提供罕用的 NN 模块,不便用户自定义模型;
  • 应用层:AppZoo 反对常见的 NLP 利用比方说文本分类,文本匹配等;EasyNLP 反对预训练模型落地工具,包含小样本学习和常识蒸馏,助力大模型疾速落地,这里也集成了多个 PAI 团队自研的算法;
  • NLP 利用和解决方案:提供了多个 NLP 解决方案和 ModelHub 模型帮忙用户解决业务问题;
  • 工具层:能够反对本地拉起服务,也能够在阿里云产品上部署和调用,比方说 PAI-DLC、PAI-DSW、PAI-Designer 和 PAI-EAS,给用户带来高效的从训练到落地的残缺体验。

2 大模型常识蒸馏技术

随着 BERT 等预训练语言模型在各项任务上都获得 SOTA 成果,大规模预训练模型曾经成为 NLP 学习管道中的重要组成部分,然而这类模型的参数量太大,而且训练和推理速度慢,重大影响到了须要较高 QPS 的线上场景,部署老本十分高。EasyNLP 框架集成了经典的数据加强和常识蒸馏算法,使得训练出的小模型在相应工作行为上可能迫近大模型的成果。

因为现有大部分的常识蒸馏工作都聚焦在同畛域模型的蒸馏,而疏忽了跨畛域模型对指标蒸馏工作成果的晋升。PAI 团队进一步提出了元常识蒸馏算法 MetaKD(Meta Knowledge Distillation),将跨畛域的可迁徙常识学出,在蒸馏阶段额定对可迁徙的常识进行蒸馏。MetaKD 算法使得学习到的学生模型在相应的畛域的效果显著晋升,迫近老师模型的成果。这一算法的外围框架图如下所示:

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

下图展现了 MetaKD 算法在 MNLI 的 5 个畛域数据集的跨工作蒸馏成果。由后果可见,MetaKD 蒸馏出的 BERT-Small 模型的和原始 BERT 模型相比,在放弃模型精度值均匀只降落 1.5% 的前提下参数缩小了 87%,大大减少了部署的压力。

目前,MetaKD 算法也曾经集成到 EasyNLP 框架中开源。

常识蒸馏实际详见[2]。

3 大模型小样本学习技术

预训练语言模型规模的扩充,使得这一类模型在自然语言了解等相干工作成果一直晋升。然而,这些模型的参数空间比拟大,如果在上游工作上间接对这些模型进行微调,为了达到较好的模型泛化性,须要较多的训练数据。在理论业务场景中,特地是垂直畛域、特定行业中,训练样本数量有余的问题宽泛存在,极大地影响这些模型在上游工作的准确度。为了解决这一问题,EasyNLP 框架集成了多种经典的小样本学习算法,例如 PET、P-Tuning 等,实现基于预训练语言模型的小样本数据调优,从而解决大模型与小训练集不相匹配的问题。

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

如上图,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 算法的损失函数由两局部组成:

如上所示,两个局部别离为 Pair-wise Cost-sensitive Contrastive Loss(PCCL)和辅助的 MLM 损失。咱们在多个 GLUE 小样本数据集上进行了验证,其中训练集中每个类别限度只有 16 个标注样本。从下述后果能够看出,CP-Tuning 的精确度超过了经典的小样本学习算法,也比规范 Fine-tuning 算法的精确度高 10% 以上。

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

小样本学习实际详见[3]。

4 大模型落地实际

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

代码详见[4]。

四 利用案例

EasyNLP 撑持了阿里巴巴团体内 10 个 BU20 多个业务,同时过 PAI 的产品例如 PAI-DLC、PAI-DSW、PAI Designer 和 PAI-EAS,给团体用户带来高效的从训练到落地的残缺体验,同时也反对了云上客户自定定制化模型和解决业务问题的需要。针对私有云用户,对于入门级用户 PAI-Designer 组件来通过简略调参就能够实现 NLP 模型训练,对于高级开发者,能够应用 AppZoo 训练 NLP 模型,或者应用预置的预训练模型 ModelZoo 进行 finetune,对于资深开发者,提供丰盛的 API 接口,反对用户应用框架进行定制化算法开发,能够应用咱们自带的 Trainer 来晋升训练效率,也能够自定义新的 Trainer。

上面列举几个典型的案例:

  • PAI 团队和达摩院 NLP 团队 [5] 单干共建落地超大预训练模型(百亿参数),推出自研小样本学习算法 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% 以上的准确率和召回率;基于此,咱们在私有云上也推出了文本风控解决方案[6],在多个客户场景里落地并获得不错的成果;
  • 随着 UGC 等用户生成内容不断涌现,对从文本提取标签用于细粒度剖析的需要不断涌现;采纳基于 EasyNLP 预训练中文模型,在新闻数据的超过 300 个类别的文本标签预测准确率超过 80%;基于此,咱们集成了文本标签预测,关键词抽取,和实体词提取等性能,在私有云上推出了通用文本打标解决方案[7],并且在多个典型客户场景里胜利落地,服务于智能举荐等利用场景。

五 RoadMap

  • 基于 EasyNLP 的中文 CLUE/FewCLUE 等的 Benchmark
  • 常识预训练技术: 公布一系列常识预训练模型,致力于晋升预训练模型的常识性和知识性
  • 中文预训练模型:公布针对中文的 SOTA 的预训练模型,升高中文预训练技术门槛
  • 多模态预训练:公布针对中文的多模态预训练模型
  • 中文数据的收集和 API 接口:收集罕用的中文数据,提供预处理和训练接口
  • 垂直场景的 SOTA 中文模型整合:针对垂直业务场景,整合成果最好的中文模型
  • 公布解决方案和 PAI 组件

我的项目开源地址:https://github.com/alibaba/Ea…

参考文献

  • [AAAI 22] DKPLM: Decomposable Knowledge-enhanced Pre-trained Language Model for Natural Language Understanding. https://arxiv.org/abs/2112.01047
  • [ACL 2021] Meta-KD: A Meta Knowledge Distillation Framework for Language Model Compression across Domains. https://arxiv.org/abs/2012.01266
  • [arXiv] Making Pre-trained Language Models End-to-end Few-shot Learners with Contrastive Prompt Tuning:https://arxiv.org/pdf/2204.00166
  • [AAAI 22] From Dense to Sparse: Contrastive Pruning for Better Pre-trained Language Model Compression. https://arxiv.org/abs/2112.07198
  • [EMNLP 2021] TransPrompt: Towards an Automatic Transferable Prompting Framework for Few-shot Text Classification. https://aclanthology.org/2021…
  • [CIKM 2021]. EasyTransfer — A Simple and Scalable Deep Transfer Learning Platform for NLP Applications. https://github.com/alibaba/Ea…

[1]https://github.com/alibaba/Ea…
[2]https://github.com/alibaba/Ea…
[3]https://github.com/alibaba/Ea…
[4]https://github.com/alibaba/Ea…
[5]达摩院 NLP 团队:https://github.com/alibaba/Al…
[6]文本风控解决方案:https://help.aliyun.com/docum…
[7]通用文本打标解决方案:https://help.aliyun.com/docum…

原文链接
本文为阿里云原创内容,未经容许不得转载。

正文完
 0