A9 - SDK, CLI & YAML

Code: ./src
Command: python train.py --data <input>
Data: detector-data:v5
Environment: sklearn-env:v3
Compute: cpu-cluster

python SDK

from azure.ai.ml import MLClient, command, Input

# Construct job definition
job = command(
    code="./src",
    command="python train.py --data ${{inputs.data}}",
    inputs={
        "data": Input(
            type="uri_folder",
            path="azureml:detector-data:5"
        )
    },
    environment="azureml:sklearn-env:3",
    compute="cpu-cluster"
)

# Programmatic clinent to interact with the wokspace
returned_job = ml_client.jobs.create_or_update(job)

YAML

$schema: <command-job-schema>

type: command

code: ./src

command: >
  python train.py
  --data ${{inputs.data}}

inputs:
  data:
    type: uri_folder
    path: azureml:detector-data:5

environment: azureml:sklearn-env:3
compute: azureml:cpu-cluster

Studio

asset references

/subscriptions/<id>/
resourceGroups/<rg>/
providers/Microsoft.MachineLearningServices/
workspaces/<workspace>
ml_client.jobs
ml_client.data
ml_client.environments
ml_client.models
ml_client.compute
...
az ml job ...
az ml data ...
az ml environment ...
az ml compute ...
az ml model ...
job = command(
    code="./src",
    environment="azureml:env:3",
    compute="cpu-cluster"
)
type: command
code: ./src
environment: azureml:env:3
compute: azureml:cpu-cluster
Git repository
├── src/
│   └── train.py
├── jobs/
│   └── train.yml
├── environments/
│   └── environment.yml
├── infra/
│   └── main.bicep
└── .github/
    └── workflows/
        └── train.yml
Dev > git push > Actions > authenticate via workload ID > Azure CLI > az ml job create --file ... > Azure ML > training job
infrastructure > ML assets/config > ML workloads