GAN research is expensive; can it be crowdfunded?
You may recently have stumbled on ThisPersonDoesNotExist.com, a demo of NVIDIA’s latest face-generation algorithm. The faces are notable not just for being realistic (in most cases), but for having a high resolution.
According to the StyleGAN GitHub, training a system on the sample data to this resolution takes 41 days on one of NVIDIA’s Tesla V100 GPUs, or 6.5 days when distributed on 8 GPUs. Based on Google Cloud’s published prices of $2.48/hr or $1,267.28/month for each GPU this training would cost between $2,500 and $3,100. At a lower 256x256 resolution you could lower the cost below $900, but that’s still not pocket change.
Cloud companies, GPU manufacturers, and university researchers can afford this cost for experimental face generators and product demos. But it introduces a gap between people who are experimenting with code and machine learning, and funded researchers. If a student or artist wanted to retrain this model on different faces, they would need to write out their plan and fundraise and justify spending $1,500 (assume that their target is low-res but that they need additional time to test and debug the training process).
Alternative Funding Proposal
What if these bush-league GANs were funded through continuous community crowdfunding? How I see it working:
- This community votes up/down GAN proposals, and every 3 weeks, the top project receives compute time.
- Prospective GAN-runners submit their proposal, with proof that they have a usable dataset, code, and interesting output. There could be a ~$20 fee to guarantee that the community isn’t flooded with sloppy applications.
- Community members donate $ or compute time into a pool, and this affects the weight of their vote (weighting capped at $100/user, $2,000/org to avoid GAN-runners using the vote to subsidize their own project).
Given recurring costs, the funding model would ideally work like Patreon, but it’s difficult to say how this would be received. I’m also uncertain how the GAN compute time can be easily delivered to the end users… is it as simple as giving them temporary access to monthly-rented GPUs on my own account? If a company donates GPU time outside of the cloud how do I handle access to that? Etc.
Updates?
This article was posted in April 2019. For future updates check the relevant section of my readme https://github.com/mapmeld/use-this-now/blob/main/README.md#crowdfunded-ai