ernie_tiny_couplet是一个对联生成模型,它由ernie_tiny预训练模型经PaddleHub TextGenerationTask微调而来,仅支持预测,如需进一步微调请参考PaddleHub text_generation demo。
$ hub install ernie_tiny_couplet==1.0.0
本预测module系ernie_tiny预训练模型经由TextGenerationTask微调而来,有关ernie_tiny的介绍请参考ernie_tiny module,微调方式请参考text_generation demo,预训练模型转换成预测module的转换方式请参考Fine-tune保存的模型如何转化为一个PaddleHub Module
$ hub run ernie_tiny_couplet --input_text '风吹云乱天垂泪'
命令行预测只支持使用CPU预测,如需使用GPU,请使用API方式预测。
def generate(texts)
对联预测接口,输入上联文本,输出下联文本。该接口封装了上联文本使用hub.BertTokenizer
编码的过程,因此它的调用方式比demo中提供的predcit接口简单。
参数
texts(list[str]): 上联文本。
返回
result(list[str]): 下联文本。每个上联会对应输出10个下联。
代码示例
import paddlehub as hub
# Load ernie pretrained model
module = hub.Module(name="ernie_tiny_couplet", use_gpu=True)
results = module.generate(["风吹云乱天垂泪", "若有经心风过耳"])
for result in results:
print(result)
PaddleHub Serving 可以部署在线服务。
运行启动命令:
$ hub serving start -m ernie_tiny_couplet
这样就完成了一个服务化API的部署,默认端口号为8866。
NOTE: 服务部署只支持使用CPU,如需使用GPU,请使用API方式预测。
配置好服务端,以下数行代码即可实现发送预测请求,获取预测结果
import requests
import json
# 发送HTTP请求
data = {'texts':["风吹云乱天垂泪", "若有经心风过耳"]}
headers = {"Content-type": "application/json"}
url = "http://127.0.0.1:8866/predict/ernie_tiny_couplet"
r = requests.post(url=url, headers=headers, data=json.dumps(data))
# 保存结果
results = r.json()["results"]
print(results)
https://github.com/PaddlePaddle/PaddleHub/blob/develop/demo/text_generation
paddlepaddle >= 1.8.2
paddlehub >= 1.8.0
-
1.0.0
初始发布。