I am sorry I did not understand all of it. But, would this allow running large MoE LLMs on a local network with experts spread out over multiple cheaper GPUs (or even CPUs)? This would perhaps be more useful than over the Internet, within offices for example.
This looks really interesting, and if I understand what this does properly: it was high time someone built this!
Without diving into an experiment myself, it would be amazing if you could add some stats or experiment logs, if it's not too much problem and you have them.
For example:
Given model XYZ, every assuming 5 donors with a uniform 32GB each, each forward pass shunts xGB over the link. Each pass takes nMS, etc. etc. Resulting in n T/s, assuming latency of n ms.
Do you have such stats? Or perhaps I missed them in the repo?
On the surface it seems similar to https://meshllm.cloud/, but now I notice that I don't understand either.
What if one wishes to use various busybox nodes within the house?
All the iot devices contributing to matmul but within a LAN?
Great work. Love the idea. I have been thinking along the same way, but for training. For inference, the waiting time might be turn off for users
P2P inference sounds really nice and it would bring us back to the 2000s culture if not for the fact inference is already so cheap. Even so it is an insurance policy if the cloud providers or governments have ideas of further censoring and monitoring chats.
Cool idea. How do you handle temperature in the verification?
Wasn't a p2p ai model how skynet got started?
J/k, this looks cool :)
so looking at the start docs, you should integrating the same llamacpp setup where they just bake in huggingface support.
second, don't use vague names of models; point to the actual repos you're testing on huggingface. There's enough diversity and specialization that even if you're smart enough to know that colibri is doing something that's particularly applicable to a type of model, it's easy to get lost in all the acronyms.
third, this looks like a fun tool to unite the diversity of random hardware people have, which is always going to win for local inference.
[dead]
I’ve been thinking about this same idea recently, so I’m glad it exists now!
The biggest benefit I see is to enable RAM constrained GPUs to perform inference of large parameter models with surprisingly high throughput. Because only a single expert is resident, the memory to compute ratio over the network is limited only by the activations, not the weights. For an Moe like kimi k3 where active parameters are 103B, we might expect to achieve performance limited only by ~5 effective tok/s per Tflop and ~1 tok/s per 100GB/s.
The more members of the network, the smaller your resident parameters are required to be. I’m not sure whether we can split layer inference into arbitrary chunks, but if so you’d be able to increase memory throughput by storing everything in GPU caches.
Of course, we expect latency to be relatively high, but that’s a tradeoff that's fine for certain circumstances.
I’m not sure whether there are any issues more with this idea, but it’s a fun one nonetheless :)