Skip to content

Commit

Permalink
Merge pull request #3438 from westfish/qg-taskflow
Browse files Browse the repository at this point in the history
add qg-taskflow
  • Loading branch information
westfish authored Oct 13, 2022
2 parents 6011ed8 + 426b757 commit a3e92bb
Show file tree
Hide file tree
Showing 6 changed files with 588 additions and 4 deletions.
52 changes: 51 additions & 1 deletion docs/model_zoo/taskflow.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# PaddleNLP一键预测功能:Taskflow API



<p align="left">
<a href="https://pypi.org/project/paddlenlp/"><img src="https://img.shields.io/pypi/v/paddlenlp.svg?label=pip&logo=PyPI&logoColor=white"></a>
<a href="https://github.com/PaddlePaddle/PaddleNLP/releases"><img src="https://img.shields.io/github/v/release/PaddlePaddle/PaddleNLP?color=ffa"></a>
Expand Down Expand Up @@ -44,7 +45,7 @@ PaddleNLP提供**开箱即用**的产业级NLP预置任务能力,无需训练
| [文图生成](#文图生成) | `Taskflow("text_to_image")` |||| | | 文图生成大模型 |
| [文本摘要](#文本摘要) | `Taskflow("text_summarization")` ||||| | 文本摘要大模型 |
| [文档智能](#文档智能) | `Taskflow("document_intelligence")` ||||| | 基于跨模态通用文档预训练模型ERNIE-LayoutX |

| [问题生成](#问题生成) | `Taskflow("question_generation")` ||||| | 问题生成大模型 |

## QuickStart

Expand Down Expand Up @@ -1620,6 +1621,55 @@ from paddlenlp import Taskflow

</div></details>

### 问题生成
<details><summary>&emsp; 通过UNIMO-Text模型来根据上下文和答案生成问题 </summary><div>

#### 支持单条、批量预测

```python
>>> from paddlenlp import Taskflow
# 默认模型为 unimo-text-1.0-dureader_qg-template1
>>> question_generator = Taskflow("question_generation")
# 单条输入
>>> question_generator([
{"context": "奇峰黄山千米以上的山峰有77座,整座黄山就是一座花岗岩的峰林,自古有36大峰,36小峰,最高峰莲花峰、最险峰天都峰和观日出的最佳点光明顶构成黄山的三大主峰。", "answer": "莲花峰"}
])
'''
['黄山最高峰是什么']
'''
# 多条输入
>>> question_generator([
{"context": "奇峰黄山千米以上的山峰有77座,整座黄山就是一座花岗岩的峰林,自古有36大峰,36小峰,最高峰莲花峰、最险峰天都峰和观日出的最佳点光明顶构成黄山的三大主峰。", "answer": "莲花峰"},
{"context": "弗朗索瓦·韦达外文名:franciscusvieta国籍:法国出生地:普瓦图出生日期:1540年逝世日期:1603年12月13日职业:数学家主要成就:为近代数学的发展奠定了基础。", "answer": "法国"}
])
'''
['黄山最高峰是什么', '弗朗索瓦是哪里人']
'''
```

#### 可配置参数说明
* `model`:可选模型,默认为unimo-text-1.0-dureader_qg-template1,支持的模型支持的模型有["unimo-text-1.0", "unimo-text-1.0-dureader_qg-template1", ]
* `device`:运行设备,默认为"gpu"。
* `template`:模版,可选项有[0, 1, 2, 3],1表示使用默认模版,0表示不使用模版。
* `batch_size`:批处理大小,请结合机器情况进行调整,默认为1。
* `output_scores`:是否要输出解码得分,默认为False。
* `is_select_from_num_return_sequences`:是否对多个返回序列挑选最优项输出,当为True时,若num_return_sequences不为1则自动根据解码得分选择得分最高的序列最为最终结果,否则返回num_return_sequences个序列,默认为True。
* `max_length`:生成代码的最大长度,默认为50。
* `min_length`:生成代码的最小长度,默认为3。
* `decode_strategy`:解码策略,支持beam_search和sampling,默认为beam_search。
* `temperature`:解码参数temperature,默认为1.0。
* `top_k`:解码参数top_k,默认为0。
* `top_p`:解码参数top_p,默认为1.0。
* `num_beams`:解码参数num_beams,表示beam_search解码的beam size,默认为6。
* `num_beam_groups`:解码参数num_beam_groups,默认为1。
* `diversity_rate`:解码参数diversity_rate,默认为0.0。
* `length_penalty`:解码长度控制值,默认为1.2。
* `num_return_sequences`:解码返回序列数,默认为1。
* `repetition_penalty`:解码重复惩罚值,默认为1。
* `use_faster`:表示是否开启基于FasterTransformer的高性能预测,注意FasterTransformer的高性能预测仅支持gpu,默认为False。
* `use_fp16_decoding`: 表示在开启高性能预测的时候是否使用fp16来完成预测过程,若不使用则使用fp32,默认为False。

</div></details>

## PART Ⅱ &emsp; 定制化训练

Expand Down
6 changes: 3 additions & 3 deletions examples/question_generation/unimo-text/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
- [数据准备](#数据准备)
- [数据加载](#数据加载)
- [数据处理](#数据处理)
- [从本地文件创建数据集(可选)](#从本地文件创建数据集(可选))
- [从本地文件创建数据集-可选](#从本地文件创建数据集-可选)
- [模型训练](#模型训练)
- [模型预测](#模型预测)
- [模型转换部署](#模型转换部署)
Expand Down Expand Up @@ -117,8 +117,8 @@ train_ds, dev_ds = load_dataset('dureader_qg', splits=('train', 'dev'))
问题: <question_text>
```

#### 从本地文件创建数据集(可选)
在许多情况下,我们需要使用本地数据集来训练我们的文本分类模型,本项目支持使用固定格式本地数据集文件进行训练。
#### 从本地文件创建数据集-可选
在许多情况下,我们需要使用本地数据集来训练我们的问题生成模型,本项目支持使用固定格式本地数据集文件进行训练。
使用本地文件,只需要在模型训练时指定`train_file` 为本地训练数据地址,`predict_file` 为本地测试数据地址即可。

本地数据集目录结构如下:
Expand Down
Loading

0 comments on commit a3e92bb

Please sign in to comment.