The Return of the Guy (+ my most complex project yet)
25 Nov 2021
Wow, it’s hard to believe it’s been half a year since my last post. So much has happened in that time! I had a summer internship where I learned a ton of great stuff and have been making my way through my penultimate semester of my senior year in college. There are a few things I’d like to talk about, including exciting news about @gptupaguy!
Genni - GPT for everyone!
When I haven’t been studying for school, or working on projects for my job, or resting, I’ve been spending my time developing a desktop application that aims to make GPT text generation more accessible. I’m calling it Genni, and I’m quite happy with it so far. In fact, I think it may be one of my most complex-but-useful projects yet!
Genni is a fancy wrapper around the Python library aitextgen by Max Woolf (@minimaxir) that lets you train Hugging Face GPT models and generate text from them with just a few clicks. With its dataset-building tools, creating a model finetuned on a Twitter account is super easy!
-
Add a dataset based on a Twitter search with the format
"from:twitter_handle"
. Genni downloads all of the Tweets it can find from @twitter_handle using the Python library snscrape and stores them in a file for you. -
Click "Train" and choose a Hugging Face base model. I typically like to use
"EleutherAI/gpt-neo-125M"
. Set the hyperparameters (or just go with the default) and click "Start Training". -
Watch as your model trains!
If you’re interested, you can find Genni on my GitHub repository. There isn’t currently a standalone executable you can run for it - you’ll need to install Python and the necessary dependencies, as outlined in the README - but I promise it’s not too hard to get set up. It’d be great to have more people using the software, so that I can find out what needs to be changed or fixed to make it the best it can be!
The Return of the (GPT Up a) Guy
What does this Genni stuff mean for @gptupaguy? Because it makes it easier for me to generate and curate models, I’ll be able to start scheduling posts for the bot again!
There’s also a lot more training data for the bot to work with this time around. The most recent dataset I had, pre-Genni, contained 2,997 Tweets from @makeupaguy and several parody accounts. Using Genni, I was able to assemble a dataset consisting of 11,421 Tweets from @makeupaguy alone!
In the coming days, I’m hoping to spend some time generating posts and get them queued up to be Tweeted out.
Other Twitter bots, too…?
In my previous post, I talked about how I wanted to start a bot based on the @KidsWriteJokes Twitter account, and shared a few examples of the model’s output. As I’ve been working on Genni, I’ve created a new model based on the account’s Tweets which has provided more hilariously bizarre results. I don’t currently have a timeline on when the bot will be up and running, but I’m hoping to get it set up soon!
As you might have noticed in my screenshots above, I’ve also given a shot at training a model based on @jigsaw_quotes, since I enjoyed the account so much. Admittedly, its output hasn’t been quite as interesting as the other models, so I might have to put it off until there are more Tweets to build a dataset out of.
Wrapping up
The next few weeks are going to be pretty packed for me - I’m finishing up my penultimate semester in undergraduate school, and may also be applying to graduate school for next year. On top of that, I’ve also got my internship/job to work on! But I’m hoping that I’ll have some fun stuff up and running by the end of the year. You can stay up to date on my shenanigans via my Twitter account, @_Meorge.