A program that uses your Discord message information from your Discord Data Package to create AI-generated messages trained using GPT-2.
![Screen Shot 2023-05-09 at 10 54 34 PM](https://private-user-images.githubusercontent.com/128095876/237275330-bfe08e71-a6e1-43b5-bf4c-d7f35a5a366e.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5MzcwMTQsIm5iZiI6MTczODkzNjcxNCwicGF0aCI6Ii8xMjgwOTU4NzYvMjM3Mjc1MzMwLWJmZTA4ZTcxLWE2ZTEtNDNiNS1iZjRjLWQ3ZjM1YTVhMzY2ZS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA3JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwN1QxMzU4MzRaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1mYTM2MzFhNTJhODAwYTM2YzJiYWI2ZWQ5MmQwNGZjOTMwMzUxYmU4MDQ5ZmYxZmZkMGE4ODNmY2ZlMzkwNGM1JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.KFhvLw22D1s8VSpMACegFETXS7Y9HIP4eiLiSxN48yc)
![Screen Shot 2023-05-09 at 8 48 52 PM](https://private-user-images.githubusercontent.com/128095876/237275339-6a149f94-7cc5-4fbd-a338-511df8de0ea2.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5MzcwMTQsIm5iZiI6MTczODkzNjcxNCwicGF0aCI6Ii8xMjgwOTU4NzYvMjM3Mjc1MzM5LTZhMTQ5Zjk0LTdjYzUtNGZiZC1hMzM4LTUxMWRmOGRlMGVhMi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA3JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwN1QxMzU4MzRaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1lZDAxZjdkZmM1MzgyZTkxYzBhNmRkZTc5ZTAxZDE5Nzg5NTQyMmI2MDY5MTMxYWMxZjE3MDFlYTFkOGI4OTkzJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.eAYBhKS5awv3MMdWWCO870HTUpiBApcRIhDU5u0gXuk)
Important Notes:
- This program uses gpt-2-simple and PySimpleGUI.
- gpt_2_simple/gpt_2.py was modified to display steps of training/generation (Issue #1)
- Do NOT exit/terminate training during saving, as this has a chance of reverting all training done no matter the steps.
- Process management is REALLY bad in this, make sure to check for any python3.9 processes still running after exiting!!!
- Does not work properly on Windows, only macOS (Apple Silicon) works for sure (See Issue #14)
- Set up a Python virtual environment with the following:
- Python (latest)
- gpt_2_simple (latest)
- PySimpleGUI (latest)
- Unzip the DiscordMessages-AI repository into an IDE's project folder (like PyCharm).
- Go to your environment executable folder and drag the site-packages folder from the unzipped repository into it. (Will replace some files)
- Run main.py using the respective Python environment.
- Set up a conda virtual environment with the following (refer to Tensorflow w/ GPU installation):
- Python 3.9
- Tensorflow 2.10
- CUDA Toolkit 11.2
- cuDNN 8.1.0
- gpt_2_simple (latest)
- PySimpleGUI (latest)
- Unzip the DiscordMessages-AI repository into an IDE's project folder (like PyCharm).
- Go to your environment executable folder and drag the site-packages folder from the unzipped repository into it. (Will replace some files)
- Run main.py using the respective Python environment.
- Set up a conda virtual environment with the following (refer to tensorflow-metal Installation):
- Python 3.9
- gpt_2_simple (latest). Make sure to uninstall the tensorflow dependency it'll come with, and use tensorflow-macos instead!
- tensorflow-deps (Latest)
- tensorflow-macos (Latest)
- tensorflow-metal (Latest)
- PySimpleGUI (latest)
- Unzip the DiscordMessages-AI repository into an IDE's project folder (like PyCharm).
- Go to your environment executable folder and drag the site-packages folder from the unzipped repository into it. (Will replace some files)
- Run main.py using the respective Python environment.
- Download your Discord Data Package as package.zip.
- Browse for your package and generate your dataset.
- Set training parameters and train for however many steps you want. Train for at least 200 steps for it to adopt your messaging patterns, and ~5000 for best output (less randomness, less out-of-character messages)
- Press "Save and end training" when you want to finish training, before moving on.
- Switch to the "Test model" tab and set generation parameters. Keep the number of samples higher (>5) as it's faster to generate more samples in a row than generate them individually.
- If you want to end sample generation prematurely, press "End text generation".