4 ms·
I was going to give a talk at Thotcon 2020 (pushed back to 2021) about generating fake tweets by refining GPT-2. The whole purpose of my experiment was to see t
by zitterbewegung 6y ago
I was going to give a talk at Thotcon 2020 (pushed back to 2021) about generating fake tweets by refining GPT-2. The whole purpose of my experiment was to see that if OpenAI was right in
their statement that GPT-2 could be used in nefarious ways. I saw a bunch of tutorials but first I read gwerns tutorial and that made me understand the basics of using GPT-2.
If you see Gwerns experiments with GPT-2 you notice that his websites are actually just extremely large samples of text / image data. Essentially the design is that the whole website is practically statically generated.
Refining on AWS was costing me $100 a day.
I also met Shawn (https://github.com/shawwn https://github.com/shawwn) who decided to attempt to refine / train large models using TPUs. That sounded interesting but since I figured out that I would waste time trying to understand TPUs because I have a day job
I instead just bought a Titan RTX.
My first experiment was that refinement of GPT-2 with your own data would somewhat work. At first I used Donald Trump because he is a very active person on twitter that I believed that people would have some kind of ability of detecting whether the tweets are fake or not.
The above was a bad choice for the following unique reasons.
1. People would generally believe that Trump would say nearly anything.
2. I noticed a weird situation where someone basically duplicated everything that I did had commenters which were apparently much better at figuring out that the person performing the tweets were fake.
Since that experiment sort of failed I created an expanded refinement of GPT-2 on general twitter data. It was 200 MB of tweets from https://www.kaggle.com/kazanova/sentiment140 https://www.kaggle.com/kazanova/sentiment140.
I then repeated the experiment and eventually figured out that some people were really bad at figuring out fake tweets and I found a person who used twitter a great deal would actually perform better. I'm not sure if its that you tweet a bunch or just read twitter enough. I had a low sample (n=5) where I carried out the test. So my test could be completely biased.
The test procedure that I followed was to make a set of 10-20 questions and then have the user pick which one was fake and which one wasn't.
I was also doing these experiments on a Titan RTX (I'm thinking about getting a V100 or maybe just another Titan RTX so I can train two models at the same time). I accidentally upgraded the memory to 32GB which worked for a bit but instead you should probably get at least 1 or two multiples of your VRAM so that you can keep your operating system running and having the dataset loaded into memory.
Also, during refinement I don't think my loss ratio was improving. I think that either I wasn't using the system long enough.
But, as a conclusion I figured out that there is a huge shortcut that I never considered. It would be MUCH easier to just take any refined GPT-2 model or even use GPT-3 as an API above and then make it LOOK like a tweet. Just adding a hashtag and a t.co link would work. (the funny part is that GPT-2 actually seems to have some notion of a t.co link and will happly generate t.co links that don't work. Removing t.co links before refinement would be one way to get this out.
I did some of these experiments using Google CoLab initially. But as I used it I got out of memory options. I asked someone at pyOhio who worked for google if there was a way to connect Google Colab to a paid instance. They responded to refer me to Jake Vanderplas https://twitter.com/jakevdp https://twitter.com/jakevdp . They said no at the time. Then a few months after Google came out with Google Colab Pro. But then I was able to run out of system memory in the high memory instances. I upgraded my Deep Learning Rig with a AMD 3600 and I am now waiting for my 64 GB memory that is in the mail.
The latest thing that I have done is use local voice synthesis and recognition so that you can talk to GPT-2 locally. My tutorial is at https://www.youtube.com/watch?v=d6Lset0RFAw&t=2s https://www.youtube.com/watch?v=d6Lset0RFAw&t=2s
- jamesdutc 6y agoIn the future, will it be considered offensive to suggest that someone’s posts look like they were generated by an ML model…?
- duckfruit 6y agoI assure you this already considered offensive right now in the present!
- teruakohatu 6y agoI have the same suspicion as you, and I like how delicately you put. One thing that stands out is a reference to a "AMD 3600" which makes little sense in the context of buying a V100. Why buy an older low-mid range CPU in a deep learning rig with a high end Pro GPU. There is also talk of "accidentally upgraded the memory to 32GB".
- zitterbewegung 6y agoYea, so I thought I only needed 32gb for refinement but I ran out of memory when training a 800mb dataset. I use a 3600 ryzen right now and I saw that v100s are approximately the same price as a Titan rtx .
- britmob 6y agoYou only need a large amount of system RAM for the initial dataset encoding. You can do this once per dataset on a high memory config on AWS for pennies.
- zitterbewegung 6y agoI agree with you but I want to keep costs down so I am using my workstation .
- rafiki6 6y agoThis post definitely seems to be generated by an ML model. There is little coherence and I don't totally understand how the first part (giving a talk on GPT-2) is at all related to the end. It was long bit of coherent individual thoughts randomly strung together in an attempt to make a coherent story. In short, I'm not entirely sure what point the commenter is trying to make. Also, there are a weird number of links referenced to individuals.