training-operator icon indicating copy to clipboard operation
training-operator copied to clipboard

Docs: reference architecture for fault tolerance capabilities

Open StefanoFioravanzo opened this issue 1 year ago • 16 comments

What you would like to be added?

Since @andreyvelich commented:

Unfortunately, we don't have good docs right now about our ElasticPolicy: https://github.com/kubeflow/training-operator/blob/master/pkg/apis/kubeflow.org/v1/pytorch_types.go#L98 and restart policy APIs: https://github.com/kubeflow/training-operator/blob/master/pkg/apis/kubeflow.org/v1/common_types.go#L170

We should write some reference architecture docs to expose these features to our users.

Why is this needed?

Users do not have a reference to understand and appreciate the fault tolerance capabilities offered by training operator

Love this feature?

Give it a 👍 We prioritize the features with most 👍

StefanoFioravanzo avatar Jul 04 '24 11:07 StefanoFioravanzo

Thank you for creating this @StefanoFioravanzo! /good-first-issue

andreyvelich avatar Jul 05 '24 22:07 andreyvelich

@andreyvelich: This request has been marked as suitable for new contributors.

Please ensure the request meets the requirements listed here.

If this request no longer meets these requirements, the label can be removed by commenting with the /remove-good-first-issue command.

In response to this:

Thank you for creating this @StefanoFioravanzo! /good-first-issue

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

google-oss-prow[bot] avatar Jul 05 '24 22:07 google-oss-prow[bot]

Hi, new to kubeflow, would like to work on this. Couple of questions:

  1. Will docs be contributed to kubeflow-website repo? (so PR will be created there?)
  2. Should I create a google doc first and have it reviewed iteratively?
  3. I'm new to kubeflow ecosystem so it'd be great if you can point me towards the resources/pointers to fully understand the above mentioned policies.

Thank you for your time. @andreyvelich @StefanoFioravanzo

LogicalGuy77 avatar Jul 08 '24 23:07 LogicalGuy77

I want to take this up, and would love any advice @StefanoFioravanzo @andreyvelich

aryan-py avatar Jul 09 '24 10:07 aryan-py

@LogicalGuy77 @aryan-py Thanks for stepping up!

Docs will be contributed to the Kubeflow Website, more specifically under Katib's Reference section here https://www.kubeflow.org/docs/components/katib/reference/

I would recommend starting with a google doc, especially since you are not familiar with these concepts. This will allow the project owners to review faster. You can then move the content to a PR once it's in a good state. I suggest sharing the Google Doc with the whole google discuss group, with commenter privilege (if you do that, remember to un-tick the option to notify the recipient, otherwise everyone in the Kubeflow google group will be spammed).

StefanoFioravanzo avatar Jul 09 '24 11:07 StefanoFioravanzo

Thanks for your interest @LogicalGuy77 and @aryan-py!

Yes, @StefanoFioravanzo is right, we are planning to contribute this docs to the Kubeflow website: https://github.com/kubeflow/website

Just a small correction, we should use Training Operator user-guides section to explain how various APIs work with Training Operator to achieve fault tolerance: https://www.kubeflow.org/docs/components/training/user-guides/

I would suggest to start with RestartPolicy API to handle ML training Pod restarts, and Elastic Policy API for fault-tolerant PyTorch on Kubernetes. cc @kubeflow/wg-training-leads

andreyvelich avatar Jul 09 '24 12:07 andreyvelich

@andreyvelich ops, sorry indeed we are talking about training-operator. But shouldn't this go under Reference? I think we are talking about how fault-tolerance is designed in the operator.

What kind of user guides are you thinking about?

StefanoFioravanzo avatar Jul 09 '24 12:07 StefanoFioravanzo

I guess, we can add two things:

  • Explain users how they can leverage various training Job run policies API for large-scale distributed training
  • Add diagrams to the reference docs to explain how does it work

andreyvelich avatar Jul 09 '24 14:07 andreyvelich

Update:

I've been going through lots of code and documentation and have prepared an initial draft for Restart Policy: Google Doc. I've provided commenter access to kubeflow-discuss google group. I would love to have your guidance to improve it further. I was thinking of dividing the task into three parts:

  1. Restart Policy
  2. Elastic Policy
  3. Job Run Policies for Large-Scale Distributed Training: like clean pod and scheduling policy.

Could you elaborate more on what kind of diagrams are you looking for?

Thank you for your time. @andreyvelich @StefanoFioravanzo

LogicalGuy77 avatar Jul 12 '24 19:07 LogicalGuy77

Hi @andreyvelich @StefanoFioravanzo,

Just wanted a follow up on this issue. I've added docs for elastic policy as well. Would you be able to take a look and provide feedback when you have a chance?

Thanks!

LogicalGuy77 avatar Jul 21 '24 14:07 LogicalGuy77

This is great work @LogicalGuy77! Do you want to present this doc on upcoming AutoML and Training WG call this Wednesday: https://bit.ly/2PWVCkV ? cc @kubeflow/wg-training-leads

andreyvelich avatar Aug 05 '24 11:08 andreyvelich

Sure, I'd love to! @andreyvelich

LogicalGuy77 avatar Aug 05 '24 14:08 LogicalGuy77

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

github-actions[bot] avatar Nov 03 '24 15:11 github-actions[bot]

/remove-lifecycle stale

tenzen-y avatar Nov 04 '24 06:11 tenzen-y

is this still a valid issue to work on, I don't see an attached pr? cc: @StefanoFioravanzo @tenzen-y

mahdikhashan avatar Feb 02 '25 07:02 mahdikhashan

is this still a valid issue to work on, I don't see an attached pr? cc: @StefanoFioravanzo @tenzen-y

We are currently restructuring the fault tolerance strategies based on new v2 projects.

tenzen-y avatar Feb 04 '25 11:02 tenzen-y

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

github-actions[bot] avatar May 05 '25 15:05 github-actions[bot]

This issue has been automatically closed because it has not had recent activity. Please comment "/reopen" to reopen it.

github-actions[bot] avatar May 25 '25 20:05 github-actions[bot]