Skip to main content

Script Examples

Detailed submission examples for training, inference, and pipeline workflows on OSMO and Azure ML platforms.

NOTE

For CLI argument reference and script inventory, see Script Reference.

OSMO Dataset Training​

The training/rl/scripts/submit-osmo-dataset-training.sh script uploads training/rl/ as a versioned OSMO dataset and enables dataset reuse across runs. Run the examples from the repository root.

Dataset Submission Example​

# Default dataset configuration
./training/rl/scripts/submit-osmo-dataset-training.sh --task Isaac-Velocity-Rough-Anymal-C-v0

# Custom dataset bucket and name
./training/rl/scripts/submit-osmo-dataset-training.sh \
--dataset-bucket custom-bucket \
--dataset-name my-training-v1 \
--task Isaac-Velocity-Rough-Anymal-C-v0

# With checkpoint resume
./training/rl/scripts/submit-osmo-dataset-training.sh \
--task Isaac-Velocity-Rough-Anymal-C-v0 \
--checkpoint-uri "runs:/abc123/checkpoint" \
--checkpoint-mode resume

Dataset Parameters​

ParameterDefaultDescription
--dataset-buckettrainingOSMO bucket for training code
--dataset-nametraining-codeDataset name (auto-versioned)
--training-pathtraining/rlLocal folder to upload

The script stages files to exclude __pycache__ and build artifacts via .amlignore patterns before upload.

LeRobot Behavioral Cloning​

The training/il/scripts/submit-osmo-lerobot-training.sh script submits LeRobot training workflows supporting ACT and Diffusion policy architectures. It trains from HuggingFace Hub datasets or Azure Blob datasets. The dependency contract is training/il/pyproject.toml with its committed training/il/uv.lock; runtime installation must preserve the project's configured package sources.

LeRobot Submission Examples​

# ACT policy with default MLflow tracking
./training/il/scripts/submit-osmo-lerobot-training.sh -d user/my-dataset

# Diffusion policy with Azure MLflow
./training/il/scripts/submit-osmo-lerobot-training.sh \
-d user/my-dataset \
-p diffusion \
-r my-model-name

# Train from Azure Blob Storage
./training/il/scripts/submit-osmo-lerobot-training.sh \
--blob-url https://account.blob.core.windows.net/datasets/pusht \
-r pusht-model

# Fine-tune from pre-trained policy
./training/il/scripts/submit-osmo-lerobot-training.sh \
-d user/my-dataset \
--policy-repo-id user/pretrained-act \
--training-steps 50000 \
--batch-size 16

LeRobot Parameters​

ParameterDefaultDescription
--dataset-repo-idRequired for HuggingFace; dataset for Blob sourcesHuggingFace dataset repository ID or logical local dataset name
--blob-url(none)Direct Azure Blob dataset URL; repeatable
--policy-typeactPolicy: act, diffusion
--job-namelerobot-act-trainingJob identifier
--policy-repo-id(none)Pre-trained policy for fine-tuning
--training-steps100000Total training iterations
--batch-size32Training batch size
--learning-rate1e-4Optimizer learning rate
--save-freq5000Checkpoint save frequency

LeRobot Inference​

The evaluation/sil/scripts/submit-osmo-lerobot-eval.sh script evaluates trained LeRobot policies and optionally registers the model to Azure ML. Hub replay evaluation requires both a policy and a dataset, each with an immutable commit revision. Replace the quoted revision placeholders before submission.

LeRobot Inference Examples​

# Evaluate a trained policy
./evaluation/sil/scripts/submit-osmo-lerobot-eval.sh \
--policy-repo-id user/trained-act-policy \
--policy-revision "<policy-commit-sha>" \
--dataset-repo-id user/evaluation-dataset \
--dataset-revision "<dataset-commit-sha>"

# Evaluate with model registration
./evaluation/sil/scripts/submit-osmo-lerobot-eval.sh \
--policy-repo-id user/trained-act-policy \
--policy-revision "<policy-commit-sha>" \
--dataset-repo-id user/evaluation-dataset \
--dataset-revision "<dataset-commit-sha>" \
-r my-evaluated-model

# Diffusion policy evaluation
./evaluation/sil/scripts/submit-osmo-lerobot-eval.sh \
--policy-repo-id user/trained-diffusion \
--policy-revision "<policy-commit-sha>" \
--dataset-repo-id user/evaluation-dataset \
--dataset-revision "<dataset-commit-sha>" \
-p diffusion \
--eval-episodes 50

Inference Parameters​

ParameterDefaultDescription
--policy-repo-id(required)HuggingFace policy repository
--policy-typeactPolicy: act, diffusion
--eval-episodes10Number of evaluation episodes
--register-model(none)Model name for Azure ML registration
--dataset-repo-id(required for Hub)Dataset for environment replay
--policy-revision(required for Hub)Immutable policy commit SHA
--dataset-revision(required for Hub)Immutable dataset commit SHA

AzureML LeRobot Training​

The training/il/scripts/submit-azureml-lerobot-training.sh script submits LeRobot training directly to Azure ML instead of OSMO. It registers an environment and submits via az ml job create. Runtime dependencies follow training/il/pyproject.toml and its committed uv.lock, not a separate lerobot/ subproject.

AzureML LeRobot Examples​

# ACT policy training
./training/il/scripts/submit-azureml-lerobot-training.sh -d user/my-dataset

# With model registration and log streaming
./training/il/scripts/submit-azureml-lerobot-training.sh \
-d user/my-dataset \
-r my-act-model \
--stream

# Custom compute with the checked-in digest-pinned image default
./training/il/scripts/submit-azureml-lerobot-training.sh \
-d user/my-dataset \
--compute my-gpu-cluster

End-to-End Pipeline​

The training/pipelines/run-lerobot-pipeline.sh wrapper is intended to orchestrate training, polling, evaluation, and registration on OSMO. Its evaluation stage still calls the missing scripts/submit-osmo-lerobot-inference.sh; it is not a working end-to-end path. Submit training and evaluation with the individual scripts above until the wrapper is repaired.

Pipeline Stages​

StageActionScript Used
1Submit training workflowtraining/il/scripts/submit-osmo-lerobot-training.sh
2Poll workflow status until completionosmo workflow query
3Blocked: internal target missingscripts/submit-osmo-lerobot-inference.sh

Pipeline Examples​

# Async mode (submit training and exit)
./training/pipelines/run-lerobot-pipeline.sh \
-d user/my-dataset \
--skip-wait

# Skip inference (training only with polling)
./training/pipelines/run-lerobot-pipeline.sh \
-d user/my-dataset \
--skip-inference

Pipeline Parameters​

ParameterDefaultDescription
--dataset-repo-id(required)HuggingFace dataset repository
--policy-repo-id(required*)HuggingFace policy target repo
--policy-typeactPolicy: act, diffusion
--register-model(none)Azure ML model registration name
--poll-interval60Status check interval (seconds)
--timeout720Training timeout (minutes)
--skip-waitdisabledAsync mode: submit and exit
--skip-inferencedisabledSkip inference stage

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