Skip to main content

Experiment Tracking

Experiment tracking for Isaac Lab and LeRobot training workflows. Azure ML provides managed MLflow tracking on both platforms (Azure ML directly, OSMO via the Azure ML backend).

📊 MLflow Tracking​

Azure ML manages MLflow as the default experiment tracking backend. Isaac Lab training with SKRL logs metrics automatically through monkey-patching.

Isaac Lab (Automatic)​

With MLflow configured, SKRL training logs the metrics exposed by the selected agent, including available episode rewards, training losses, optimization stats, and timing data. Metric availability varies by algorithm and run.

Configure logging frequency through the launcher in a configured Isaac Lab runtime, from the repository root:

bash training/rl/scripts/train.sh \
--task Isaac-Cartpole-v0 \
--headless \
--mlflow_log_interval balanced

The direct training argument is --mlflow_log_interval, not a submission-script flag:

IntervalBehaviorUse Case
stepLog every training stepDebugging
balancedLog every 10 steps (default)Standard training
rolloutLog once per rollout cycleLong runs
IntegerCustom step intervalTuned granularity

See MLflow Integration for SKRL metric categories, filtering, and troubleshooting.

LeRobot​

MLflow is enabled automatically for LeRobot training on both OSMO and Azure ML. Submit an OSMO training job:

training/il/scripts/submit-osmo-lerobot-training.sh \
-d user/dataset

MLflow Configuration​

ParameterDefaultDescriptionSource
--mlflow-token-retries3MLflow token refresh retry countMLFLOW_TRACKING_TOKEN_REFRESH_RETRIES
--mlflow-http-timeout60MLflow HTTP request timeout (sec)MLFLOW_HTTP_REQUEST_TIMEOUT

Model Registration​

Isaac Lab RL submitters enable checkpoint registration by default. LeRobot registration is opt-in through the applicable training, evaluation, or pipeline submitter; the flags are not interchangeable across families.

Registration Parameters​

ParameterDefaultDescription
--register-checkpointDerived from task (RL); none (LeRobot)RL and LeRobot training submitters: registration name
--skip-register-checkpointfalseRL submitters: skip registration
--register-model(none)LeRobot evaluation submitters: registration name
--with-register + --register-model-nameDisabledAzureML LeRobot pipeline: enable registration step and name

Registration Examples​

# Isaac Lab: custom model name
training/rl/scripts/submit-azureml-training.sh \
--register-checkpoint my-anymal-model

# Isaac Lab: skip registration
training/rl/scripts/submit-osmo-training.sh \
--skip-register-checkpoint

# LeRobot: register after evaluation
evaluation/sil/scripts/submit-osmo-lerobot-eval.sh \
--policy-repo-id user/trained-policy \
--policy-revision "<policy-commit-sha>" \
--dataset-repo-id user/evaluation-dataset \
--dataset-revision "<dataset-commit-sha>" \
-r my-evaluated-model

Retrieve Registered Models​

# Download from Azure ML
az ml model download \
--name anymal-c-velocity --version 1 \
--download-path ./checkpoint

# Download from HuggingFace Hub
huggingface-cli download user/trained-policy --local-dir ./checkpoint

🔄 Checkpoint Workflows​

Isaac Lab RL training supports three checkpoint initialization modes:

ModeWeightsOptimizerCountersUse Case
from-scratchRandomFreshResetInitial training
warm-startLoadedFreshResetTransfer learning
resumeLoadedLoadedLoadedContinue interrupted training
# Resume training from MLflow artifact
training/rl/scripts/submit-azureml-training.sh \
--checkpoint-uri "runs:/abc123/checkpoint" \
--checkpoint-mode resume

# Warm-start from registered model
training/rl/scripts/submit-osmo-training.sh \
--checkpoint-uri "models:/anymal-c-velocity/1" \
--checkpoint-mode warm-start

🤖 Crafted with precision by ✨Copilot following brilliant human instruction, then carefully refined by our team of discerning human reviewers.