Skip to content

[WIP][GSoC] PoC: Dynamic Registry Pattern for Trainer Backends (Project 10)#310

Open
vetapalem-pravallika wants to merge 5 commits intokubeflow:mainfrom
vetapalem-pravallika:study/project-10-dynamic-registry
Open

[WIP][GSoC] PoC: Dynamic Registry Pattern for Trainer Backends (Project 10)#310
vetapalem-pravallika wants to merge 5 commits intokubeflow:mainfrom
vetapalem-pravallika:study/project-10-dynamic-registry

Conversation

@vetapalem-pravallika
Copy link

🎯 Purpose

This Pull Request is a Proof of Concept (PoC) for GSoC 2026 Project 10: Dynamic LLM Trainer.

###problem statement
Currently, TrainerClient is tightly coupled with its backends (Kubernetes, Container, Local) via static imports and if/elif logic. To support the Dynamic LLM Trainer goal, we need a way to plug in new LLM frameworks (like Unsloth, Llama-Factory, or TorchTune) without modifying core SDK files.

🛠️ Proposed Solution

  • Introduced a Dynamic Registry Pattern using a decorator-based system (@register_backend).
  • Refactored TrainerClient to instantiate backends via registry lookup rather than hard-coded logic.
  • Added poc_registry.py as a standalone demonstration of this architecture and workflow.

🔍 Research / Notes

  • Explored kubeflow/trainer/api/trainer_client.py for integration points.
  • Studied BaseBackend abstraction in kubeflow/trainer/backends/base.py.

✅ Checklist

  • Docs included (PoC documentation in comments)
  • Signed my commits (DCO)
  • PR title follows the Conventional Commits standard

👋 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

Signed-off-by: Vetapalem Pravallika <pravallikavetapalem1043@gmail.com>
Signed-off-by: Vetapalem Pravallika <pravallikavetapalem1043@gmail.com>
Copilot AI review requested due to automatic review settings February 21, 2026 13:55
@google-oss-prow
Copy link
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign electronic-waste for approval. For more information see the Kubernetes Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@github-actions
Copy link
Contributor

🎉 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:

  • If you haven't already, please check out our Contributing Guide for repo-specific guidelines and the Kubeflow Contributor Guide for general community standards
  • Our team will review your PR soon! cc @kubeflow/kubeflow-sdk-team

Join the community:

Feel free to ask questions in the comments if you need any help or clarification!
Thanks again for contributing to Kubeflow! 🙏

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.py demonstrating a minimal dynamic registry pattern (@register_backend) and a registry-driven TrainerClient.
  • 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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants