[WIP][GSoC] PoC: Dynamic Registry Pattern for Trainer Backends (Project 10)#310
Conversation
Signed-off-by: Vetapalem Pravallika <pravallikavetapalem1043@gmail.com>
Signed-off-by: Vetapalem Pravallika <pravallikavetapalem1043@gmail.com>
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
|
🎉 Welcome to the Kubeflow SDK! 🎉 Thanks for opening your first PR! We're happy to have you as part of our community 🚀 Here's what happens next:
Join the community:
Feel free to ask questions in the comments if you need any help or clarification! |
There was a problem hiding this comment.
Pull request overview
Proof-of-concept for a decorator-based backend registry to make trainer backends pluggable without hard-coded if/elif selection logic.
Changes:
- Added
poc_registry.pydemonstrating a minimal dynamic registry pattern (@register_backend) and a registry-drivenTrainerClient. - Appended an extra line to
README.md(currently appears to be an accidental test/debug change).
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 6 comments.
| File | Description |
|---|---|
| poc_registry.py | Adds a standalone PoC implementation of a backend registry and registry-based client instantiation. |
| README.md | Adds a trailing line that looks unrelated to documentation content. |
Comments suppressed due to low confidence (1)
README.md:232
- This looks like an accidental debug/test line and will render as a stray quoted string in the README; please remove it to keep the documentation clean.
"# Test change from my-feature-branch"
Signed-off-by: Vetapalem Pravallika <pravallikavetapalem1043@gmail.com>
Signed-off-by: Vetapalem Pravallika <pravallikavetapalem1043@gmail.com>
🎯 Purpose
This Pull Request is a Proof of Concept (PoC) for GSoC 2026 Project 10: Dynamic LLM Trainer.
###problem statement
Currently,
TrainerClientis tightly coupled with its backends (Kubernetes,Container,Local) via static imports andif/eliflogic. To support the Dynamic LLM Trainer goal, we need a way to plug in new LLM frameworks (likeUnsloth,Llama-Factory, orTorchTune) without modifying core SDK files.🛠️ Proposed Solution
@register_backend).TrainerClientto instantiate backends via registry lookup rather than hard-coded logic.poc_registry.pyas a standalone demonstration of this architecture and workflow.🔍 Research / Notes
kubeflow/trainer/api/trainer_client.pyfor integration points.BaseBackendabstraction inkubeflow/trainer/backends/base.py.✅ Checklist
👋 Note to Mentors
I am Pravallika, a GSoC 2026 aspirant. I am deeply interested in the ML Experience track and in improving the extensibility of the Kubeflow SDK for the LLM ecosystem. I would greatly appreciate any early feedback on this architectural direction.
Signed-off-by: Pravallika Vetapalem pravallikavetapalem1043@gmail.com