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

Fix deadlink #2231

Merged
merged 3 commits into from
May 18, 2022
Merged
Show file tree
Hide file tree
Changes from all 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
4 changes: 2 additions & 2 deletions docs/advanced_guide/fastergeneration/fastergeneration.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ FasterGeneration是PaddleNLP v2.2版本加入的一个高性能推理功能,

- 全面支持生成式预训练模型。包括GPT、BART、mBART、UnifiedTransformer和UNIMO-text。
- 支持大多数主流解码策略。包括Beam Search、Sampling、Greedy Search。以及Diverse Sibling Search、Length Penalty等子策略。
- 解码速度快。最高可达非加速版generate函数的 **17倍**。HuggingFace generate函数的 **8倍**。**并支持FP16混合精度计算**。 详细性能试验数据请参见 `FasterGeneration Performence <https://github.com/PaddlePaddle/PaddleNLP/tree/develop/examples/experimental/faster_generation/perf>`_ 。
- 解码速度快。最高可达非加速版generate函数的 **17倍**。HuggingFace generate函数的 **8倍**。**并支持FP16混合精度计算**。 详细性能试验数据请参见 `FasterGeneration Performence <https://github.com/PaddlePaddle/PaddleNLP/tree/develop/faster_generation/perf>`_ 。
- 易用性强。功能的入口为 `model.generate` ,与非加速版生成api的使用方法相同,当满足加速条件时使用jit即时编译高性能算子并用于生成,不满足则自动切换回非加速版生成api。下图展示了FasterGeneration的启动流程:

.. image:: /imgs/faster_generation.png
Expand All @@ -23,7 +23,7 @@ FasterGeneration是PaddleNLP v2.2版本加入的一个高性能推理功能,
python samples/gpt_sample.py


如果是第一次执行,PaddleNLP会启动即时编译( `JIT Compile <https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/07_new_op/new_custom_op_cn.html#jit-compile>`_ )自动编译高性能解码算子。
如果是第一次执行,PaddleNLP会启动即时编译( `JIT Compile <https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/new_op/new_custom_op_cn.html#jit-compile>`_ )自动编译高性能解码算子。

.. code-block::

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ msgstr ""
msgid ""
"解码速度快。最高可达非加速版generate函数的 **17倍**。HuggingFace generate函数的 "
"**8倍**。**并支持FP16混合精度计算**。 详细性能试验数据请参见 `FasterGeneration Performence "
"<https://github.com/PaddlePaddle/PaddleNLP/tree/develop/examples/experimental/faster_generation/perf>`_"
"<https://github.com/PaddlePaddle/PaddleNLP/tree/develop/faster_generation/perf>`_"
" 。"
msgstr ""

Expand All @@ -73,7 +73,7 @@ msgstr ""
#: ../advanced_guide/fastergeneration/fastergeneration.rst:26
msgid ""
"如果是第一次执行,PaddleNLP会启动即时编译( `JIT Compile "
"<https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/07_new_op/new_custom_op_cn.html"
"<https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/new_op/new_custom_op_cn.html#jit-compile"
"#jit-compile>`_ )自动编译高性能解码算子。"
msgstr ""

Expand Down
4 changes: 2 additions & 2 deletions faster_generation/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ FasterGeneration的高性能解码相比原版generate方法加速明显,并
<img src="../docs/imgs/gpt_perf.png" width="800" height ="400" />
</p>

更详细的性能数据请参见[这里](https://github.com/PaddlePaddle/PaddleNLP/tree/develop/examples/faster/faster_generation/perf)
更详细的性能数据请参见[这里](https://github.com/PaddlePaddle/PaddleNLP/tree/develop/faster_generation/perf)

## Quick Start

Expand All @@ -68,7 +68,7 @@ FasterGeneration的高性能解码相比原版generate方法加速明显,并
python samples/gpt_sample.py
```

如果是第一次执行,PaddleNLP会启动即时编译([JIT Compile](https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/07_new_op/new_custom_op_cn.html#jit-compile))自动编译高性能解码算子。
如果是第一次执行,PaddleNLP会启动即时编译([JIT Compile](https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/new_op/new_custom_op_cn.html#jit-compile))自动编译高性能解码算子。

```sh
...
Expand Down
8 changes: 4 additions & 4 deletions model_zoo/gpt/faster_gpt/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,9 +68,9 @@ python export_model.py --model_name_or_path gpt2-medium-en --topk 4 --topp 0.0 -

各个选项的意义与上文的 `infer.py` 的选项相同。额外新增一个 `--inference_model_dir` 选项用于指定保存的模型文件、词表等文件。

若当前环境下没有需要的自定义 op 的动态库,将会使用 JIT 自动编译需要的动态库。如果需要自行编译自定义 op 所需的动态库,可以参考 [文本生成高性能加速](../../../paddlenlp/ops/README.md)。编译好后,可以在执行 `export_model.py` 时使用 `--decoding_lib ../../../paddlenlp/ops/build/lib/libdecoding_op.so` 可以完成导入。
若当前环境下没有需要的自定义 op 的动态库,将会使用 JIT 自动编译需要的动态库。如果需要自行编译自定义 op 所需的动态库,可以参考 [文本生成高性能加速](../../../../paddlenlp/ops/README.md)。编译好后,可以在执行 `export_model.py` 时使用 `--decoding_lib ../../../../paddlenlp/ops/build/lib/libdecoding_op.so` 可以完成导入。

注意:如果是自行编译的话,这里的 `libdecoding_op.so` 的动态库是参照文档 [文本生成高性能加速](../../../paddlenlp/ops/README.md) 中 **`Python 动态图使用自定义 op`** 编译出来的 lib,与相同文档中 **`C++ 预测库使用自定义 op`** 编译产出不同。因此,在使用预测库前,还需要额外导出模型:
注意:如果是自行编译的话,这里的 `libdecoding_op.so` 的动态库是参照文档 [文本生成高性能加速](../../../../paddlenlp/ops/README.md) 中 **`Python 动态图使用自定义 op`** 编译出来的 lib,与相同文档中 **`C++ 预测库使用自定义 op`** 编译产出不同。因此,在使用预测库前,还需要额外导出模型:
* 一次用于获取 Python 动态图下的 lib,用到 Python 端进行模型导出。
* 一次获取编译的基于预测库的可执行文件

Expand All @@ -87,6 +87,6 @@ python export_model.py --model_name_or_path gpt2-medium-en --topk 4 --topp 0.0 -

### C++ 预测库使用高性能加速

C++ 预测库使用 FasterGPT 的高性能加速需要自行编译,可以参考 [文本生成高性能加速](../../../paddlenlp/ops/README.md) 文档完成基于 C++ 预测库的编译,同时也可以参考相同文档执行对应的 C++ 预测库的 demo 完成预测。
C++ 预测库使用 FasterGPT 的高性能加速需要自行编译,可以参考 [文本生成高性能加速](../../../../paddlenlp/ops/README.md) 文档完成基于 C++ 预测库的编译,同时也可以参考相同文档执行对应的 C++ 预测库的 demo 完成预测。

具体的使用 demo 可以参考 [GPT-2 预测库 C++ demo](../../../paddlenlp/ops/faster_transformer/src/demo/gpt.cc)。
具体的使用 demo 可以参考 [GPT-2 预测库 C++ demo](../../../../paddlenlp/ops/faster_transformer/src/demo/gpt.cc)。
2 changes: 1 addition & 1 deletion paddlenlp/ops/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@
* `FasterGPT()`: 支持 GPT 模型的预测加速功能。使用示例可以参考 [GPT 预测加速使用示例](../../model_zoo/gpt/faster_gpt/)。
* `FasterUnifiedTransformer()`: 支持 UnifiedTransformer 模型的预测加速功能。使用示例可以参考 [UnifiedTransformer 预测加速使用示例](../../examples/dialogue/unified_transformer/) 以及 PLATO-XL 的使用示例可以参考 [PLATO-XL 11B 使用示例](../../examples/dialogue/plato-xl/)。
* `FasterUNIMOText()`: 支持 UNIMOText 模型预测加速功能。
* 使用示例可以参考 [UNIMOText 预测加速使用示例](../../examples/faster/faster_generation/samples/unimo_text_sample.py)。
* 使用示例可以参考 [UNIMOText 预测加速使用示例](../../faster_generation/samples/unimo_text_sample.py)。
* 同样,我们提供了动转静以及 Paddle Inference 使用的示例,详细可以参考 [动转静导出](./faster_transformer/sample/unimo_text_export_model_sample.py) 和 [Paddle Inference 使用示例](./faster_transformer/sample/unimo_text_inference.py)。
* `FasterBART()`: 支持 BART 模型预测加速功能。使用示例可以参考 [BART 预测加速使用示例-sample](./faster_transformer/sample/bart_decoding_sample.py),[BART 预测加速使用示例-文本摘要](../../examples/text_summarization/bart)。

Expand Down