Skip to content

Commit 27afdbb

Browse files
authored
clearer explanation of the pipeline stages in the getting started guide (#247)
1 parent af2b772 commit 27afdbb

File tree

1 file changed

+20
-7
lines changed

1 file changed

+20
-7
lines changed

docs/getting_started.md

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -151,16 +151,29 @@ Also check the published training pipeline in the **mlops-AML-WS** workspace in
151151

152152
Great, you now have the build pipeline set up which automatically triggers every time there's a change in the master branch!
153153

154-
* The first stage of the pipeline, **Model CI**, does linting, unit testing, code coverage, building, and publishes an **ML Training Pipeline** in an **ML Workspace**.
154+
The pipeline stages are summarized below:
155155

156-
* The second stage of the pipeline, **Train model**, triggers the run of the Azure ML training pipeline. The training pipeline will train, evaluate, and register a new model. The actual computation happens on an [Azure Machine Learning Compute cluster](https://docs.microsoft.com/en-us/azure/machine-learning/service/how-to-set-up-training-targets#amlcompute). In Azure DevOps, the stage runs an agentless job that waits for the completion of the Azure ML job. This allows the pipeline to wait for training completion for hours or even days without using agent resources.
156+
#### Model CI
157157

158-
* **Note:** If the model evaluation determines that the new model doesn't perform any better than the previous one, the new model won't register and the pipeline will be **canceled**.
159-
* In this case, you'll see a message in the 'Train Model' job under the 'Determine if evaluation succeeded and new model is registered' step saying '**Model was not registered for this run.**'
160-
* See [evaluate_model.py](../diabetes_regression/evaluate/evaluate_model.py#L118) for the evaluation logic and [diabetes_regression_verify_train_pipeline.py](../ml_service/pipelines/diabetes_regression_verify_train_pipeline.py#L54) for the pipeline reporting logic.
161-
* [Additional Variables and Configuration](#additional-variables-and-configuration) for configuring this and other behavior.
158+
- Linting (code quality analysis)
159+
- Unit tests and code coverage analysis
160+
- Build and publish *ML Training Pipeline* in an *ML Workspace*
162161

163-
* The third stage of the pipeline, **Deploy to ACI**, deploys the model to the QA environment in [Azure Container Instances](https://azure.microsoft.com/en-us/services/container-instances/). After deployment, it runs a *smoke test* for validation. The test sends a sample query to the scoring web service and verifies that it returns the expected response. Have a look at the [smoke test code](../ml_service/util/smoke_test_scoring_service.py) for an example.
162+
#### Train model
163+
164+
- Determine the ID of the *ML Training Pipeline* published in the previous stage.
165+
- Trigger the *ML Training Pipeline* and waits for it to complete.
166+
- This is an **agentless** job. The CI pipeline can wait for ML pipeline completion for hours or even days without using agent resources.
167+
- Determine if a new model was registered by the *ML Training Pipeline*.
168+
- If the model evaluation determines that the new model doesn't perform any better than the previous one, the new model won't register and the *ML Training Pipeline* will be **canceled**. In this case, you'll see a message in the 'Train Model' job under the 'Determine if evaluation succeeded and new model is registered' step saying '**Model was not registered for this run.**'
169+
- See [evaluate_model.py](../diabetes_regression/evaluate/evaluate_model.py#L118) for the evaluation logic and [diabetes_regression_verify_train_pipeline.py](../ml_service/pipelines/diabetes_regression_verify_train_pipeline.py#L54) for the ML pipeline reporting logic.
170+
- [Additional Variables and Configuration](#additional-variables-and-configuration) for configuring this and other behavior.
171+
172+
#### Deploy to ACI
173+
174+
- Deploy the model to the QA environment in [Azure Container Instances](https://azure.microsoft.com/en-us/services/container-instances/).
175+
- Smoke test
176+
- The test sends a sample query to the scoring web service and verifies that it returns the expected response. Have a look at the [smoke test code](../ml_service/util/smoke_test_scoring_service.py) for an example.
164177

165178
The pipeline uses a Docker container on the Azure Pipelines agents to accomplish the pipeline steps. The container image ***mcr.microsoft.com/mlops/python:latest*** is built with [this Dockerfile](../environment_setup/Dockerfile) and has all the necessary dependencies installed for MLOpsPython and ***diabetes_regression***. This image is an example of a custom Docker image with a pre-baked environment. The environment is guaranteed to be the same on any building agent, VM, or local machine. In your project, you'll want to build your own Docker image that only contains the dependencies and tools required for your use case. Your image will probably be smaller and faster, and it will be maintained by your team.
166179

0 commit comments

Comments
 (0)