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

[Sample] Add new TFX::OSS sample #2319

Merged
merged 16 commits into from
Oct 10, 2019

Conversation

numerology
Copy link

@numerology numerology commented Oct 7, 2019

Add a sample showing how to run TFX pipeline on Kubeflow Runner.

TODO:

  • Add proper dependency so it can be built into preload samples
  • Add docs
  • Add sample test coverage

This change is Reviewable

@numerology
Copy link
Author

Note that the compilation of new sample here requires a HEAD version of TFX (as of 10.07.2019) and a customized value in tfx.version pointing to TFX nightly build (because there is actually no image tagged as tfx:0.15.0.dev). I suggest that we move this sample to contrib sample dir to bypass integration test and make the compiled pipeline package part of our repo so that backend server can pre-load it, otherwise we might need rather complex dependency setup, which is also error-prone because it relies on a dev version of TFX.

I will add a doc so that a user knows how to compile such hacky sample successfully.

WDYT @neuromage @gaoning777

@numerology numerology changed the title [WIP] [Sample] Add new TFX::OSS sample [Sample] Add new TFX::OSS sample Oct 7, 2019
@neuromage
Copy link
Contributor

WDYT @neuromage @gaoning777

SGTM, thanks!

@gaoning777
Copy link
Contributor

gaoning777 commented Oct 8, 2019

I think it is a little risky to load the sample in the API server without testing. The preloaded samples are supposed to be flagship samples that are guaranteed to work. Say, a new user tries out the KFP and runs the preloaded sample but failed. It could easily scare them away. Besides, we got lots of issues in the early stages when the preloaded samples break. @SinaChavoshi used to use the old TFX samples for demos and IIRC, sample breaking during the demo is bad.

My suggestion is a little change on top of your current work: write some custom sample test infra codes to cover the test for the compiled pipeline. It shouldn't be too much custom codes but is rewarding. WDYT? @numerology @neuromage

@numerology
Copy link
Author

I think it is a little risky to load the sample in the API server without testing. The preloaded samples are supposed to be flagship samples that are guaranteed to work. Say, a new user tries out the KFP and runs the preloaded sample but failed. It could easily scare them away. Besides, we got lots of issues in the early stages when the preloaded samples break. @SinaChavoshi used to use the old TFX samples for demos and IIRC, sample breaking during the demo is bad.

My suggestion is a little change on top of your current work: write some custom sample test infra codes to cover the test for the compiled pipeline. It shouldn't be too much custom codes but is rewarding. WDYT? @numerology @neuromage

One of the current problem is that we need a dev version and a nightly build of TFX to make this compile and run. If we put those dependencies in our sample test infra it might not be very stable. Talked to TFX side and I was told 0.15.0 release should be either this week or next week. I think it will be much easier and reliable to add a sample test coverage by then.

@gaoning777
Copy link
Contributor

gaoning777 commented Oct 9, 2019

what I meant is not adding dependency on the dev version of the TFX, but adding custom sample test infra codes to run the chicago_taxi_pipeline_simple.tar.gz directly without compilation. We add the python codes and the compiled one as you have done here.

@numerology
Copy link
Author

what I meant is not adding dependency on the dev version of the TFX, but adding custom sample test infra codes to run the chicago_taxi_pipeline_simple.tar.gz directly without compilation. We add the python codes and the compiled one as you have done here.

I see. That's doable. Let me ping you when it's done.

numerology added 4 commits October 9, 2019 11:46
@numerology
Copy link
Author

PTAL @neuromage @gaoning777 Thanks!

@neuromage
Copy link
Contributor

This is pretty awesome, thanks @numerology :-)
/lgtm
/approve

@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: neuromage

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

@k8s-ci-robot k8s-ci-robot merged commit 361fbee into kubeflow:master Oct 10, 2019
@numerology numerology deleted the add-hacky-tfx-preload-sample branch October 10, 2019 00:10
@gaoning777
Copy link
Contributor

This is great.
Thanks

@animeshsingh
Copy link
Contributor

@gaoning777 @numerology @neuromage we have a talk in KF summit and TF World on this topic - are there any additional materials (slides/design docs etc.) you can point to vis a vis TFX which I can use?

@numerology
Copy link
Author

@gaoning777 @numerology @neuromage we have a talk in KF summit and TF World on this topic - are there any additional materials (slides/design docs etc.) you can point to vis a vis TFX which I can use?

The recommended entrypoint of a variety of docs besides the code repo is the user guide where some basic concepts and orchestration mechanism of TFX are introduced. Also there is some recorded talks and tutorials here.

magdalenakuhn17 pushed a commit to magdalenakuhn17/pipelines that referenced this pull request Oct 22, 2023
* Fix custom model dockerfile

* Fix python dependency installation failure.

Signed-off-by: Andrews Arokiam <andrews.arokiam@ideas2it.com>

* Optimize dockerfiles

* Optimize all dockerfiles for layer caching.

Signed-off-by: Andrews Arokiam <andrews.arokiam@ideas2it.com>
magdalenakuhn17 pushed a commit to magdalenakuhn17/pipelines that referenced this pull request Oct 22, 2023
* Upgrade dockerfiles python version to 3.9

* upgrade following dockerfiles to python 3.9:
    - Aiffairness
    - Aixexplainer
    - Alibiexplainer
    - Artexplainer
    - custom model
    - custom transformer
    - lgb
    - paddle
    - pmml
    - sklearn
    - xgb
    - storage-initializer

Signed-off-by: Andrews Arokiam <andrews.arokiam@ideas2it.com>

* Updatedpython dependencies for explainers.

Explainer image builds were failing after updating python to newer version.
Updated the dependencies that were compatible with newer base image.

Signed-off-by: Andrews Arokiam <andrews.arokiam@ideas2it.com>

* Optimize docker image builds (kubeflow#2319)

* Fix custom model dockerfile

* Fix python dependency installation failure.

Signed-off-by: Andrews Arokiam <andrews.arokiam@ideas2it.com>

* Optimize dockerfiles

* Optimize all dockerfiles for layer caching.

Signed-off-by: Andrews Arokiam <andrews.arokiam@ideas2it.com>

* Fixed issue with a missing library in paddle
Paddle docker image has missing libs after base image and version changes

Signed-off-by: Andrews Arokiam <andrews.arokiam@ideas2it.com>

* Fixed failing e2e tests
Added a library explictly in setup.py
reverted python base image for ai explainer

Signed-off-by: Andrews Arokiam <andrews.arokiam@ideas2it.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.

5 participants