52 lines
2.0 KiB
Python
52 lines
2.0 KiB
Python
import kfp
|
|
from kfp import components
|
|
from kfp import dsl
|
|
import ai_pipeline_params as params
|
|
|
|
# generate default secret name
|
|
secret_name = 'kfp-creds'
|
|
|
|
configuration_op = components.load_component_from_url('https://raw.githubusercontent.com/kubeflow/pipelines/eb830cd73ca148e5a1a6485a9374c2dc068314bc/components/ibm-components/commons/config/component.yaml')
|
|
train_op = components.load_component_from_url('https://raw.githubusercontent.com/kubeflow/pipelines/eb830cd73ca148e5a1a6485a9374c2dc068314bc/components/ibm-components/ffdl/train/component.yaml')
|
|
serve_op = components.load_component_from_url('https://raw.githubusercontent.com/kubeflow/pipelines/eb830cd73ca148e5a1a6485a9374c2dc068314bc/components/ibm-components/ffdl/serve/component.yaml')
|
|
|
|
# create pipeline
|
|
@dsl.pipeline(
|
|
name='FfDL pipeline',
|
|
description='A pipeline for machine learning workflow using Fabric for Deep Learning and Seldon.'
|
|
)
|
|
|
|
def ffdlPipeline(
|
|
GITHUB_TOKEN='',
|
|
CONFIG_FILE_URL='https://raw.githubusercontent.com/user/repository/branch/creds.ini',
|
|
model_def_file_path='gender-classification.zip',
|
|
manifest_file_path='manifest.yml',
|
|
model_deployment_name='gender-classifier',
|
|
model_class_name='ThreeLayerCNN',
|
|
model_class_file='gender_classification.py'
|
|
):
|
|
"""A pipeline for end to end machine learning workflow."""
|
|
|
|
create_secrets = configuration_op(
|
|
token = GITHUB_TOKEN,
|
|
url = CONFIG_FILE_URL,
|
|
name = secret_name
|
|
)
|
|
|
|
train = train_op(
|
|
model_def_file_path,
|
|
manifest_file_path
|
|
).apply(params.use_ai_pipeline_params(secret_name))
|
|
|
|
serve = serve_op(
|
|
train.output,
|
|
model_deployment_name,
|
|
model_class_name,
|
|
model_class_file
|
|
).apply(params.use_ai_pipeline_params(secret_name))
|
|
|
|
|
|
if __name__ == '__main__':
|
|
import kfp.compiler as compiler
|
|
compiler.Compiler().compile(ffdlPipeline, __file__ + '.tar.gz')
|