forked from Azure/azureml-examples
-
Notifications
You must be signed in to change notification settings - Fork 0
/
pipeline.yml
79 lines (72 loc) · 2.32 KB
/
pipeline.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
$schema: https://azuremlschemas.azureedge.net/latest/pipelineJob.schema.json
type: pipeline
description: Pipeline using AutoML Forecasting task
display_name: pipeline-with-forecasting
experiment_name: pipeline-with-automl
settings:
default_compute: azureml:cpu-cluster
inputs:
forecasting_training_data:
type: mltable
path: training-mltable-folder
forecasting_validation_data:
type: mltable
path: validation-mltable-folder
outputs:
inference_output:
mode: upload
jobs:
preprocessing_node:
type: command
component: file:./components/component_preprocessing.yaml
inputs:
train_data: ${{parent.inputs.forecasting_training_data}}
validation_data: ${{parent.inputs.forecasting_validation_data}}
outputs:
preprocessed_train_data:
type: mltable
preprocessed_validation_data:
type: mltable
forecasting_node:
type: automl
task: forecasting
log_verbosity: info
primary_metric: normalized_mean_absolute_error
limits:
max_trials: 1
enable_early_termination: true
target_column_name: demand
training_data: ${{parent.jobs.preprocessing_node.outputs.preprocessed_train_data}}
validation_data: ${{parent.jobs.preprocessing_node.outputs.preprocessed_validation_data}}
training:
enable_stack_ensemble: false
enable_vote_ensemble: false
forecasting:
time_column_name: "timeStamp"
forecast_horizon: 48
frequency: "H"
target_lags: [ 12 ]
target_rolling_window_size: 4
# currently need to specify outputs "mlflow_model" explicitly to reference it in following nodes
outputs:
best_model:
type: mlflow_model
register_model_node:
type: command
component: file:./components/component_register_model.yaml
inputs:
model_input_path: ${{parent.jobs.forecasting_node.outputs.best_model}}
model_base_name: energy_demand_model
# This is an optional step for data inference.
infer_model_node:
type: command
component: file:./components/component_infer.yaml
inputs:
test_data:
type: uri_folder
path: ./test-data/
model_path: ${{parent.jobs.forecasting_node.outputs.best_model}}
ouput_dataset_name: energy_demand_infer
target_column_name: demand
outputs:
output_path: ${{parent.outputs.inference_output}}