性能加速最高可达28倍!这个NLP工具包太NB了!

机器学习AI算法工程 2021-10-14 23:17


导读

PaddleNLP 是兼具科研学习和产业实践能力的 Python NLP 工具包,提供中文领域丰富的预训练模型和部署工具,被高校、企业开发者广泛应用。近日,PaddleNLP v2.1正式发布,为开发者带来三项重要更新:

  • 开箱即用的产业级NLP预置任务能力Taskflow:八大经典场景一键预测。
  • 预训练时代的微调新范式应用:三行代码显著提升小样本学习效果。
  • 高性能预测加速:文本生成任务28倍加速效果。
传送门:
GitHub项目: https://github.com/PaddlePaddle/PaddleNLP

PaddleNLP整体开源

能力速览


PaddleNLP是飞桨生态的自然语言处理开发库,旨在提升文本领域的开发效率,为开发者带来模型构建、训练及预测部署的全流程优质体验。

PaddleNLP功能全景图

PaddleNLP项目自发布以来,就受到广大NLPer的关注。在2021年6月PaddleNLP官方直播打卡课中,有7000+ 用户参加PaddleNLP的项目学习和实践,加速了自身科研和业务实践进程,同时也带动PaddleNLP多次登上GitHub Trending榜单。

那么最近的2021年10月份更新,PaddleNLP又给大家带来哪些惊喜呢?下文将为您逐一细细解读。

PaddleNLP 全新升级
深入解读

  • 1. 开箱即用的产业级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

  • 2. 预训练时代的微调新范式应用:三行代码提升小样本学习效果
Few-Shot Learning(以下简称FSL)是机器学习的一个子领域。在仅有少数监督样本的情况下,训练得到强泛化能力的模型,实现对新数据的分类。
结合最新的Prompt Tuning的思想,PaddleNLP中集成了三大前沿FSL算法:
  (1)EFL(Entailment as Few-Shot Learner)[1],将 NLP Fine-tune任务统一转换为二分类的文本蕴含任务。
  (2)PET(Pattern-Exploiting Training)[2],通过人工构建模板,将分类任务转成完形填空任务。
  (3)P-Tuning[3]:自动构建模板,将模版的构建转化为连续参数优化问题。
使用小样本学习策略,仅仅32条样本即可在电商评论分类任务上取得87%的分类精度[4]。此外,PaddleNLP集成 R-Drop 策略作为 API,只需要增加三行代码即可在原任务上快速涨点,如图所示:

https://github.com/PaddlePaddle/PaddleNLP/tree/develop/examples/few_shot

  • 3. 高性能预测加速:文本生成场景高达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

直播预告

除了重磅发版以外呢,我们还为大家精心准备了配套课程,在10月13-15日,连续三天PaddleNLP技术精讲课程,百度飞桨的明星讲师们历时一个月呕心沥血打磨的三日课,小伙伴们速度扫码报名,快速get PaddleNLP最新技能点!
扫描二维码报名,立即加入技术交流群

精彩内容抢先看👇   


官网地址:https://www.paddlepaddle.org.cn
PaddleNLP 项目地址:
GitHub: https://github.com/PaddlePaddle/PaddleNLP
Gitee: https://gitee.com/paddlepaddle/PaddleNLP

参考文献:
[1]Entailment as Few-Shot Learner
(https://arxiv.org/pdf/2104.14690.pdf)
[2] Exploiting Cloze Questions for Few Shot Text Classification and Natural Language Inference
(https://arxiv.org/pdf/2001.07676.pdf)
[3] GPT Understands, Too
(https://arxiv.org/pdf/2103.10385.pdf)
[4]FewCLUE: A Chinese Few-shot Learning Evaluation Benchmark
(https://arxiv.org/pdf/2107.07498.pdf)
[5] https://github.com/NVIDIA/FasterTransformer
[6] A Simple, Fast Diverse Decoding Algorithm for Neural Generation
(https://arxiv.org/pdf/1611.08562.pdf)
[7] Google’s Neural Machine Translation System: Bridging the Gap between Human and Machine Translation (https://arxiv.org/pdf/1609.08144.pdf)
推荐阅读