Skip to content
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

Training and Serving Pipeline leveraging WML #800

Merged
merged 8 commits into from
Feb 23, 2019
Merged

Training and Serving Pipeline leveraging WML #800

merged 8 commits into from
Feb 23, 2019

Conversation

animeshsingh
Copy link
Contributor

@animeshsingh animeshsingh commented Feb 8, 2019

The Watson Train and Serve sample pipeline runs training, storing and deploying a Tensorflow model with MNIST handwriting recognition using IBM Watson Studio and IBM Watson Machine Learning service.


This change is Reviewable

@k8s-ci-robot
Copy link
Contributor

Hi @animeshsingh. Thanks for your PR.

I'm waiting for a kubeflow member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

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/test-infra repository.

1 similar comment
@k8s-ci-robot
Copy link
Contributor

Hi @animeshsingh. Thanks for your PR.

I'm waiting for a kubeflow member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

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/test-infra repository.

@IronPan
Copy link
Member

IronPan commented Feb 9, 2019

/retest

1 similar comment
@animeshsingh
Copy link
Contributor Author

/retest

@k8s-ci-robot
Copy link
Contributor

@animeshsingh: Cannot trigger testing until a trusted user reviews the PR and leaves an /ok-to-test message.

In response to this:

/retest

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/test-infra repository.

1 similar comment
@k8s-ci-robot
Copy link
Contributor

@animeshsingh: Cannot trigger testing until a trusted user reviews the PR and leaves an /ok-to-test message.

In response to this:

/retest

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/test-infra repository.

@IronPan
Copy link
Member

IronPan commented Feb 12, 2019

/test kubeflow-pipeline-e2e-test
/test kubeflow-pipeline-sample-test

Removing references to wml-base image, and recreating it with python-slim as base image
@googlebot
Copy link
Collaborator

So there's good news and bad news.

👍 The good news is that everyone that needs to sign a CLA (the pull request submitter and all commit authors) have done so. Everything is all good there.

😕 The bad news is that it appears that one or more commits were authored or co-authored by someone other than the pull request submitter. We need to confirm that all authors are ok with their commits being contributed to this project. Please have them confirm that here in the pull request.

Note to project maintainer: This is a terminal state, meaning the cla/google commit status will not change from this state. It's up to you to confirm consent of all the commit author(s), set the cla label to yes (if enabled on your project), and then merge this pull request when appropriate.

@animeshsingh
Copy link
Contributor Author

@vicaire we confirm the PR is good from our side, and has consent from all the authors. Please review

components/ibm-components/watson/deploy/src/wml-deploy.py Outdated Show resolved Hide resolved
# download scoring payload
payload_file = os.path.join('/app', wml_scoring_payload)

s3 = boto3.resource('s3',
Copy link
Contributor

Choose a reason for hiding this comment

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

Could you please use Minio client instead of S3 directly?

https://github.com/minio/mc

Minio client abstracts away AWS S3, GCS, Azure Cloud, and Minio Server (on prem solution), so that the component is compatible with all these clouds.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@vicaire this is something we can definitely come back to in future, as we strive to take the message of 'Watson anywhere' forward. Currently s3 client is something most of the developer use

Copy link
Contributor

Choose a reason for hiding this comment

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

Hi animeshsingh@, we are moving towards making all the components checked into the repository compatible with multiple clouds.

Minio Client should be simple to use (as much as using an S3 client directly) and would make the component work across multiple clouds.

It would also make it easy to add a end-to-end test for this component (our e2e test framework uses GCP). e2e tests are important as they automatically verify that the component keeps working at each PR commit.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Thanks @vicaire . We will look into minio client. Vis a vis the end to end test, how are we doing it for components which use GCP, for e.g. Cloud Dataflow service? Do we create a dedicated set of credentials? If not, the tests are mostly mocking the behaviour?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@vicaire We have switched to minio client. End to end tests - want to get your input as mentioned above

components/ibm-components/watson/store/src/wml-store.py Outdated Show resolved Hide resolved
components/ibm-components/watson/train/src/wml-train.py Outdated Show resolved Hide resolved
if __name__ == '__main__':
# compile the pipeline
import kfp.compiler as compiler
pipeline_filename = kfp_wml_pipeline.__name__ + '.tar.gz'
Copy link
Contributor

Choose a reason for hiding this comment

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

Did you think of a way tests could be written for this pipeline? And end to end test would be useful but the call to IBM watson would have to be mocked. Let me know your thoughts.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Will invstigate

@vicaire
Copy link
Contributor

vicaire commented Feb 20, 2019

Thanks animeshsingh@,

The changes look good. Could you please just modify the code/documentation so that it does not seem s3 specific but multi-cloud instead? Using "object store" instead of "s3" in the doc would be great, using minio or minio_client instead of s3 in the code would be great as well.

We are working on doing the same thing for parts of the codebase where GCS is mentioned. The community feels strongly about Kubeflow being a project that is independent of any cloud.

Let's skip e2e tests for now as we are trying to figure out to organize this for contributions. We will also need to release your containers, which requires a review process. Thanks!

@animeshsingh
Copy link
Contributor Author

Thanks @vicaire. We have changed s3 to cos, standing for cloud object store. Please take a look and see if we can get this in now

@vicaire
Copy link
Contributor

vicaire commented Feb 22, 2019

Thank you. This is great.
/lgtm
/approve
/retest

@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: vicaire

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

The pull request process is described here

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

@vicaire
Copy link
Contributor

vicaire commented Feb 22, 2019

@animeshsingh, this is blocked by the CLA agreement.

@animeshsingh
Copy link
Contributor Author

@vicaire there are two authors, and the other one has given consent. He has signed the CLA as well..do we need anything else?

@vicaire
Copy link
Contributor

vicaire commented Feb 22, 2019

According to the robot:

So there's good news and bad news.

👍 The good news is that everyone that needs to sign a CLA (the pull request submitter and all commit authors) have done so. Everything is all good there.

😕 The bad news is that it appears that one or more commits were authored or co-authored by someone other than the pull request submitter. We need to confirm that all authors are ok with their commits being contributed to this project. Please have them confirm that here in the pull request.

Note to project maintainer: This is a terminal state, meaning the cla/google commit status will not change from this state. It's up to you to confirm consent of all the commit author(s), set the cla label to yes (if enabled on your project), and then merge this pull request when appropriate.

@vicaire
Copy link
Contributor

vicaire commented Feb 22, 2019

So the second author just needs to confirm approval in the pull request. Then I can add the label and we can check this in.

@adrian555
Copy link
Member

LGTM. Looks good to me. Approve.

@animeshsingh
Copy link
Contributor Author

@vicaire please check above

@vicaire vicaire merged commit 89e21df into kubeflow:master Feb 23, 2019
@vicaire
Copy link
Contributor

vicaire commented Feb 23, 2019

Sounds good. Thanks for your contribution!

cheyang pushed a commit to alibaba/pipelines that referenced this pull request Mar 28, 2019
* initial watson pipeline

* updates

* updates

* Update creds

* updated dockerhub base files

* update watson pipeline (kubeflow#2)

Removing references to wml-base image, and recreating it with python-slim as base image

* address review comment (kubeflow#3)

* change s3 to cos (kubeflow#4)
Linchin pushed a commit to Linchin/pipelines that referenced this pull request Apr 11, 2023
magdalenakuhn17 pushed a commit to magdalenakuhn17/pipelines that referenced this pull request Oct 22, 2023
* Add custom inference example using BentoML

* nit: add introductary to setup and improve instructions

* Remove note about kfserving-ingressgateway and update curl command
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.

6 participants