PaddleNLP下的GPT模块如何构建一个文本生成的程序,请代码展示
时间: 2024-03-02 16:48:28 浏览: 28
好的,以下是一个使用PaddleNLP的GPT模型生成文本的示例代码:
```python
import paddle
import paddle.nn.functional as F
from paddlenlp.transformers import GPT2LMHeadModel, GPT2Tokenizer
# 加载预训练模型和分词器
model = GPT2LMHeadModel.from_pretrained('gpt2-medium-en')
tokenizer = GPT2Tokenizer.from_pretrained('gpt2-medium-en')
# 输入待生成的文本
input_str = "Today is a beautiful day"
# 将输入文本转换为模型接受的张量
input_ids = tokenizer.encode(input_str)
# 生成文本的长度
length = 50
# 生成文本
output_ids = model.generate(
input_ids,
max_length=length+len(input_ids),
min_length=length+len(input_ids),
temperature=0.7,
top_p=0.9,
repetition_penalty=1.0,
pad_token_id=tokenizer.pad_token_id,
eos_token_id=tokenizer.eos_token_id,
bos_token_id=tokenizer.bos_token_id,
use_cache=True
)
# 将生成的文本转换为字符串
output_str = tokenizer.decode(output_ids.numpy()[0])
print(output_str)
```
在上面的代码中,我们首先加载了预训练的GPT模型和对应的分词器。接着,我们将待生成的文本转换为模型需要的输入张量,并使用 `generate` 方法生成指定长度的文本。最后,我们将生成的文本张量转换为字符串并打印输出。