Releases: PaddlePaddle/PaddleNLP
Releases · PaddlePaddle/PaddleNLP
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
PaddleNLP v2.2.6
问题修复
- 优化了AutoModel & AutoTokenizer模块的报错信息 #1902
- 修复了ErnieDoc模型分类任务默认类别缺失的问题 #1867
- 修复了Roberta tokenizer加载本地资源报错的问题 #1821
- 修复了bstc数据集文件缺失的问题
- 优化了xnli数据集的报错信息 #1838
- 修复了FewCLUE数据集中unlabeled.json文件为空的问题 #1881
- 修复了load_dataset读取CLUE tnews数据集所有splits时报错的问题 #1941
- 修复中文阅读理解指标计算偏低的问题 #1874
- 修复textcnn静态图预测报错的问题 #1839
- 修复了文本分类使用预训练模型进行分布式训练时报错的问题 #1839
v2.2.5
PaddleNLP v2.2.4
我们很高兴的发布 PaddleNLP 2.2.4 版本,主要是对 2.2.3 中一些功能的修复,并对部分功能点和文档做了增强,重点如下:
新功能
- 新增西班牙语和荷兰语实体识别数据集 CoNLL-2012。 #1561
功能优化
- 小模型 PP-MiniLM 接入 FasterTokenizer,量化、裁剪后的模型推理速度达到 BERTbase 的 8.8 倍。#1542
- Transformer 动态图支持 O2 级别 AMP 训练@zhangbo9674。#1574
- 语义索引应用增加Paddle Serving支持。 #1558
问题修复
- 修复 ERNIE-Doc 模型 NLTK 包模型下载的错误。#1515
- 修复多个 Transformer 模型在 FP16 精度下
attention_mask
计算溢出的错误。#1585 - 修复 LAC 模型 TRT 预测配置错误。 #1606
- 修复 BART 文本摘要示例的评估错误。#1560
- 修复 BART 文本摘要示例在 Windows 环境下报错。 #1588
- 修复
Tokenizer.__call__()
方法truncation_strategy不生效的bug。 #1615 - 修复 RobertaTokenizer 不能获取special token的bug。 #1618
- 修复BART和mBART不支持2维attention mask。#1637
- 修复CNN/DailyMail 和 XNLI 数据集多卡下载报错。#1587
文档更新
- 为 ERNIE-1.0 训练任务添加了 CLUECorpusSmall 数据集训练教程。#1555
社区贡献
- 新增 FNet @HJHGJGHHG。#1499
- 修复 Read the Docs 文档 Dataset API 页面格式错误的问题@GT-ZhangAcer。#1570
PaddleNLP v2.2.2
New Features
新增产业应用案例
新增评论观点抽取的应用案例 #1505
- 提供评论观点抽取和属性级情感分类能力,并支持全流程情感分析推理能力
- 提供基于 PP-MiniLM 小模型推理加速解决方案,推理性能提升 900%
新增端到端语义检索引擎应用案例 #1507
- 支持监督语义索引模型 In-Batch Negatives 基于 Paddle Inference 计算文本对相似度的推理能力
- 支持无监督语义索引模型 SimCSE 基于 Paddle Inference 计算文本对相似度的推理能力
FasterGeneration
- 优化 JIT 载入自定义 op 逻辑以优化
enable_faster_encoder()
need_build
参数以及 pipeline 方式使用多个加速模型时框架冗余的 Warning,提升使用体验 #1495
New Models
- 新增长文本语言模型 Funnel Transformer,新增基于Funnel Transformer的SQUAD问答任务示例 #1419
Bugfix
PaddleNLP v2.2.1
New Features
中文特色小模型 PP-MiniLM 发布 #1403
- 推理速度快,推理速度是BERT-base(12L768H) 4.2倍
- 模型参数少,模型参数量相对BERT-base(12L768H) 减少52%
- 模型精度高,在中文语言理解评测基准 CLUE 7 个分类数据集上精度比 BERT-base(12L768H) 高 0.32
产业级语义检索框架发布 #1463
- 一站式提供高可用的训练&预测语义检索框架,同时集成高性能 ANN 引擎 Milvus
- 召回模型方案覆盖有监督、无监督多种数据场景,支持只基于无监督数训练语义索引模型
Taskflow
- Taskflow 新增中文对话PLATO-mini任务,支持多轮对话记忆功能 #1383
FasterGeneration
- 生成解码框架新增注意力机制QKV融合,解码性能最高提升 8% #1455
Bugfix
- 修复使用Paddle2.2及其以下版本兼容性问题 #1450
- 修复MSRA_NER示例中 max_steps 选项,不生效的问题 #1451
- 修复ERNIE-1.0模型预训练部分参数,增强预训练稳定性 #1344
- 修复EFL及ernie-matching在windows下的静态图预测问题 #1480
- 修复Taskflow文本相似度计算任务windows兼容性问题 #1465
- 修复LayoutXLM模型加载时无法找到yaml文件的问题 #1454
- 修复SqueezeBert模型vocab等资源路径的缺失和typo #1454
- 修复FasterGeneration下diversity rate的结果错误的问题 #1477
- 修复FasterGeneration下GPT模型的repetition_penalty被屏蔽的问题 #1471
PaddleNLP v2.2.0
New features
预训练加速训推一体加速开发FasterERNIE
- 新增支持高性能文本预处理算子FasterTokenizer,提供更快的文本预处理 #1220
- 融合Fused TransformerEncoder API,极致优化Transformer性能 #1308
- 新增
to_static()
接口,支持文本处理与模型计算整图导出,提供更易用的模型导出 - 优化C++部署体验,显著降低C++开发成本
- 提供文本分类、序列标注使用示例
面向生成任务的高性能加速组件FasterGeneration
- FasterTransformer升级至V4.0版本
- Transformer 加速版本在 sampling 以及 3 种 beam search 策略下新增 force decoding 策略支持
- 生成API新增Diverse Beam Search策略
Taskflow升级
- 新增名词短语标注及文本相似度计算任务 #1246 #1345
- 句法分析任务增加已分词方式解析句法树能力 #1351
- 中文分词、词性标注、命名实体识别任务支持用户自定义词典干预策略 #364 #1420
- 知识挖掘任务支持自定义模型、自定义Term-Linking等进阶使用方式 #1329
- 解语套件词类知识标注工具WordTag支持增量数据训练 #1329
- 解语套件百科知识树TermTree使用体验完善,支持定制化使用 #1329
更多预训练模型
- 新增表单多模态模型LayoutLM、LayoutLMv2、LayoutXLM模型
- 新增基于unimo-text-1.0-lcsts-new中文摘要预训练模型
- 新增mBART和mBART50模型,用于多语言翻译
- 解语套件新增NPTag模型,可直接用于名词短语标注,标签类别2000+ #1246
- 新增GPTModel预训练权重 gpt2-en、gpt2-large-en、gpt2-xl-en,可用于英文文本生成 #1302
- 新增Mengzi中文预训练模型
自动模型与分词器加载
- 新增AutoModel和AutoTokenizer模块,可更便捷加载不同网络结构预训练模型与分词器
社区贡献
- 新增BertJapaneseTokenizer & 新增BertJapanese模型预训练权重 by @iverxin in #1115
- 新增BlenderbotSmall & Blenderbot模型 #868 ,感谢 @kevinng77 的贡献
- 新增SqueezeBERT模型 #937 ,感谢 @renmada 的贡献
- 新增CTRL模型 #921 ,感谢 @JunnYu 的贡献
- 新增T5模型 #916 ,感谢 @JunnYu 的贡献
- 新增Reformer模型 #870 ,感谢 @JunnYu 的贡献
- 新增MobileBert模型 #1160 ,感谢 @nosaydomore 的贡献
- 新增ChineseBert模型 #1100 ,感谢 @27182812 的贡献
- 新增End-to-End Memory Network模型 #1046,感谢 @yulangz 的贡献
- 完善Bert模型下游任务代码 & 新增Bert预训练权重 by @JunnYu in #1085
- 完善BigBird模型下游任务代码 by @iverxin in #1114
- 完善Electra模型下游任务代码 & 新增Electra预训练权重 by @JunnYu in #1086
- 完善Roberta模型下游任务代码 & 新增Roberta预训练权重 by @nosaydomore in #1133
- 完善GPT模型下游任务代码 & 新增GPT预训练权重 by @JunnYu in #1088
- 完善XLNet模型下游任务代码 & 新增DistilBert预训练权重by @renmada in
Misc
- 新增文本分类数据集XNLI #1336
- GPT-3模型预训练,支持静态图Pure FP16训练 #1353
- 命名实体识别,增加了peoples_daily_ner数据集支持,同时支持使用ERNIE模型 #1361
- 优化ViterbiDecoder解码性能,在GPU设备上可提升10倍 #1291
Bugfix
PaddleNLP v2.1.1
New Features
GPT-3动态图模式增加pure fp16支持。
Taskflow情感分析任务增加预测score输出。
Generation API新增Diverse Sibling Search策略。
Generation API新增Repetition Penalty策略。@JunnYu
Bug Fix
修复 FasterUNIMOText 在 top_p 为 1.0 时不能调用加速的问题。
PaddleNLP v2.1.0
New Features
- 新增开箱即用的工业级NLP能力Taskflow,预置中文分词、词性标注、专名识别、句法分析、情感分析、文本纠错等8个任务,更多使用说明请参考Taskflow文档。
- 新增基于Promot Tuning的NLP小样本学习应用实例,配合R-Drop策略显著提升效果,更多技术细节请参考FewCLUE。
- 集成FasterTransformer加速能力,显著提升翻译、对话等文本生成任务的推理速度。支持Transformer/GPT/BART等主流生成结构与Beam Search与Sampling-based解码策略,更多使用说明请参考FasterTransformer使用文档。
New Examples
- 新增无监督语义匹配模型SimCSE。
- 新增模型压缩策略MiniLMv2。
- 新增文本纠错模型ERNIE-CSC。
- 新增句法分析应用示例dependency_parsing。
- 新增小样本学习应用示例few_shot。
- 新增文本摘要应用示例BART。
- 完善ERNIE-1.0/GPT/GPT-3的多机分布式预训练代码。@zhaoyinglia @wangxicoding
New Pretrained Models
- 新增RoFormer模型 #804 ,感谢 @JunnYu 的贡献🎉。
- 新增ConvBert模型 #819,感谢 @JunnYu 的贡献🎉。
- 新增MPNet模型 #869,感谢 @JunnYu 的贡献🎉。
New Dataset
- 新增文本摘要数据集CNN/DailyMail #1061。
Bug Fix
- 修复维特比解码在长度为1的输入下预测不准确的问题 #1126 。
- 修复词法分析模型的计算精度问题 #962 。
- 修复Tokenizer计算offset mapping时对特殊字符处理的问题 #882,感谢 @JunnYu 的贡献🎉。
- 修复Windows环境下出现的int类型变量错误 #856 #1023 #1146。
Docs
- 优化Transformer API Reference文档,更加清晰准确易懂。感谢 @huhuiwen99 的贡献🎉。
New Contributors
- @huhuiwen99 made their first contribution in #914 🎉
- @iamqiz made their first contribution in #950 🎉
- @ForFishes made their first contribution in #986 🎉
- @AI-Mart made their first contribution in #1009 🎉
- @zhaoyinglia made their first contribution in #1064 🎉
PaddleNLP v2.0.8
New Pretrained-Models
新增文本生成UNIMO-text模型和tokenizer,包括unimo-text-1.0和unimo-text-1.0-large。
新增长文本预训练模型ERNIE-Doc。
New Dataset
新增问题生成数据集DuReaderQG。
新增文案生成数据集AdvertiseGen。
新增短摘要生成数据集LCSTS_new。
新增长文本语义匹配数据集CAIL2019-SCM。
新增长阅读理解数据集C3。
新增文本分类数据集HYP、THUCNews。
New Feature
新增Layerwise-decay优化器。
新增 R-Drop loss API.
BugFix
修复生成API中min_out_len参数不起作用的bug和一些文档问题。
修复tokenizer计算offset mapping时会把原本有意义的#删除的问题。 @JunnYu
New Examples
新增【千言:面向事实一致性的生成评测比赛】baseline。
新增【千言-问题匹配鲁棒性评测】baseline.。