--- language: "en" thumbnail: "https://raw.githubusercontent.com/stevhliu/satsuma/master/images/astroGPT-thumbnail.png" widget: - text: "Jan 18, 2020" - text: "Feb 14, 2020" - text: "Jul 04, 2020" --- # astroGPT 🪐 ## Model description This is a GPT-2 model fine-tuned on Western zodiac signs. For more information about GPT-2, take a look at 🤗 Hugging Face's GPT-2 [model card](https://huggingface.co/gpt2). You can use astroGPT to generate a daily horoscope by entering the current date. ## How to use To use this model, simply enter the current date like so `Mon DD, YEAR`: ```python from transformers import AutoTokenizer, AutoModelWithLMHead tokenizer = AutoTokenizer.from_pretrained("stevhliu/astroGPT") model = AutoModelWithLMHead.from_pretrained("stevhliu/astroGPT") input_ids = tokenizer.encode('Sep 03, 2020', return_tensors='pt').to('cuda') sample_output = model.generate(input_ids, do_sample=True, max_length=75, top_k=20, top_p=0.97) print(sample_output) ``` ## Limitations and bias astroGPT inherits the same biases that affect GPT-2 as a result of training on a lot of non-neutral content on the internet. The model does not currently support zodiac sign-specific generation and only returns a general horoscope. While the generated text may occasionally mention a specific zodiac sign, this is due to how the horoscopes were originally written by it's human authors. ## Data The data was scraped from [Horoscope.com](https://www.horoscope.com/us/index.aspx) and trained on 4.7MB of text. The text was collected from four categories (daily, love, wellness, career) and span from 09/01/19 to 08/01/2020. The archives only store horoscopes dating a year back from the current date. ## Training and results The text was tokenized using the fast GPT-2 BPE [tokenizer](https://huggingface.co/transformers/model_doc/gpt2.html#gpt2tokenizerfast). It has a vocabulary size of 50,257 and sequence length of 1024 tokens. The model was trained with on one of Google Colaboratory's GPU's for approximately 2.5 hrs with [fastai's](https://docs.fast.ai/) learning rate finder, discriminative learning rates and 1cycle policy. See table below for a quick summary of the training procedure and results. | dataset size | epochs | lr | training time | train_loss | valid_loss | perplexity | |:-------------:|:------:|:-----------------:|:-------------:|:----------:|:----------:|:----------:| | 5.9MB |32 | slice(1e-7,1e-5) | 2.5 hrs | 2.657170 | 2.642387 | 14.046692 |