性能加速最高可达 28 倍!这个 NLP 工具包不容错过
导读
PaddleNLP 是兼具科研学习和产业实践能力的 Python NLP 工具包,提供中文领域丰富的预训练模型和部署工具,被高校、企业开发者广泛应用。近日,PaddleNLP v2.1 正式发布,为开发者带来三项重要更新:
开箱即用的工业级 NLP 预置任务能力 Taskflow:八大经典场景一键预测。
预训练时代的微调新范式应用:三行代码显著提升小样本学习效果。
高性能预测加速:文本生成任务高达 28 倍加速效果。
传送门:
https://github.com/PaddlePaddle/PaddleNLP
PaddleNLP 整体开源能力速览
PaddleNLP 是飞桨生态的自然语言处理开发库,旨在提升文本领域的开发效率,为开发者带来模型构建、训练及预测部署的全流程优质体验。
PaddleNLP 功能全景图
PaddleNLP 项目自发布以来,就受到广大 NLPer 的关注。在 2021 年 6 月 PaddleNLP 官方直播打卡课中,有 7000+ 用户参加 PaddleNLP 的项目学习和实践,加速了自身科研和业务实践进程,同时也带动 PaddleNLP 多次登上 GitHub Trending 榜单。
那么最近的 2021 年 10 月份更新,PaddleNLP 又给大家带来哪些惊喜呢?下文将为您逐一细细解读。
PaddleNLP 全新升级深入解读
开箱即用的工业级
NLP 预置任务能力——Taskflow
依托于百度在多年语言与知识领域的业务积淀,PaddleNLP 面向 NLP 八种任务场景,聚合了众多百度自研的算法以及社区开源模型,并凭借飞桨核心框架的能力升级提供开箱即用、极致优化的高性能一键预测能力——Taskflow。
本次 Taskflow 升级覆盖自然语言理解(NLU)和生成(NLG)两大场景共八大任务,包括中文分词、词性标注、命名实体识别、句法分析、文本纠错、情感分析、生成式问答和智能写诗。
这些高质量模型的背后,一方面聚合了百度在语言与知识领域多年的业务积淀和领先的开源成果:如词法分析工具 LAC、句法分析工具 DDParser、情感分析系统 Senta、文心 ERNIE 系列家族模型、开放域对话预训练模型 PLATO、文本知识关联框架解语等;另一方面也涵盖了开源社区优秀的中文预训练模型如 CPM 等。
未来 Taskflow 会随着 PaddleNLP 的版本迭代不断扩充技能,如开放域对话、文本翻译、信息抽取等能力,以满足更多 NLP 开发者的需求。
如下图所示,通过 PaddleNLP Taskflow,只需要一行代码,传入任务名称即可自动选择最优的预置模型,并且以极致优化的方式完成推理,开发者可以方便地集成到下游的应用中。
Taskflow 使用示意图
https://github.com/PaddlePaddle/PaddleNLP/blob/develop/docs/model_zoo/taskflow.md
预训练时代的微调新范式应用:
三行代码提升小样本学习效果
Few-Shot Learning(以下简称 FSL)是机器学习的一个子领域。在仅有少数监督样本的情况下,训练得到强泛化能力的模型,实现对新数据的分类。
结合最新的 Prompt Tuning 的思想,PaddleNLP 中集成了三大前沿 FSL 算法:
EFL(Entailment as Few-Shot Learner)[1],将 NLP Fine-tune 任务统一转换为二分类的文本蕴含任务;
PET(Pattern-Exploiting Training)[2],通过人工构建模板,将分类任务转成完形填空任务;
P-Tuning[3]:自动构建模板,将模版的构建转化为连续参数优化问题。
使用小样本学习策略,仅仅 32 条样本即可在电商评论分类任务上取得 87%的分类精度[4]。此外,PaddleNLP 集成 R-Drop 策略作为 API,只需要增加三行代码即可在原任务上快速涨点,如图所示:
https://github.com/PaddlePaddle/PaddleNLP/tree/develop/examples/few_shot
高性能预测加速:
文本生成场景高达 28 倍加速效果
PaddleNLP 与 NVDIA 强强联合,以 FasterTransformer[5]为基础,提供了 Faster 系列的推理 API,重点拓展了更多主流网络结构适配与解码策略支持。同时结合飞桨核心框架 2.1 版本全新的自定义 OP 的功能,提供了与飞桨框架无缝衔接的使用体验。
FasterTransformer Decoding Workflow
(1) 大幅提升生成任务的推理能力
在 Transformer 机器翻译、GPT 文本生成两个任务中,分别对比使用动态图版本的性能和内置 Faster 系列的推理 API 后,不同 batch size 下预测性能加速比,从对比数据可以看到无论 Transformer 还是 GPT,均可得到高达 28 倍推理速度提升!
PaddleNLP Transformer 翻译模型加速优化前后的
Nsight Profling 对比图
(2)支持丰富的经典解码策略
PaddleNLP v2.1 提供工业界主流的解码加速支持,包括经典的 Beam Search,以及多个 Sampling-based 的解码方式:如 Diverse Sibling Search[6]、T2T 版本的 Beam Search 实现[7]、Top-k/Top-p Sampling 等。丰富的加速策略可以满足对话、翻译等工业场景的实际应用,同时 PaddleNLP 的加速实现也在百度内部经过了大规模互联网业务的真实考验。
表 1:PaddleNLP 2.1 支持加速的模型结构与解码策略
更多 PaddleNLP 加速使用文档可以参考:
https://github.com/PaddlePaddle/PaddleNLP/blob/develop/docs/advanced_guide/fastertransformer.rst
别的不需要多说了,大家访问 GitHub 点过 star 之后自己体验吧:
https://github.com/PaddlePaddle/PaddleNLP
版权声明: 本文为 InfoQ 作者【百度开发者中心】的原创文章。
原文链接:【http://xie.infoq.cn/article/6b9d56b7f2b3478690624ff87】。文章转载请联系作者。
评论