-
Notifications
You must be signed in to change notification settings - Fork 510
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
GRPC support - in scope? #52
Comments
Hi @justinsb thanks for taking the initiative. There's been interest in client/server capabilities and I think there's some obvious use cases + value in that. There's a few things being worked out that intertwine with such an implementation:
My suggestion is keep your initial implementation light (some interfaces may change as a result of #3). Can use that as a basis for thinking through design gaps + cleanup needed. A meta q is where to have more involved design discussions w/ community (i've also opened up the discussions tab up top but haven't made use of it yet, may look into a discord). |
That's great news, and I agree!
I had a go, my alternative entrypoint
My 2c: putting it into the same repo simplifies any refactoring we want to do as part of (1). For example, if we want to make small changes e.g. to function signatures, or larger changes like supporting batching (I don't think that's there today?). Over time, the core will stabilize and contrib will grow, and we'll probably move things out of contrib into their own repos and encourage more work in other repos - we saw the same pattern in kubernetes. But when the project is getting started, if you want everything to be working, IMO you have to be able to make changes to the whole ecosystem at once, and one repo is the best solution I've found. I don't think this should discourage people doing things in other repos; rather I think that having some consumers in the same repo acts both as an example and an existence proof.
Great - I hope that having a few "consumers" in the repo will help us easily see the impact on different frontends of these changes, because we'll hopefully make any required changes in the same PR. Consumers in other repos can then mirror those changes.
Ack - and that's exactly what I'm hoping to achieve by colocating it in this repo.
My view is that the best discussions normally happen in the issue comments and PR comments. PRs/code are also part of the conversation, for example maybe we host the GRPC frontend in
You might also consider hosting occasional video meetings ("office hours"), though usually those organically grow from having a few ad-hoc discussions as a core team emerges. I've not personally seen a lot of uptake of the github discussions feature. I know discord is big in the AI community so that might be a good option. |
Hi @justinsb, after a huge delay, we are catching up on issues and suggestions this week :) One update is that batching is now supported, but hasn't seen a lot of testing yet. It seems useful to have that supported in interfaces. I like your idea of adding contrib, with the expectation that interfaces may change up to a certain time, and think that gRPC + HTTP would be great additions. Happy to discuss. FYI there is also a discord, but personally I'd also prefer to discuss in issues/PRs as you suggest, easier to organize/search that way. |
I'd like to be able to run gemma.cpp on kubernetes. A first step in my rough plan is to add a client/server mode, and I thought I would add GRPC support. Is the project open to having a
contrib
directory where we can collaborate on this sort of thing? In future, I'm imagining we could put things like kubernetes manifests in there also.I have a simple server (though my C++ is not good!) and an example client in golang which I will send as a WIP PR to make the discussion more concrete.
The text was updated successfully, but these errors were encountered: