gpt2-horoscopes项目介绍
gpt2-horoscopes项目是一个基于GPT-2模型的有趣应用,它专注于根据不同类别生成每日星座运势。这个项目利用从Horoscopes.com上抓取的数据,对GPT-2进行了微调,使其能够在一系列特定类别下生成相应的星座运势内容。
模型描述
gpt2-horoscopes使用一个经过微调的GPT-2模型,这个模型专门训练于特定的星座运势数据集。用户可以通过输入星座运势的类别,让模型生成对应的星座运势。支持的类别包括:通用(general)、事业(career)、爱情(love)、健康(wellness)和生日(birthday)。
使用方法
用户可以使用HuggingFace的pipeline
API来直接调用此模型。只需引入相关的预训练模型和tokenizer,即可开始生成内容。下列代码展示了如何初始化模型和tokenizer:
from transformers import AutoTokenizer, AutoModelWithLMHead
tokenizer = AutoTokenizer.from_pretrained("shahp7575/gpt2-horoscopes")
model = AutoModelWithLMHead.from_pretrained("shahp7575/gpt2-horoscopes")
文本生成
要生成星座运势,需要按照指定格式输入文本,即<|category|> {category_type} <|horoscope|>
。例如,要生成事业运势,可以使用如下代码:
prompt = "<|category|> career <|horoscope|>"
prompt_encoded = torch.tensor(tokenizer.encode(prompt)).unsqueeze(0)
sample_outputs = model.generate(prompt_encoded,
do_sample=True,
top_k=40,
max_length=300,
top_p=0.95,
temperature=0.95,
num_return_sequences=1)
为了参考,可以使用generation script。
训练数据
模型使用从Horoscopes.com抓取的数据集进行训练,数据集涵盖五个不同的类别,约包含12000个星座运势条目。数据集已发布在Kaggle上,供学习和研究之用。
训练过程
模型基于GPT-2的检查点,细致地微调在特定的星座运势数据集上。为了让模型理解不同类别的星座运势,在训练数据中加入了特殊标记<|category|>
来区分类别。具体的训练参数包括:
- 训练轮次(EPOCHS):5
- 学习率(LEARNING RATE):5e-4
- 预热步数(WARMUP STEPS):100
- EPSILON:1e-8
- 序列长度(SEQUENCE LENGTH):300
评估结果
模型在训练集上的损失为2.77。
局限性
该模型仅在特定类别的星座运势数据上进行微调,不旨在生成真实的星座运势,其开发目的是为了教育和学习目的。
参考
gpt2-horoscopes项目为对语言模型和星座研究感兴趣的人们提供了一个探索语言生成及应用的机会,同时也展示了AI在生成自然语言文本领域的潜力。