📜  文本生成 gpt 2 huggingface - Python (1)

📅  最后修改于: 2023-12-03 14:55:03.075000             🧑  作者: Mango

文本生成 (GPT-2) 模型 Hugging Face - Python

如果你是一名程序员,并且正在寻找一种自然语言处理工具来生成文本,则 GPT-2 仍然是一种非常流行的选择。GPT-2 是由 OpenAI 开发的一种强大的语言生成模型,它在多个 NLP 任务上表现出色。在下面,我们将介绍如何使用 Hugging Face 来加载并生成语言模型。

安装 Hugging Face Transformers 库

首先,我们需要安装 transformers 库,它是 Hugging Face 提供的一个非常流行的 Python 库,用于加载和使用各种预训练的语言模型。我们可以使用以下命令来安装:

!pip install transformers
加载 GPT-2 模型

一旦我们安装了 Transformers 库,我们可以使用以下代码来加载 GPT-2 模型:

from transformers import GPT2LMHeadModel, GPT2Tokenizer

model = GPT2LMHeadModel.from_pretrained("gpt2")
tokenizer = GPT2Tokenizer.from_pretrained("gpt2")

在这里,我们使用 GPT2LMHeadModel.from_pretrained()GPT2Tokenizer.from_pretrained() 来加载 GPT-2 模型和分词器。我们使用默认参数加载模型,但您还可以使用其他参数来加载不同的模型配置。

生成文本

现在,我们已经成功加载了 GPT-2 模型,我们可以使用以下代码来生成新的文本:

prompt_text = "今天天气很不错,"

encoded_prompt = tokenizer.encode(prompt_text, add_special_tokens=False, return_tensors="pt")

output_sequences = model.generate(
    input_ids=encoded_prompt,
    max_length=100,
    temperature=1.0,
    top_k=50,
    top_p=0.95,
    repetition_penalty=1.0,
    do_sample=True,
    num_return_sequences=1,
)

generated_sequence = output_sequences[0].tolist()
text = tokenizer.decode(generated_sequence, clean_up_tokenization_spaces=True)
print(text)

在这里,我们使用 model.generate() 方法来生成文本,需要指定初始文本、最大长度、温度、top k 和 top p 等参数。我们可以使用 tokenizer.encode() 将输入文本编码为 PyTorch 张量,并将其传递给 generate() 方法。然后,我们将输出序列解码为可读文本。

结论

这就是如何使用 Hugging Face Transformes 库和 GPT-2 模型来生成文本。如果您想了解有关这个主题的更多内容,请查看 Hugging Face 的文档。