Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
PaddleHub
提交
58f15a8b
P
PaddleHub
项目概览
PaddlePaddle
/
PaddleHub
大约 1 年 前同步成功
通知
282
Star
12117
Fork
2091
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
200
列表
看板
标记
里程碑
合并请求
4
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
PaddleHub
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
200
Issue
200
列表
看板
标记
里程碑
合并请求
4
合并请求
4
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
58f15a8b
编写于
7月 30, 2020
作者:
K
kinghuin
提交者:
GitHub
7月 30, 2020
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix generation module bugs (#783)
上级
311c49d9
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
18 addition
and
29 deletion
+18
-29
hub_module/modules/text/text_generation/ernie_gen_couplet/README.md
.../modules/text/text_generation/ernie_gen_couplet/README.md
+5
-5
hub_module/modules/text/text_generation/ernie_gen_couplet/module.py
.../modules/text/text_generation/ernie_gen_couplet/module.py
+0
-7
hub_module/modules/text/text_generation/ernie_gen_poetry/README.md
...e/modules/text/text_generation/ernie_gen_poetry/README.md
+5
-5
hub_module/modules/text/text_generation/ernie_gen_poetry/module.py
...e/modules/text/text_generation/ernie_gen_poetry/module.py
+0
-7
hub_module/modules/text/text_generation/ernie_tiny_couplet/README.md
...modules/text/text_generation/ernie_tiny_couplet/README.md
+7
-4
hub_module/modules/text/text_generation/ernie_tiny_couplet/module.py
...modules/text/text_generation/ernie_tiny_couplet/module.py
+1
-1
未找到文件。
hub_module/modules/text/text_generation/ernie_gen_couplet/README.md
浏览文件 @
58f15a8b
## 概述
ERNIE-GEN 是面向生成任务的预训练-微调框架,首次在预训练阶段加入span-by-span 生成任务,让模型每次能够生成一个语义完整的片段。在预训练和微调中通过填充式生成机制和噪声感知机制来缓解曝光偏差问题。此外, ERNIE-GEN 采样多片段-多粒度目标文本采样策略, 增强源文本和目标文本的关联性,加强了编码器和解码器的交互。
ERNIE-GEN 是面向生成任务的预训练-微调框架,首次在预训练阶段加入span-by-span 生成任务,让模型每次能够生成一个语义完整的片段。在预训练和微调中通过填充式生成机制和噪声感知机制来缓解曝光偏差问题。此外, ERNIE-GEN 采样多片段-多粒度目标文本采样策略, 增强源文本和目标文本的关联性,加强了编码器和解码器的交互。
ernie_gen_couplet采用开源对联数据集进行微调,可用于生成下联。
<p
align=
"center"
>
<img
src=
"https://
github.com/PaddlePaddle/ERNIE/blob/repro/ernie-gen/.meta
/multi-flow-attention.png"
hspace=
'10'
/>
<br
/>
<img
src=
"https://
paddlehub.bj.bcebos.com/resources
/multi-flow-attention.png"
hspace=
'10'
/>
<br
/>
</p>
更多详情参考论文
[
ERNIE-GEN:An Enhanced Multi-Flow Pre-training and Fine-tuning Framework for Natural Language Generation
](
https://arxiv.org/abs/2001.11314
)
...
...
@@ -25,11 +25,11 @@ def generate(texts, use_gpu=False, beam_width=5):
*
texts (list
\[
str
\]
): 上联文本;
*
use
\_
gpu (bool): 是否使用 GPU;
**若使用GPU,请先设置CUDA\_VISIBLE\_DEVICES环境变量**
;
*
beam_width: beam search宽度,决定每个上联输出的下联数量。
*
beam
\
_
width: beam search宽度,决定每个上联输出的下联数量。
**返回**
*
results (list
[
list
][
str
]
): 下联文本,每个上联会生成beam_width个下联。
*
results (list
\[
list
\]\[
str
\
]
): 下联文本,每个上联会生成beam_width个下联。
**代码示例**
...
...
@@ -39,7 +39,7 @@ import paddlehub as hub
module
=
hub
.
Module
(
name
=
"ernie_gen_couplet"
)
test_texts
=
[
"人增福寿年增岁"
,
"风吹云乱天垂泪"
]
results
=
module
.
genrate
(
texts
=
test_texts
,
use_gpu
=
True
,
beam_width
=
5
)
results
=
module
.
gen
e
rate
(
texts
=
test_texts
,
use_gpu
=
True
,
beam_width
=
5
)
for
result
in
results
:
print
(
result
)
```
...
...
hub_module/modules/text/text_generation/ernie_gen_couplet/module.py
浏览文件 @
58f15a8b
...
...
@@ -175,13 +175,6 @@ class ErnieGen(hub.NLPPredictionModule):
return
results
@
serving
def
serving_method
(
self
,
texts
,
use_gpu
=
False
):
"""
Run as a service.
"""
return
self
.
generate
(
texts
,
use_gpu
)
if
__name__
==
"__main__"
:
module
=
ErnieGen
()
...
...
hub_module/modules/text/text_generation/ernie_gen_poetry/README.md
浏览文件 @
58f15a8b
## 概述
ERNIE-GEN 是面向生成任务的预训练-微调框架,首次在预训练阶段加入span-by-span 生成任务,让模型每次能够生成一个语义完整的片段。在预训练和微调中通过填充式生成机制和噪声感知机制来缓解曝光偏差问题。此外, ERNIE-GEN 采样多片段-多粒度目标文本采样策略, 增强源文本和目标文本的关联性,加强了编码器和解码器的交互。
ERNIE-GEN 是面向生成任务的预训练-微调框架,首次在预训练阶段加入span-by-span 生成任务,让模型每次能够生成一个语义完整的片段。在预训练和微调中通过填充式生成机制和噪声感知机制来缓解曝光偏差问题。此外, ERNIE-GEN 采样多片段-多粒度目标文本采样策略, 增强源文本和目标文本的关联性,加强了编码器和解码器的交互。
ernie_gen_poetry采用开源诗歌数据集进行微调,可用于生成诗歌。
<p
align=
"center"
>
<img
src=
"https://
github.com/PaddlePaddle/ERNIE/blob/repro/ernie-gen/.meta
/multi-flow-attention.png"
hspace=
'10'
/>
<br
/>
<img
src=
"https://
paddlehub.bj.bcebos.com/resources
/multi-flow-attention.png"
hspace=
'10'
/>
<br
/>
</p>
更多详情参考论文
[
ERNIE-GEN:An Enhanced Multi-Flow Pre-training and Fine-tuning Framework for Natural Language Generation
](
https://arxiv.org/abs/2001.11314
)
...
...
@@ -25,11 +25,11 @@ def generate(texts, use_gpu=False, beam_width=5):
*
texts (list
\[
str
\]
): 诗歌的开头;
*
use
\_
gpu (bool): 是否使用 GPU;
**若使用GPU,请先设置CUDA\_VISIBLE\_DEVICES环境变量**
;
*
beam_width: beam search宽度,决定每个诗歌开头输出的下文数目。
*
beam
\
_
width: beam search宽度,决定每个诗歌开头输出的下文数目。
**返回**
*
results (list
[
list
][
str
]
): 诗歌下文,每个诗歌开头会生成beam_width个下文。
*
results (list
\[
list
\]\[
str
\
]
): 诗歌下文,每个诗歌开头会生成beam_width个下文。
**代码示例**
...
...
@@ -39,7 +39,7 @@ import paddlehub as hub
module
=
hub
.
Module
(
name
=
"ernie_gen_poetry"
)
test_texts
=
[
'昔年旅南服,始识王荆州。'
,
'高名出汉阴,禅阁跨香岑。'
]
results
=
module
.
genrate
(
texts
=
test_texts
,
use_gpu
=
True
,
beam_width
=
5
)
results
=
module
.
gen
e
rate
(
texts
=
test_texts
,
use_gpu
=
True
,
beam_width
=
5
)
for
result
in
results
:
print
(
result
)
```
...
...
hub_module/modules/text/text_generation/ernie_gen_poetry/module.py
浏览文件 @
58f15a8b
...
...
@@ -175,13 +175,6 @@ class ErnieGen(hub.NLPPredictionModule):
return
results
@
serving
def
serving_method
(
self
,
texts
,
use_gpu
=
False
):
"""
Run as a service.
"""
return
self
.
generate
(
texts
,
use_gpu
)
if
__name__
==
"__main__"
:
module
=
ErnieGen
()
...
...
hub_module/modules/text/text_generation/ernie_tiny_couplet/README.md
浏览文件 @
58f15a8b
ernie_tiny_couplet是一个对联生成模型,它由ernie_tiny预训练模型经PaddleHub TextGenerationTask微调而来,仅支持预测,如需进一步微调请参考PaddleHub text_generation demo。
```
shell
$
hub
install
ernie_tiny_couplet
==
1.0.0
```
<p
align=
"center"
>
<img
src=
"https://paddlehub.bj.bcebos.com/paddlehub-img%2Fernie_tiny_framework.PNG"
hspace=
'10'
/>
<br
/>
</p>
本预测module系由TextGenerationTask微调而来,转换方式可以参考
[
Fine-tune保存的模型如何转化为一个PaddleHub Module
](
https://github.com/PaddlePaddle/PaddleHub/blob/develop/docs/tutorial/finetuned_model_to_module.md
)
。
本预测module系ernie_tiny预训练模型经由TextGenerationTask微调而来,有关ernie
\_
tiny的介绍请参考
[
ernie_tiny module
](
https://www.paddlepaddle.org.cn/hubdetail?name=ernie_tiny&en_category=SemanticModel
)
,微调方式请参考
[
text_generation demo
](
https://github.com/PaddlePaddle/PaddleHub/tree/release/v1.8/demo/text_generation
)
,预训练模型转换成预测module的转换方式请参考
[
Fine-tune保存的模型如何转化为一个PaddleHub Module
](
https://github.com/PaddlePaddle/PaddleHub/blob/develop/docs/tutorial/finetuned_model_to_module.md
)
## 命令行预测
...
...
@@ -22,11 +25,11 @@ def generate(texts)
**参数**
> texts(list
[str
]): 上联文本。
> texts(list
\[str\
]): 上联文本。
**返回**
> result(list
[str
]): 下联文本。每个上联会对应输出10个下联。
> result(list
\[str\
]): 下联文本。每个上联会对应输出10个下联。
**代码示例**
...
...
@@ -34,7 +37,7 @@ def generate(texts)
import
paddlehub
as
hub
# Load ernie pretrained model
module
=
hub
.
Module
(
name
=
"ernie_tiny_couplet"
)
module
=
hub
.
Module
(
name
=
"ernie_tiny_couplet"
,
use_gpu
=
True
)
results
=
module
.
generate
([
"风吹云乱天垂泪"
,
"若有经心风过耳"
])
for
result
in
results
:
print
(
result
)
...
...
hub_module/modules/text/text_generation/ernie_tiny_couplet/module.py
浏览文件 @
58f15a8b
...
...
@@ -77,7 +77,7 @@ class ErnieTinyCouplet(hub.NLPPredictionModule):
tokenizer
.
encode
(
text
=
text
,
max_seq_len
=
128
)
for
text
in
formatted_text_a
]
results
=
self
.
gen_task
.
generate
(
results
=
self
.
gen_task
.
predict
(
data
=
encoded_data
,
label_list
=
self
.
label_list
,
accelerate_mode
=
False
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录