Documentation Index

Fetch the complete documentation index at: https://azure-cost-management-playbook.turbo360.com/llms.txt

Use this file to discover all available pages before exploring further.

Azure Machine Learning

Prev Next

What it does

A full MLOps platform for the end-to-end lifecycle of custom machine learning models:

  • Training and fine-tuning — run experiment jobs on managed GPU/CPU clusters, serverless compute, or attached Kubernetes clusters. Supports PyTorch, TensorFlow, scikit-learn, Hugging Face, and more.

  • Experiment tracking — logs metrics, parameters, and artefacts for every run; compare runs in the studio UI.

  • Model registry — version and govern trained models with lineage back to the training data and code that produced them.

  • Managed online endpoints — deploy models as scalable, low-latency REST endpoints with autoscaling and blue/green deployment support.

  • Batch endpoints — trigger high-throughput asynchronous scoring jobs over large datasets.

  • Pipelines — author and schedule multi-step ML workflows (data prep → training → evaluation → registration → deployment).

  • Feature store — centralise feature engineering logic for reuse across models and teams.

  • Responsible AI dashboard — model explainability, fairness, error analysis, and causal analysis tools built into the platform.

When you'd use it

  • You need to train or fine-tune a model on your own data rather than consuming a pre-built foundation model.

  • You are running large-scale batch inference over millions of records.

  • You need reproducible, auditable ML pipelines with lineage tracking for regulatory or compliance reasons.

  • You want to host open-source models (Hugging Face, LLaMA, Mistral) on infrastructure you control, with autoscaling.

  • You are operationalising ML at scale and need a model registry, deployment approvals, and monitoring in one platform.

Sample use case

A retail bank trains a custom credit-risk scoring model on five years of transactional data. Azure ML manages the training pipeline: data is loaded from Azure Data Lake, feature engineering runs as a pipeline step, a gradient-boosted model is trained on a GPU cluster, evaluated against a holdout set, and registered in the model registry with full lineage. The approved model is then deployed to a managed online endpoint called in real time by the loan origination system.

Example reference architecture

Pricing & How Costs Work

Azure ML is primarily a compute-consumption service. The platform management layer (workspace, pipelines, registry) has no direct charge; costs come from the compute and storage resources it uses.

Compute — the dominant cost

Compute type

Billing model

Notes

Compute clusters (training jobs)

Per VM-hour per node

Billed only while nodes are running; cluster scales to zero between jobs if configured

Serverless compute (training)

Per VM-hour

Fully managed; no cluster provisioning; scales to zero automatically

Managed online endpoints

Per VM-hour per instance

Always-on; billed 24×7 while the deployment exists, regardless of traffic

Batch endpoints

Per VM-hour

Billed only during job execution; scales to zero when job completes

Compute instances (dev/notebook VMs)

Per VM-hour

Billed while the instance is running; must be stopped manually or via schedule

VM pricing follows standard Azure VM rates — the instance SKU (e.g. Standard_DS3_v2, Standard_NC24ads_A100_v4) determines the hourly rate. GPU VMs are significantly more expensive than CPU VMs.

Storage

Resource

Billing model

Default Azure Storage Account (workspace artefacts, logs, outputs)

Per GB stored + transaction costs

Azure Container Registry (model images)

Per GB stored + build minutes

Additional services provisioned by the workspace

Resource

Billing model

Azure Key Vault

Per 10,000 operations

Application Insights (metrics and logs)

Per GB ingested

Key pricing mechanics:

  • Compute clusters scale to zero when idle (if min_instances = 0) — they only bill during active job runs. This is the primary cost-control mechanism for training workloads.

  • Compute instances do not scale to zero automatically — a notebook VM left running overnight bills continuously. Auto-shutdown schedules are critical.

  • Managed online endpoints bill continuously for every deployed instance. High availability (multiple instances, multiple deployments) multiplies cost directly.

  • Spot/low-priority VMs are available for training jobs at up to 80% discount vs standard priority, with the risk of preemption. Not suitable for production endpoints.

  • Reserved VM pricing (1-year or 3-year) reduces compute costs for long-running or predictable workloads like always-on online endpoints.

What Drives Costs

Cost driver

Why it matters

Online endpoint instance hours

Always-on compute is the largest steady-state cost. Each deployment instance bills 24×7.

GPU VM selection for training

A100/H100 GPU VMs cost orders of magnitude more per hour than CPU VMs. Over-provisioning GPU for tasks that don't need it wastes significant budget.

Training job duration

Longer training runs on larger clusters accumulate cost quickly. Poorly optimised training code or oversized datasets inflate this.

Compute instance idle time

Developer notebook VMs left running between sessions are a common source of avoidable cost.

Replica count on online endpoints

Each additional replica for availability or throughput multiplies the endpoint's hourly cost.

Experiment run volume

Hyperparameter sweep jobs spin up many parallel training runs; each run is billed independently.

Storage growth

Training outputs, model checkpoints, and pipeline logs accumulate. Large artefact stores can create significant ongoing storage cost.

Cost optimisation levers:

  • Set min_instances = 0 on compute clusters so they scale to zero between jobs.

  • Configure auto-shutdown on compute instances — set a 30–60 minute idle timeout for developer VMs.

  • Use spot/low-priority VMs for training and evaluation jobs that can tolerate preemption.

  • Delete unused online endpoint deployments — each deployment accrues cost even with zero traffic.

  • Right-size online endpoint instances: profile actual memory and CPU usage before choosing the VM SKU.

  • Use batch endpoints instead of online endpoints for asynchronous, non-latency-sensitive scoring.

  • Apply Azure Reserved VM Instances to always-on endpoint infrastructure to reduce hourly rates.

  • Implement storage lifecycle policies to archive or delete old experiment outputs and model checkpoints.

  • Use hyperparameter sweep budgets (max_total_trials) to cap the number of child runs in sweep jobs.

Azure Cost Data — Meters & Meter Subcategories

Azure ML appears under the Machine Learning service family in Cost Management. Resource type: Microsoft.MachineLearningServices/workspaces.

Meter name

Meter subcategory

What it counts

VM SKU name (e.g. D Series, NC Series)

Compute Cluster / Compute Instance / Managed Online Endpoint

VM-hours consumed by that compute type and SKU

Dedicated vCPUs

Compute Cluster

vCPU-hours for dedicated priority compute

Low Priority vCPUs

Compute Cluster

vCPU-hours for spot/low-priority compute (cheaper rate)

Storage

Standard LRS / GRS

GB stored in the workspace default storage account

Container Registry

Basic / Standard

GB stored + image build minutes

Meter subcategory notes:

  • The meter subcategory identifies the compute type: Compute Cluster, Compute Instance, Managed Online Endpoint, or Batch — this is the primary way to split training costs from inference costs in billing exports.

  • VM SKU names appear directly in the MeterName field (e.g. Standard NC6s v3), making it possible to see cost by VM type without additional configuration.

  • Compute cluster meters only accrue during job execution (assuming min_instances = 0). In billing exports, this appears as a non-continuous cost pattern — spikes during training periods, zero otherwise. Online endpoint meters are continuous.

  • Spot/low-priority compute appears on a separate meter with Low Priority in the subcategory, carrying a lower rate. This is useful for validating that sweep jobs are using spot pricing as intended.

  • The Azure ML workspace itself (Microsoft.MachineLearningServices/workspaces) does not generate a billable meter — only the compute and storage resources it uses do.

  • Use resource tags on the workspace (e.g. team=data-science, project=credit-risk) and ensure they are inherited by compute clusters and endpoints to enable cost attribution in Cost Management.


Common Developer Mistakes That Drive Up Costs

  • Not setting min_instances = 0 on compute clusters. If the minimum node count is left at 1 or more, the cluster runs continuously even between jobs. A single idle Standard_DS3_v2 node running around the clock adds up quickly — and teams often forget to check this on clusters created during initial setup.

  • Forgetting to stop compute instances (notebook VMs). Developer VMs do not auto-shut down by default. An active compute instance left running after end of day bills the full VM rate overnight and across weekends. This is the most frequent source of avoidable ML cost in practice.

  • Over-provisioning GPU VMs for training. Teams default to A100 or V100 VMs for model training without profiling whether the workload is actually GPU-bound. Many training jobs run on data preprocessing or Python overhead, not GPU operations, making a fraction of the GPU time actually useful.

  • Running hyperparameter sweeps without a trial budget. A sweep job with no max_total_trials cap can spin up dozens or hundreds of parallel child runs, each on a full VM. Without a budget, a careless sweep configuration can exhaust a month's compute budget in hours.

  • Online endpoints with unnecessary replicas. Teams add replicas for availability without checking actual query-per-second requirements. Each replica is a full VM instance billing 24×7. An endpoint serving 10 requests/minute does not need 3 replicas.

  • Using dedicated priority for training jobs that could use spot. Spot (low-priority) VMs are available at up to 80% discount for training workloads. Teams often default to dedicated priority out of habit, paying full price for jobs that could tolerate occasional preemption.

  • Accumulating unused model artefacts and training outputs. Each training run writes model checkpoints, outputs, and logs to the default Storage account. Without lifecycle management, storage costs grow linearly with training history and are often overlooked.


What Could Make Your Bill Go Up or Down Next Month

Could go UP:

  • A new training campaign (e.g. model retraining on fresh data) adds significant GPU-cluster hours that didn't exist last month.

  • A developer left a compute instance (notebook VM) running over a long weekend.

  • A hyperparameter sweep was run without a trial cap, spawning many more child runs than expected.

  • An online endpoint was scaled from 1 to 3 instances for a load test and not scaled back down.

  • A new team member creates their own compute cluster with min_instances > 0 without realising the cost implication.

  • A model experiment uses a larger GPU SKU than the previous month's equivalent job.

Could go DOWN:

  • Auto-shutdown is configured on all compute instances (e.g. 30-minute idle timeout).

  • Training jobs are migrated from dedicated to low-priority (spot) VMs.

  • An online endpoint is scaled from 2 instances to 1 after profiling shows peak load is well within a single instance's capacity.

  • Old training outputs and model checkpoints are deleted or archived to cold storage via a lifecycle policy.

  • A batch endpoint replaces an online endpoint for an asynchronous scoring workload, eliminating 24×7 compute cost.

  • Serverless compute is adopted for ad-hoc training jobs, removing the need for persistent cluster provisioning.


Most Common Optimisation Techniques

Technique

Mechanism

Typical saving

Set min_instances = 0 on all compute clusters

Cluster scales to zero between jobs; only bills during active runs

Eliminates idle cluster cost entirely

Configure auto-shutdown on compute instances

Set 30–60 minute idle timeout on all notebook VMs

Eliminates overnight/weekend idle VM cost

Use spot (low-priority) VMs for training

Up to 80% discount vs dedicated priority; suitable for preemption-tolerant training jobs

Up to 80% reduction on training compute cost

Set max_total_trials on sweep jobs

Caps the number of child runs in a hyperparameter sweep

Prevents runaway sweep costs

Right-size online endpoint instances

Profile actual CPU/memory/RPS under load before choosing SKU and replica count

30–60% reduction on over-provisioned endpoints

Use batch endpoints for non-latency-sensitive scoring

Batch runs on demand; zero cost when idle

Eliminates 24×7 always-on compute for async workloads

Apply Reserved VM Instances to always-on endpoints

1-year or 3-year reservation at lower hourly rate

30–40% reduction on predictable always-on endpoint cost

Implement storage lifecycle policies

Auto-archive or delete old experiment outputs, checkpoints, and logs after N days

Reduces Storage cost as training history accumulates