mlopscicd
Science Score: 44.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (12.8%) to scientific vocabulary
Repository
Basic Info
- Host: GitHub
- Owner: shivajid
- License: apache-2.0
- Language: Jupyter Notebook
- Default Branch: master
- Size: 25 MB
Statistics
- Stars: 2
- Watchers: 1
- Forks: 1
- Open Issues: 1
- Releases: 0
Metadata Files
README.md
Release 0.1 Date 03/16/2022
About
This repo covers how to execute MLOps Pipelines with CI/CD. I have additionally added suplementary content - BigQuery ML - Vertex Training
Pipelines
Before we get started it is a good to understand the concepts of Kubleflow. The Kubeflow.md file covers the basics and understanding on Kubeflow. After finishing the Kubelflow.md, Vertex Pipeline User Guide provides a good introduction to Vertex AI Pipelines and how it is different from the Open Source Kubeflow pipelines.
About
I this workshop you will do the following * Setup your lab environment * Setup Source Control with Cloud Source Repository * Setup Build Trigger * Run a basic intro to kubeflow lab * Run a Kubelfow controls * Build a sample Machine Learning Pipeline * Trigger the machine learning pipeline using Cloud Functions * Run CI/CD with MLOps Pipelines
Qwiklabs Pipelines (Alternative to this workshop)
If you are interested in doing the Qwiklabs for Vertex Pipelines with Kubeflow, it has a good step by step process Qwiklabs Tutorials
Enviroment
Setup the environment with following pre steps
Code Organization
The code structure is defined in the following folders:
notebook: This contains the notebooks for KFP and CI/CD.
- 01pipelinesintrokfp.ipynb This is an intro notebook to Pipelines
- 02controlflowkfp.ipynb (Optional) This a second KFP Pipelines showing how to work with control flows and parallel execution
- 03IrisflowersAutoMLKubeflowPipeline.ipynb: This notebook shows the pipeline that can be executed cell by cell, to understand the pipeline flow.
- 04IrisPipelineTemplate.ipynb: This notebook generates two pipeline files that can be used to by the build system
pipeline: This folder containers the trainer code pipeline that is for model training
artifacts: This is the docker file and other artifacts. This is optional and can be used if you want just have a training image that you would want to build out.
Following files in the root of the folder: - cloudbuild.yaml: This is the build file used by cloud build. This has two steps one for build and one for execution of the pipeline. - requirements.txt: Python packages needed to perform the build
Steps to execute for this
Complete the pre-steps if you have not * Step1 Complete 01pipelinesintrokfp
Step2 Complete 02controlflowkfp.ipynb
Step3:
Explore the pipeline code (IrisflowersAutoMLKubeflowPipeline.ipynb) We are going to work with the iris dataset to classiify flower images. This is fairly simple where you will use the dataset creation and AutoML to classify the images. At the end you will deploy the model.
Step4: Running Cloud Build Trigger and Pipeline:
Prepare the pipeline python code. Execute the notebook "IrisPipelineTemplate.ipynb". Change the needed variables in the code and generate the pipeline files. The pipeline files should be generated in the pipeline folder. There are two files. One is for the pipeline source and the other takes the compiled pipeline output and executes it.
Step5: Manual Build Execution:
Manually Execute the cloud build to test the pipeline
gcloud builds submit --config cloudbuild.yaml --timeout=1000Step6: Update the Pipeline:
- Change the pipeline parameters of the pipeline in the "IrisPipelineTemplate.ipynb" file. Execute the cells to generate the files.
Step7: Push the code to trugger cloud build and pipeline execution:
- Add files to the git repository
git add .git commit -m "some message"git push
Now open the cloud build console UI. You should see a build kicked off. You can navigate to Vertex AI Pipelines, you will see a pipeline launched.
- Step8: Use Cloud Function and Cloud Scheduler
- Use CloudFunctions and Cloud Scheduler to schedule a run.
TFX
Owner
- Name: Shivaji Dutta
- Login: shivajid
- Kind: user
- Location: San Francisco
- Company: Aurius LLC
- Website: https://www.linkedin.com/in/shivajidutta
- Repositories: 171
- Profile: https://github.com/shivajid
Citation (CITATION.cff)
cff-version: 1.2.0 message: "If you use this software, please cite it as below." authors: - family-names: "Dutta" given-names: "Shivaji" orcid: "https://orcid.org/0000-0000-0000-0000" title: "" version: 0.1 doi: 10.5281/zenodo.1234 date-released: 2022-03-14 url: "https://github.com/shivajid/MLOpsCICD"
GitHub Events
Total
Last Year
Dependencies
- example.com/greetings v0.0.0-00010101000000-000000000000
- cloud.google.com/go v0.100.2
- cloud.google.com/go/aiplatform v1.8.0
- cloud.google.com/go/compute v1.5.0
- github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e
- github.com/golang/protobuf v1.5.2
- github.com/google/go-cmp v0.5.7
- github.com/googleapis/gax-go/v2 v2.2.0
- github.com/jmcvetta/napping v3.2.0+incompatible
- go.opencensus.io v0.23.0
- golang.org/x/net v0.0.0-20220325170049-de3da57026de
- golang.org/x/oauth2 v0.0.0-20220309155454-6242fa91716a
- golang.org/x/sys v0.0.0-20220328115105-d36c6a25d886
- golang.org/x/text v0.3.7
- google.golang.org/api v0.74.0
- google.golang.org/appengine v1.6.7
- google.golang.org/genproto v0.0.0-20220328180837-c47567c462d1
- google.golang.org/grpc v1.45.0
- google.golang.org/protobuf v1.28.0
- 588 dependencies
- github.com/gin-contrib/sse v0.1.0
- github.com/gin-gonic/gin v1.7.7
- github.com/go-playground/locales v0.13.0
- github.com/go-playground/universal-translator v0.17.0
- github.com/go-playground/validator/v10 v10.4.1
- github.com/golang/protobuf v1.3.3
- github.com/json-iterator/go v1.1.9
- github.com/leodido/go-urn v1.2.0
- github.com/mattn/go-isatty v0.0.12
- github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421
- github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742
- github.com/ugorji/go/codec v1.1.7
- golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9
- golang.org/x/sys v0.0.0-20220412211240-33da011f77ad
- gopkg.in/yaml.v2 v2.2.8
- github.com/davecgh/go-spew v1.1.0
- github.com/davecgh/go-spew v1.1.1
- github.com/gin-contrib/sse v0.1.0
- github.com/gin-gonic/gin v1.7.7
- github.com/go-playground/assert/v2 v2.0.1
- github.com/go-playground/locales v0.13.0
- github.com/go-playground/universal-translator v0.17.0
- github.com/go-playground/validator/v10 v10.4.1
- github.com/golang/protobuf v1.3.3
- github.com/google/gofuzz v1.0.0
- github.com/json-iterator/go v1.1.9
- github.com/leodido/go-urn v1.2.0
- github.com/mattn/go-isatty v0.0.12
- github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421
- github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742
- github.com/pmezard/go-difflib v1.0.0
- github.com/stretchr/objx v0.1.0
- github.com/stretchr/testify v1.3.0
- github.com/stretchr/testify v1.4.0
- github.com/ugorji/go v1.1.7
- github.com/ugorji/go/codec v1.1.7
- golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2
- golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9
- golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3
- golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a
- golang.org/x/sys v0.0.0-20190412213103-97732733099d
- golang.org/x/sys v0.0.0-20200116001909-b77594299b42
- golang.org/x/sys v0.0.0-20220412211240-33da011f77ad
- golang.org/x/text v0.3.0
- golang.org/x/text v0.3.2
- golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e
- gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405
- gopkg.in/yaml.v2 v2.2.2
- gopkg.in/yaml.v2 v2.2.8
- com.google.api-client:google-api-client 1.30.9
- com.google.apis:google-api-services-bigquery v2-rev20191211-1.30.9
- com.google.apis:google-api-services-pubsub v1-rev20200312-1.30.9
- com.google.http-client:google-http-client 1.34.0
- joda-time:joda-time 2.10.5
- junit:junit 4.13-beta-3
- org.apache.beam:beam-sdks-java-core 2.22.0
- org.apache.beam:beam-sdks-java-io-google-cloud-platform 2.22.0
- org.hamcrest:hamcrest-core 2.1
- org.hamcrest:hamcrest-library 2.1
- org.slf4j:slf4j-api 1.7.25
- org.slf4j:slf4j-jdk14 1.7.25
- org.apache.beam:beam-runners-direct-java 2.22.0 test
- org.mockito:mockito-core 3.0.0 test
- google-cloud-aiplatform *
- google-cloud-pipeline-components ==0.1.7
- google-cloud-storage *
- jupyterlab *
- nbconvert *
- us-docker.pkg.dev/vertex-ai/training/tf-gpu.2-6 latest build
- nvcr.io/nvidia/pytorch 22.08-py3 build
