Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Alter faster to fast in FG #4213

Merged
merged 10 commits into from
Jan 1, 2023
Merged
Show file tree
Hide file tree
Changes from 7 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions README_cn.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@
* 💪 框架升级:🏆 [**小样本 Prompt API**](./docs/advanced_guide/prompt.md) 升级,提示定义更加灵活,支撑 [FewCLUE AutoPrompt 方案](https://mp.weixin.qq.com/s/_JPiAzFA1f0BZ0igdv-EKA);🕸 [**Trainer API**](./docs/trainer.md) 升级,新增sharding、bf16训练,新增Seq2seqTrainer、IterableDataset支持。
* 🔨 产业应用:🏃[**通用信息抽取 UIE 能力升级**](./model_zoo/uie),支持量化训练及 INT8 精度推理,进一步提升 UIE 推理速度。
* 🔥 **2022.10.27 发布 [PaddleNLP v2.4.2](https://github.com/PaddlePaddle/PaddleNLP/releases/tag/v2.4.2)**
* NLG能力扩充:新增📄[**基于Pegasus的中文文本摘要方案**](https://github.com/PaddlePaddle/PaddleNLP/tree/develop/applications/text_summarization/pegasus),效果领先;新增❓[**问题生成解决方案**](./examples/question_generation),提供基于业界领先模型UNIMO-Text和大规模多领域问题生成数据集训练的通用问题生成预训练模型。均支持Taskflow一键调用,支持FasterGeneration高性能推理,训练推理部署全流程打通。
* NLG能力扩充:新增📄[**基于Pegasus的中文文本摘要方案**](https://github.com/PaddlePaddle/PaddleNLP/tree/develop/applications/text_summarization/pegasus),效果领先;新增❓[**问题生成解决方案**](./examples/question_generation),提供基于业界领先模型UNIMO-Text和大规模多领域问题生成数据集训练的通用问题生成预训练模型。均支持Taskflow一键调用,支持FastGeneration高性能推理,训练推理部署全流程打通。
* 发布 🖼[**PPDiffusers**](https://github.com/PaddlePaddle/PaddleNLP/tree/develop/ppdiffusers):支持跨模态(如图像与语音)训练和推理的扩散模型(Diffusion Model)工具箱,可快速体验、二次开发 **Stable Diffusion**,持续支持更多模型。

* 🔥 **2022.10.14 发布 [PaddleNLP v2.4.1](https://github.com/PaddlePaddle/PaddleNLP/releases/tag/v2.4.1)**
Expand Down Expand Up @@ -257,7 +257,7 @@ AutoTokenizer.from_pretrained("ernie-3.0-medium-zh", use_fast=True)

为了实现更极致的模型部署性能,安装FastTokenizers后只需在`AutoTokenizer` API上打开 `use_fast=True`选项,即可调用C++实现的高性能分词算子,轻松获得超Python百余倍的文本处理加速,更多使用说明可参考[FastTokenizer文档](./fast_tokenizer)。

#### ⚡️ FasterGeneration:高性能生成加速库
#### ⚡️ FastGeneration:高性能生成加速库

<div align="center">
<img src="https://user-images.githubusercontent.com/11793384/168407831-914dced0-3a5a-40b8-8a65-ec82bf13e53c.gif" width="400">
Expand All @@ -268,10 +268,10 @@ model = GPTLMHeadModel.from_pretrained('gpt-cpm-large-cn')
...
outputs, _ = model.generate(
input_ids=inputs_ids, max_length=10, decode_strategy='greedy_search',
use_faster=True)
use_fast=True)
```

简单地在`generate()`API上打开`use_faster=True`选项,轻松在Transformer、GPT、BART、PLATO、UniLM等生成式预训练模型上获得5倍以上GPU加速,更多使用说明可参考[FasterGeneration文档](./faster_generation)。
简单地在`generate()`API上打开`use_fast=True`选项,轻松在Transformer、GPT、BART、PLATO、UniLM等生成式预训练模型上获得5倍以上GPU加速,更多使用说明可参考[FastGeneration文档](./fast_generation)。

#### 🚀 Fleet:飞桨4D混合并行分布式训练技术

Expand Down
8 changes: 4 additions & 4 deletions README_en.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
* 💪 Framework upgrade: 🏆 Upgrade [**Prompt API**](./docs/advanced_guide/prompt.md), supporting more flexible prompt definitions and winning the 1st place in [FewCLUE](https://mp.weixin.qq.com/s/_JPiAzFA1f0BZ0igdv-EKA); 🕸 Upgrade [**Trainer API**](./docs/trainer.md), supporting Seq2seqTrainer, IterableDataset as well as bf16 and sharding strategies.
* 🔨 Industrial application: 🏃 Upgrade for [**Universal Information Extraction**](./model_zoo/uie). Support **quantization aware training** and INT8 precision inference for inference performance boost.
* 🔥 **2022.10.27 [PaddleNLP v2.4.2](https://github.com/PaddlePaddle/PaddleNLP/releases/tag/v2.4.2) Released!**
* NLG Upgrade: 📄 Release [**Solution of Text Summarization**](https://github.com/PaddlePaddle/PaddleNLP/tree/develop/applications/text_summarization/pegasus) based on Pegasus;❓ Release [**Solution of Problem Generation**](./examples/question_generation), providing **general problem generation pre-trained model** based on Baidu's UNIMO Text and large-scale multi domain problem generation dataset. Supporting high-performance inference ability based on FasterGeneration , and covering the whole process of training , inference and deployment.
* NLG Upgrade: 📄 Release [**Solution of Text Summarization**](https://github.com/PaddlePaddle/PaddleNLP/tree/develop/applications/text_summarization/pegasus) based on Pegasus;❓ Release [**Solution of Problem Generation**](./examples/question_generation), providing **general problem generation pre-trained model** based on Baidu's UNIMO Text and large-scale multi domain problem generation dataset. Supporting high-performance inference ability based on FastGeneration , and covering the whole process of training , inference and deployment.
* 🔥 **2022.10.14 [PaddleNLP v2.4.1](https://github.com/PaddlePaddle/PaddleNLP/releases/tag/v2.4.1) Released!**
* 🧾 Release multilingual/cross-lingual pre-trained models [**ERNIE-Layout**](./model_zoo/ernie-layout/) which achieves new SOTA results in 11 downstream tasks. **DocPrompt** 🔖 based on ERNIE-Layout is also released which has the ability for multilingual document information extraction and question ansering.
* 🔥 **2022.9.6 [PaddleNLPv2.4](https://github.com/PaddlePaddle/PaddleNLP/releases/tag/v2.4.0) Released!**
Expand Down Expand Up @@ -242,7 +242,7 @@ AutoTokenizer.from_pretrained("ernie-3.0-medium-zh", use_fast=True)

Set `use_fast=True` to use C++ Tokenizer kernel to achieve 100x faster on text pre-processing. For more usage please refer to [FastTokenizer](./fast_tokenizer).

#### ⚡ FasterGeneration: High Perforance Generation Library
#### ⚡ FastGeneration: High Perforance Generation Library

<div align="center">
<img src="https://user-images.githubusercontent.com/11793384/168407831-914dced0-3a5a-40b8-8a65-ec82bf13e53c.gif" width="400">
Expand All @@ -253,10 +253,10 @@ model = GPTLMHeadModel.from_pretrained('gpt-cpm-large-cn')
...
outputs, _ = model.generate(
input_ids=inputs_ids, max_length=10, decode_strategy='greedy_search',
use_faster=True)
use_fast=True)
```

Set `use_faster=True` to achieve 5x speedup for Transformer, GPT, BART, PLATO, UniLM text generation. For more usage please refer to [FasterGeneration](./faster_generation).
Set `use_fast=True` to achieve 5x speedup for Transformer, GPT, BART, PLATO, UniLM text generation. For more usage please refer to [FastGeneration](./fast_generation).

#### 🚀 Fleet: 4D Hybrid Distributed Training

Expand Down
10 changes: 5 additions & 5 deletions applications/text_summarization/pegasus/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
- [模型训练](#模型训练)
- [模型预测](#模型预测)
- [模型推理部署](#模型推理部署)
- [FasterGeneration加速及模型静态图导出](#fastergeneration加速及模型静态图导出)
- [FastGeneration加速及模型静态图导出](#fastgeneration加速及模型静态图导出)
- [模型部署](#模型部署)
- [References](#references)

Expand All @@ -30,7 +30,7 @@

- 效果领先。在LCSTS上效果达到SOTA。
- 开箱即用。本项目提供TaskFlow接口,无需训练,仅需几行代码便可预测。
- 高性能推理。本项目基于[FasterGeneration](https://github.com/PaddlePaddle/PaddleNLP/tree/develop/faster_generation)
- 高性能推理。本项目基于[FastGeneration](https://github.com/PaddlePaddle/PaddleNLP/tree/develop/fast_generation)
进行推理加速,能够提供更高性能的推理体验。
- 训练推理全流程打通。本项目提供了全面的定制训练流程,从数据准备、模型训练预测,到模型推理部署,一应俱全。

Expand Down Expand Up @@ -90,7 +90,7 @@ IDEA-CCNL/Randeng-Pegasus-238M-Summary-Chinese"模型,还支持large模型: "I

- 模型部署需要将保存的最佳模型参数(动态图)导出成静态图参数,用于后续的推理部署。

- 文本摘要应用提供了基于Paddle Inference的本地部署predictor,并且支持在GPU设备使用FasterGeneration进行加速
- 文本摘要应用提供了基于Paddle Inference的本地部署predictor,并且支持在GPU设备使用FastGeneration进行加速

- 文本摘要应用提供了基于Paddle Serving的服务端部署方案。

Expand Down Expand Up @@ -259,10 +259,10 @@ Finetuned baseline的模型在[LCSTS](https://aclanthology.org/D15-1229/)测试

### 模型推理部署

#### FasterGeneration加速及模型静态图导出
#### FastGeneration加速及模型静态图导出

使用动态图训练结束之后,可以通过[静态图导出脚本](export_model.py)
实现基于FasterGeneration的高性能预测加速,并将动态图参数导出成静态图参数,静态图参数保存在`output_path`指定路径中。运行方式:
实现基于FastGeneration的高性能预测加速,并将动态图参数导出成静态图参数,静态图参数保存在`output_path`指定路径中。运行方式:

```shell
python export_model.py \
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ Paddle Inference Python端预测部署主要包含两个步骤:


## 导出预测部署模型
部署时需要使用预测格式的模型(即动态图转静态图操作)。预测格式模型相对训练格式模型而言,在拓扑上裁剪掉了预测不需要的算子,并且会做特定部署优化。具体操作详见[FasterGeneration加速及模型静态图导出](../../README.md)。
部署时需要使用预测格式的模型(即动态图转静态图操作)。预测格式模型相对训练格式模型而言,在拓扑上裁剪掉了预测不需要的算子,并且会做特定部署优化。具体操作详见[FastGeneration加速及模型静态图导出](../../README.md)。

## 基于Python预测
<!-- 同上,高性能预测的默认输入和输出形式也为文件,可分别通过 test_path 和 save_path 进行指定,通过如下命令便可以基于Paddle Inference 进行高性能预测: -->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ pip install paddle-serving-server-gpu==0.8.3.post112 # -i https://pypi.tuna.tsin

使用Paddle Serving做服务化部署时,需要将保存的inference模型转换为serving易于部署的模型。

用已安装的paddle_serving_client将静态图参数模型转换成serving格式。关于如何使用将训练后的动态图模型转为静态图模型详见[FasterGeneration加速及模型静态图导出](../../README.md)。
用已安装的paddle_serving_client将静态图参数模型转换成serving格式。关于如何使用将训练后的动态图模型转为静态图模型详见[FastGeneration加速及模型静态图导出](../../README.md)。

模型转换命令如下:
```shell
Expand Down
2 changes: 1 addition & 1 deletion applications/text_summarization/pegasus/predict.py
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,7 @@ def generate(args):
length_penalty=args.length_penalty,
early_stopping=args.early_stopping,
diversity_rate=args.diversity_rate,
use_faster=args.faster,
use_fast=args.faster,
)
total_time += time.time() - start_time
if step % args.logging_steps == 0:
Expand Down
10 changes: 5 additions & 5 deletions applications/text_summarization/unimo-text/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
- [模型训练](#模型训练)
- [模型预测](#模型预测)
- [模型推理部署](#模型推理部署)
- [FasterGeneration加速及模型静态图导出](#fastergeneration加速及模型静态图导出)
- [FastGeneration加速及模型静态图导出](#fastgeneration加速及模型静态图导出)
- [模型部署](#模型部署)
- [References](#references)

Expand All @@ -30,7 +30,7 @@
本项目是基于预训练语言模型UNIMO-Text的文本摘要,具有以下优势:
- 效果领先。
- 开箱即用。本项目提供TaskFlow接口,无需训练,仅需几行代码便可预测。
- 高性能推理。本项目基于[FasterGeneration](https://github.com/PaddlePaddle/PaddleNLP/tree/develop/faster_generation)进行推理加速,能够提供更高性能的推理体验。
- 高性能推理。本项目基于[FastGeneration](https://github.com/PaddlePaddle/PaddleNLP/tree/develop/fast_generation)进行推理加速,能够提供更高性能的推理体验。
- 训练推理全流程打通。本项目提供了全面的定制训练流程,从数据准备、模型训练预测,到模型推理部署,一应俱全。

### 基于预训练语言模型的文本摘要
Expand Down Expand Up @@ -92,7 +92,7 @@ PaddleNLP提供开箱即用的产业级NLP预置任务能力,无需训练,

- 模型部署需要将保存的最佳模型参数(动态图)导出成静态图参数,用于后续的推理部署。

- 文本摘要应用提供了基于Paddle Inference的本地部署predictor,并且支持在GPU设备使用FasterGeneration进行加速
- 文本摘要应用提供了基于Paddle Inference的本地部署predictor,并且支持在GPU设备使用FastGeneration进行加速

- 文本摘要应用提供了基于Paddle Serving的服务端部署方案。

Expand Down Expand Up @@ -259,9 +259,9 @@ Finetuned baseline的模型在[LCSTS](https://aclanthology.org/D15-1229/)测试

### 模型推理部署

#### FasterGeneration加速及模型静态图导出
#### FastGeneration加速及模型静态图导出

使用动态图训练结束之后,可以通过[静态图导出脚本](export_model.py)实现基于FasterGeneration的高性能预测加速,并将动态图参数导出成静态图参数,静态图参数保存在`output_path`指定路径中。运行方式:
使用动态图训练结束之后,可以通过[静态图导出脚本](export_model.py)实现基于FastGeneration的高性能预测加速,并将动态图参数导出成静态图参数,静态图参数保存在`output_path`指定路径中。运行方式:

```shell
python export_model.py \
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ Paddle Inference Python端预测部署主要包含两个步骤:


## 导出预测部署模型
部署时需要使用预测格式的模型(即动态图转静态图操作)。预测格式模型相对训练格式模型而言,在拓扑上裁剪掉了预测不需要的算子,并且会做特定部署优化。具体操作详见[FasterGeneration加速及模型静态图导出](../../README.md)。
部署时需要使用预测格式的模型(即动态图转静态图操作)。预测格式模型相对训练格式模型而言,在拓扑上裁剪掉了预测不需要的算子,并且会做特定部署优化。具体操作详见[FastGeneration加速及模型静态图导出](../../README.md)。

## 基于Python预测
<!-- 同上,高性能预测的默认输入和输出形式也为文件,可分别通过 test_path 和 save_path 进行指定,通过如下命令便可以基于Paddle Inference 进行高性能预测: -->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ pip install paddle-serving-server-gpu==0.8.3.post112 # -i https://pypi.tuna.tsin

使用Paddle Serving做服务化部署时,需要将保存的inference模型转换为serving易于部署的模型。

用已安装的paddle_serving_client将静态图参数模型转换成serving格式。关于如何使用将训练后的动态图模型转为静态图模型详见[FasterGeneration加速及模型静态图导出](../../README.md)。
用已安装的paddle_serving_client将静态图参数模型转换成serving格式。关于如何使用将训练后的动态图模型转为静态图模型详见[FastGeneration加速及模型静态图导出](../../README.md)。

模型转换命令如下:
```shell
Expand Down
2 changes: 1 addition & 1 deletion docs/FAQ.md
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ emb.set_state_dict(load_layer_state_dict) # 加载模型参数

##### Q1.5 如何提升模型的性能,提升QPS?

**A:** 从工程角度,对于服务器端部署可以使用[Paddle Inference](https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/05_inference_deployment/inference/inference_cn.html)高性能预测引擎进行预测部署。对于Transformer类模型的GPU预测还可以使用PaddleNLP中提供的[FasterTransformer](https://github.com/PaddlePaddle/PaddleNLP/tree/develop/paddlenlp/ops)功能来进行快速预测,其集成了[NV FasterTransformer](https://github.com/NVIDIA/FasterTransformer)并进行了功能增强。
**A:** 从工程角度,对于服务器端部署可以使用[Paddle Inference](https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/05_inference_deployment/inference/inference_cn.html)高性能预测引擎进行预测部署。对于Transformer类模型的GPU预测还可以使用PaddleNLP中提供的[FastGeneration](https://github.com/PaddlePaddle/PaddleNLP/tree/develop/paddlenlp/ops)功能来进行快速预测,其集成了[NV FasterTransformer](https://github.com/NVIDIA/FasterTransformer)并进行了功能增强。

从模型策略角度,可以使用一些模型小型化技术来进行模型压缩,如模型蒸馏和裁剪,通过小模型来实现加速。PaddleNLP中集成了ERNIE-Tiny这样一些通用小模型供下游任务微调使用。另外PaddleNLP提供了[模型压缩示例](https://github.com/PaddlePaddle/PaddleNLP/tree/develop/examples/model_compression),实现了DynaBERT、TinyBERT、MiniLM等方法策略,可以参考对自己的模型进行蒸馏压缩。

Expand Down
Loading