PaddleNLP v2.5.0
Highlights
PaddleNLP 2.5 正式版本全新升级来了!在PaddleNLP 2.5版本中我们发布了飞桨扩散模型工具箱PPDiffuers, 可以降低扩散模型的研究和使用成本。在产业应用侧我们发布了文档信息抽取UIE-X、统一文本分类UTC、统一情感分析UIE-Senta、无监督问答应用;为了降低端上部署难度,我们开源了最新ERNIE 3.0 Tiny v2 系列模型,同时提供了全量化和词表量化加持的端到端语义理解压缩方案。在基础框侧我们提供 PretrainedConfig 来统一预训练模型配置,同时 Trainer API、Prompt API、数据增强API 等框架API做了升级。在2.5正式发版中我们做了Huggingface生态联合相关工作,欢迎大家Huggingface体验PaddleNLP预训练模型效果。在2.4版本到2.5版本中PaddleNLP有 34 位新增Contributors,感谢大家对PaddleNLP开源工作的支持!下面是PaddleNLP 2.5 正式版本的发版内容介绍。
New Features
PPDiffusers 扩散模型工具库发布
大火的AI绘画扩散模型来了 🔥
PPDiffusers是基于PaddlePaddle的扩散模型工具箱,提供多模态的扩散模型,希望助力开发者快速使用和开发文生图、文生视频、文生文相关扩散模型
SOTA扩散模型Pipelines集合
- 通过pipelines几行代码即可使用 Stable Diffusion 绘画,还能够基于FastDeploy高性能加速;这样出色的模型应用pipelines还有30+,包括最新的中文文生图模型 IDEA/Taiyi-Stable-Diffusion、BAAI/AltDiffusion、MindDiffusion/wukonghuahua。
丰富的Noise Scheduler和模型组件
- 提供丰富的噪声调度器(Noise Scheduler),不仅支持主流使用的DDPM、DDIM 和 PNDM,还支持最新的 DPMSolver,14+ Scheduler供您在速度与质量之间权衡。集成多种 Diffusion 模型组件,如UNet1d、UNet2d、UNet2d Conditional,方便的搭建自己的扩散模型。
全方位的训练和推理教程
- 提供了多场景需求的训练教程,从头训练、领域微调及小样本定制化都可以满足。训练后您自己的模型也可以参照FastDeploy推理教程进行高性能加速。
端上语义理解压缩方案
发布基于ERNIE 3.0 Tiny模型的端上语义理解压缩方案,帮助开发者快速在边缘端设备部署预训练模型
ERNIE 3.0 Tiny V2 轻量级模型 发布
- ERNIE 3.0 Tiny V2在V1的模型的基础上使用了下游知识注入、多任务学习等策略,在out-domain、low-resourced 数据上的效果显著提升
基于 PaddleSlim 全量化压缩方案发布
- 首次发布基于PaddleSlim的全量化加速方案,同时支持词表量化来降低部署内存占用,在精度基本无损的情况下模型预测速度大幅提升
FastDeploy 全场景部署
- FastDeploy 是一款全场景、易用灵活、极致高效的 AI 推理部署工具,大大降低在边缘端部署难度
产业范例库升级
文档智能信息抽取UIE-X 应用
- 场景全面: 覆盖文档信息抽取各类主流任务,支持多语言,满足开发者多样信息抽取落地需求
- 效果领先: 以在多模态信息抽取上有突出效果的模型UIE-X作为训练基座,具有广泛成熟的实践应用性
- 简单易用: 通过Taskflow实现三行代码可实现无标注数据的情况下进行快速调用,一行命令即可开启信息抽取训练,轻松完成
部署上线,降低信息抽取技术落地门槛 - 高效调优: 开发者无需机器学习背景知识,即可轻松上手数据标注及模型训练流程
统一文本分类UTC应用
- SOTA效果:UTC是基于统一语义匹配框架建模的SOTA模型,模型效果刷新FewCLUE和ZeroCLUE两大榜单
- 统一建模:单模型可支持多种任务建模,同时支持多分类、多标签、层次分类多个任务
- 快速迁移:零样本分类和小样本迁移能力强,同时提供Label Studio标注工具标注方法,支持快速调优开发
统一情感分析UIE-Senta应用
- 应用全面:新增uie-senta系列模型,模型效果大幅提升,支持语句情感分类,属性抽取,观点抽取等常用情感分析能力
- 高效调优:提供Label Studio标注工具标注方法,开发者通过简单数据标注,即可快速进行模型训练与调优
- 场景验证:真实应用场景打磨的应用工具,解决隐性情感维度抽取、情感维度聚合等真实场景难题
无监督问答应用
- 应用创新:无监督检索式问答系统(即问答对自动生成智能检索式问答),基于问题生成、UIE答案抽取、检索式问答等应用组合来支持以非结构化文本形式为上下文自动生成QA问答对,生成的问答对语料可以通过无监督的方式构建检索式问答系统。
- 简单应用:通过PaddleNLP Pipelines 提供包括问答语料生成、索引库构建、模型服务部署、WebUI可视化一整套端到端智能问答系统能力
基础框架升级
PretrainedConfig
- 模型配置正式化,配置模型参数更加易用,GPT/T5/Ernie/ErnieM/ErnieLayout/Bart/MBart/Unified_Transformer/Unimo/CodeGen 等模型升级至使用PretrainedConfig
Trainer API
- 新增基础训练能力支持,支持混合精度O1、O2两种模式bf16训练 #3352
- 新增分布式技术能力支持,支持recompute重计算、sharding训练支持 #3352
- 新增
Seq2SeqTrainer
支持 seq2seq 类型模型训练。#3352 - 新增
Memory Tracer
支持监控内存、显存 #4181
模型压缩 API
- 模型压缩 API 接入量化训练、词表压缩等功能,并支持各种策略组合 #3271 #4159 #4011
- 模型压缩 API 支持 ERNIE、UIE、BERT、TinyBERT、ELECTRA、ERNIE-M、RoBERTa、PP-MiniLM 等 #3234
数据增强API
- 新增字和句子级别数据增强策略,新增基于反义词和基于word embedding的近义词表,支持文件输入-输出数据增强 #4194
Prompt API
- Template API 新增支持 Prefix-Tuning 和 UniMC
FastGeneration
- 新增T5生成加速,动转静以及预测库支持 #3763
model.generate()
接口调整,use_faster
参数调整为use_fast
#4213- Transformer 生成加速解除 FFN 中间隐层大小必须是 4 倍的限制 #3592
FastTokenizer
- 更新FastTokenizer 1.0.1, 修复PretrainedFastTokenizer中get_vocab_size关键词参数错误 #4339
- 修复FastTokenizer AddToken接口无法接受AddedToken数据结构的错误。#4380
- 修复FastTokenizer单线程分词仍创建线程的问题。 #4441
SimpleServing
- 新增SimpleServing服务化部署方式,SimpleServing是基于FastAPI的二次封装的服务化部署方式,支持Transformers模型和Taskflow几行代码快速部署,降低开发者服务化部署难度 #2845
Huggingface 生态联合
PaddleNLP首次和Huggingface生态联合,支持所有Model和Tokenizer类支持直接从 Huggingface Hub下载和上传,开发者可以直接从Huggingface体验预训练模型效果
- 所有Model和Tokenizer类支持直接从Huggingface Hub下载和上传
- Text Summarization, Fill Mask, Dialogue Taskflow支持直接从Huggingface Hub加载, 并且连通HuggingFace Inference API
- 新增ConversionMixin, bert和gpt模型的
from_pretrained
支持直接从Huggingface Hub加载torch权重的模型
Bugs
- 修复 load_torch 中的特殊情况 #4383
- 修复 基于SKEP的情感分析tokenizer分词问题 #4357
- 修复 FastGeneration 在 FP16 下生成不在词表中 id 的问题 #3936
- 修复 FastGeneration 在新版 PaddlePaddle eager mode 上使用 FP16 上不可用的问题 #3936
- 修复 UnifiedTransformer 和 UNIMOText 在原生生成式 API 使用问题 #3936
- 修复 BART,MBART,T5 在 4D AttentionMask 下生成报错的问题 #3936
- 修复Windows系统下生态模型下载的问题 #3640 #3670
- 修复
from_pretrained_v2
不能load fp16模型的问题。#3902 - 修复Trainer sharding下保存模型报错的问题。#4220
- 修复Windows下用CPU训练Pegasus文本摘要报错的问题。#4431
Others
- 新增数据下载以及全套数据预处理流程,新增数据集自定义接口以及文档说明 #3269
- T5新增prepare_decoder_input_ids_from_labels method #4331
- 重构CLIP和ERNIE VIL模型,新增ChineseCLIP模型 #4270
- 新增CMSIM_LOCK模型 #4388
- Pipelines支持批量的预测,Pipelines新增ERNIE Vilg文图生成、RocketQAv2、ERNIE-Search英文语义检索 #3432 #3512 #3718 #3906 ;PIpelines新增关键字,语义检索两路召回,新增Docker 镜像构建流程,新增Milvus 2.1向量检索工具 #3864 #3315 #3283
New Contributors
- @JamesLim-sy made their first contribution in #3089
- @bruce0210 made their first contribution in #3209
- @wuhuachaocoding made their first contribution in #3211
- @kztao made their first contribution in #3182
- @paopjian made their first contribution in #3221
- @0x45f made their first contribution in #3277
- @HexToString made their first contribution in #3309
- @Septilliony made their first contribution in #3375
- @Elvisambition made their first contribution in #1799
- @YanhuiDua made their first contribution in #3377
- @Yam0214 made their first contribution in #3370
- @alkaideemo made their first contribution in #3424
- @ShawnNew made their first contribution in #3431
- @qipengh made their first contribution in #3434
- @sijunhe made their first contribution in #3411
- @iamWHTWD made their first contribution in #3527
- @USTCKAY made their first contribution in #3521
- @feifei-111 made their first contribution in #3585
- @Wang-ck123 made their first contribution in #3409
- @chenxiangzhen made their first contribution in #3602
- @ymyjl made their first contribution in #3641
- @sserdoubleh made their first contribution in #3662
- @ChenBinfighting1 made their first contribution in #3677
- @firestonelib made their first contribution in #3755
- @co63oc made their first contribution in #3955
- @zjjlivein made their first contribution in #3969
- @DefTruth made their first contribution in #3999
- @christineaa made their first contribution in #3977
- @shentanyue made their first contribution in #4042
- @LazyFyh made their first contribution in #4102
- @pangyoki made their first contribution in #3954
- @GGBond8488 made their first contribution in #4186
- @chncaption made their first contribution in #4040
- @SylarTiaNII made their first contribution in #4228