3 ms·
Yes. You'd have to package up slices of the training set and the prior epoch as work units and host them. Our hypothetical GPT@home clients download the trainin
by kmeisthax 4y ago
Yes. You'd have to package up slices of the training set and the prior epoch as work units and host them. Our hypothetical GPT@home clients download the training set, train just those examples, and then send back their gradients. The server then averages all the gradients together.
As far as I can tell this isn't any different conceptually from the distributed inference setup that PyTorch/Huggingface Accelerate/etc support. Of course those were built for cooperating machines owned by the same organization with lots of high-speed I/O. In an @home/BOINC setup, you need to package things up into work units that get sent out to other people's computers, and you don't get anything back until the end. So it's higher-latency and you have to worry about people cheating the system with bogus work.
I'm not sure if this would be more efficient or cheaper than just renting out a bunch of AWS spot instances with GPUs in them.
- cypress66 4y agoBatches need to be reasonably sized. Llms are usually trained for a single epoch. If you just average the gradients once, it will be awful. The main problem I believe is that you would need extremely high bandwidth. For a 100B model you're looking at 400GB of gradients you need to send each batch. There's a reason why super fast networking is used.
- deleted 4y ago[deleted]
- pxmpxm 4y agoErr gradients aren't independently additive like that right?