Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions code/evaluate/evaluate_model.py
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,10 @@
model_name = args.model_name
metric_eval = "mse"
run.tag("BuildId", value=build_id)
builduri_base = os.environ.get("BUILDURI_BASE")
if (builduri_base is not None):
build_uri = builduri_base + build_id
run.tag("BuildUri", value=build_uri)

# Paramaterize the matrices on which the models should be compared
# Add golden data set on which all the model performance can be evaluated
Expand Down
16 changes: 14 additions & 2 deletions code/register/register_model.py
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,11 @@ def main():
register_aml_model(model_name, exp, run_id)
else:
run.tag("BuildId", value=build_id)
register_aml_model(model_name, exp, run_id, build_id)
builduri_base = os.environ.get("BUILDURI_BASE")
if (builduri_base is not None):
build_uri = builduri_base + build_id
run.tag("BuildUri", value=build_uri)
register_aml_model(model_name, exp, run_id, build_id, build_uri)


def model_already_registered(model_name, exp, run_id):
Expand All @@ -102,14 +106,22 @@ def model_already_registered(model_name, exp, run_id):
print("Model is not registered for this run.")


def register_aml_model(model_name, exp, run_id, build_id: str = 'none'):
def register_aml_model(
model_name,
exp,
run_id,
build_id: str = 'none',
build_uri=None
):
try:
if (build_id != 'none'):
model_already_registered(model_name, exp, run_id)
run = Run(experiment=exp, run_id=run_id)
tagsValue = {"area": "diabetes", "type": "regression",
"BuildId": build_id, "run_id": run_id,
"experiment_name": exp.name}
if (build_uri is not None):
tagsValue["BuildUri"] = build_uri
else:
run = Run(experiment=exp, run_id=run_id)
if (run is not None):
Expand Down
7 changes: 7 additions & 0 deletions code/training/train.py
Original file line number Diff line number Diff line change
Expand Up @@ -101,9 +101,16 @@ def main():
print("Following files are uploaded ")
print(run.parent.get_file_names())

run.parent.tag("BuildId", value=build_id)

# Add properties to identify this specific training run
run.tag("BuildId", value=build_id)
run.tag("run_type", value="train")
builduri_base = os.environ.get("BUILDURI_BASE")
if (builduri_base is not None):
build_uri = builduri_base + build_id
run.tag("BuildUri", value=build_uri)
run.parent.tag("BuildUri", value=build_uri)
print(f"tags now present for run: {run.tags}")

run.complete()
Expand Down
7 changes: 7 additions & 0 deletions ml_service/pipelines/build_train_pipeline.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,13 @@ def main():
)
run_config.environment.docker.enabled = True

config_envvar = {}
if (e.collection_uri is not None and e.teamproject_name is not None):
builduri_base = e.collection_uri + e.teamproject_name
builduri_base = builduri_base + "/_build/results?buildId="
config_envvar["BUILDURI_BASE"] = builduri_base
run_config.environment.environment_variables = config_envvar

model_name_param = PipelineParameter(
name="model_name", default_value=e.model_name)
build_id_param = PipelineParameter(
Expand Down
10 changes: 10 additions & 0 deletions ml_service/util/env_variables.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,8 @@ def __init__(self):
self._model_path = os.environ.get('MODEL_PATH')
self._db_cluster_id = os.environ.get("DB_CLUSTER_ID")
self._score_script = os.environ.get("SCORE_SCRIPT")
self._collection_uri = os.environ.get("SYSTEM_COLLECTIONURI")
self._teamproject_name = os.environ.get("SYSTEM_TEAMPROJECT")

@property
def workspace_name(self):
Expand Down Expand Up @@ -135,3 +137,11 @@ def model_path(self):
@property
def score_script(self):
return self._score_script

@property
def collection_uri(self):
return self._collection_uri

@property
def teamproject_name(self):
return self._teamproject_name