The recommended production path. This is the tier where cloud training genuinely becomes the default rather than an option: one site, several robots, real training scale, and a team collaborating. You add an AzureML workspace, a model registry, and shared MLflow on top of the T1 storage account, and still run no Kubernetes, no Arc, and no fleet control plane.
Note
T2 is the recommended starting point for teams who have outgrown a single GPU box. The full training lifecycle is still
achievable here with manual deployment. Robots are hand-updated with docker pull. For
canonical tier definitions, see the tier model and the
architecture tier detail.
| Concern | What you need |
|---|---|
| Hardware | One site, several robots, a collaborating team. |
| Edge infra | None beyond Docker. No Kubernetes, no Arc, no Flux, no fleet plane. |
| Cloud infra | AzureML workspace + Blob storage + model registry + MLflow. ACSA optional. |
| Tooling | Azure CLI (az login), deployed infrastructure (Terraform), optionally OSMO. |
| Tracking | Managed MLflow on AzureML (hosted), with model versioning load-bearing. |
The delta from T1 is that cloud GPU training, a model registry, and a hosted catalog become the default, not an occasional reach.
Provision the AzureML workspace, storage, and registry. Follow the Getting Started hub and the Quickstart for the clone-to-first-job path. This recipe assumes that infrastructure is deployed rather than duplicating its steps; for the infrastructure reference see Infrastructure.
Land and validate datasets in Blob as at T1 — Lab, following Preparing Datasets for Training and the Blob storage structure.
Submit a LeRobot behavioral-cloning job to AzureML or OSMO: multi-GPU, queued jobs, multiple people, VLA scale. Use the existing recipes rather than re-deriving the commands here:
- Your First LeRobot Training Job: submit a single cloud training job.
- End-to-End LeRobot Pipeline: run train → evaluate → register in one command.
- Your First RL Training Job: Isaac Lab RL on OSMO.
Reference docs: AzureML training, OSMO training, LeRobot training.
Managed MLflow on AzureML is the default tracking backend, and the model registry becomes load-bearing. Trained checkpoints are registered and versioned automatically at job completion. See Experiment tracking and MLflow integration.
The dataviewer is deployed as a shared web app rather than localhost, so the whole team browses and annotates the same catalogs.
Validate registered models directly from the registry. The local entry point
(run-local-lerobot-eval.py) accepts --model-name / --model-version to pull a registered model,
and Evaluation covers the cloud and batch evaluation paths.
Deployment is still manual: hand-update a handful of reachable robots with docker pull. This stays
tractable at one site with several robots. Declarative GitOps deployment is the
T3 — Production concern.
- The number of robots or the update cadence makes hand-updating each robot error-prone, and version skew across robots becomes a real problem, while all robots are still at one reachable site: T3 — Production.