PaddleNLP v2.3.0
New Features
通用信息抽取技术 UIE
- 新增基于统一结构生成的通用开放域信息抽取框架 UIE (Universal Information Extraction),单个模型可以支持命名实体识别、关系抽取、事件抽取、情感分析等任务,同时在模型规模上支持base和tiny两种结构,满足多种业务场景需求,均支持Taskflow一键预测。
- 新增医疗领域信息抽取模型 UIE-Medical,支持医疗专名识别和医疗关系抽取两大任务,并支持小样本学习,预测精度业界领先。
文心NLP大模型升级
- 新增文心大模型ERNIE 3.0轻量级版本,包含ERNIE 3.0-Base(12层)和 ERNIE 3.0-Medium(6层)两个中文模型,在CLUE Benchmark上实现同规模模型中文最佳效果。
- 新增中文医疗领域预训练模型 ERNIE-Health,支持医学文本信息抽取(实体识别、关系抽取)、医学术语归一化、医学文本分类、医学句子关系判定和医学问答共5大类任务,并提供 CBLUE benchmark 使用实例。
- 新增PLATO-XL(11B),全球首个百亿参数对话预训练生成模型,提供FasterGeneration高性能GPU加速,相比上版本推理速度加速2.7倍,更多使用说明请查阅PLATO-XL with FasterGeneration
FasterGeneration 高性能生成加速
FasterGeneration本次发版进行了以下的升级,更多使用说明请查阅FasterGeneration文档
速度更快
- 更细致的融合加速:UnifiedTransformer、UNIMOText 模型Context计算加入加速支持,速度相比上个版本提升20%~110%
- 更丰富的模型支持:扩展了
size_per_head
支持范围,支持了 CPM-Large(2.6B)和PLATO-XL(11B)等大模型生成加速 - 更快的大模型推理:支持Tensor并行和Pipeline并行推理,CPM-Large 上 4卡 Tensor 并行速度较单卡高性能生成提升40%,PLATO-XL在4卡加速比为单卡的2倍
显存更少
- 优化模型加载转换显存占用,支持直接使用 FP16 模型并允许去除原始未融合的QKV权重参数
部署更易
- 新增参数支持直接使用 Encoder 加速能力,打通 Encoder 加速与 Decoding 加速
- 支持UnifiedTransformer、UNIMOText 等更多加速版本模型导出静态图并在Paddle Inference实现高性能部署
更多产业范例与应用场景
- 新增汽车说明书智能问答应用范例,基于百度领先的开放域问答技术RocketQA和多模态多语言预训练模型LayoutXLM提供了多模态文档问答的应用范例和最佳实践。
- 新增智能语音指令解析应用范例,可广泛应用于智能语音填单、智能语音交互、智能语音检索、手机APP语音唤醒等场景,提高人机交互效率。
- 新增端到端智能问答系统应用范例,提供低成本快速搭建可视化智能问答系统能力。
- 新增端到端语义检索系统应用范例,提供低成本快速搭建语义检索系统能力。
- 新增 NLP 模型可解释性应用示例 #1752 ,感谢 @binlinquge 的贡献
- 新增 CLUE Benchmark 评测脚本,更全面的了解PaddleNLP中文预训练模型的效果,帮助开发者便捷完成中文模型选型
- BERT 静态图训练增加 Graphcore IPU 支持 #1793 更多详情请查阅BERT IPU,感谢 @gglin001 的贡献
更多的预训练模型
- 新增 300+ 重要模型权重,涵盖 BERT、GPT、T5 等模型结构,目前PaddleNLP精选预训练模型数达500+
- 新增 FNet 模型 #1499,感谢 @HJHGJGHHG 的贡献
- 新增 ProphetNet 模型 #1698,感谢 @d294270681 的贡献
- 新增 Megatron-LM 模型 #1678,感谢 @Beacontownfc 的贡献
- 新增 LUKE 模型 #1677,感谢 @Beacontownfc 的贡献
- 新增 RemBERT 模型 #1701 ,感谢 @Beacontownfc 的贡献
Trainer API
Data API
- 兼容 HuggingFace Datasets,可以直接使用其
load_dataset
返回的数据集(建议在先import paddlenlp
后再import datasets) - 新增
DataCollatorWithPadding
、DataCollatorForTokenClassification
等常用任务的 Data Collator,简化数据处理流程 - Tokenizer 功能新增与调整:
- 支持自定义 special token 的保存和加载
- 提供更丰富的 Padding 方式,包括定长 Pad、Longest Pad 以及 Pad 到特定倍数
- 支持获取最长单句输入长度和句对输入长度
- 支持返回 Paddle Tensor 数据
- IMPORTANT NOTE 在输入为 batch 数据时,默认输出格式由 list of dict 调整为 dict of list (dict 为
BatchEncoding
类的对象),可通过return_dict
设置 - IMPORTANT NOTE
save_pretrained
保存内容格式有调整(保证了兼容性,此前保存内容仍能正常使用)
BugFix
Breaking Changes
- 调用 Tokenizer 在输入为 batch 数据时,默认输出格式由 list of dict 调整为 dict of list (dict 为
BatchEncoding
类的对象),可通过return_dict
设置
New Contributors
- @mmglove made their first contribution in #1974
- @luyaojie made their first contribution in #2012
- @wjj19950828 made their first contribution in #2061
- @kev123456 made their first contribution in #2070
- @heliqi made their first contribution in #2073
- @yeliang2258 made their first contribution in #2077
Full Changelog: v2.2.6...v2.3.0