Skip to main content

OSMO Inference Workflows

Run trained policy inference through NVIDIA OSMO workflows on GPU-accelerated Kubernetes clusters. OSMO supports Isaac Lab and LeRobot frameworks with configurable checkpoint sources and automated resource scheduling.

πŸ“‹ Prerequisites​

ToolVersionPurpose
OSMO CLILatestWorkflow submission and monitoring
Azure CLI2.65+Azure authentication
kubectl1.28+Cluster access
Helm3.14+Chart management

πŸš€ Quick Start​

Submit an Isaac Lab inference workflow:

osmo workflow submit \
--file workflows/osmo/infer.yaml \
--set checkpoint_uri=runs:/<run-id>/model \
--set task=Isaac-Cartpole-v0

βš–οΈ Workflow Comparison​

FeatureIsaac LabLeRobot
Config fileinfer.yamllerobot-eval.yaml
Checkpoint formatONNX, TorchScriptPyTorch (.pt)
Task specification--task (Isaac Gym env)--policy-type (model arch)
Video recording--video-length--record-video
Evaluation--num-envs, --max-steps--eval-episodes, --eval-batch-size

πŸ”¬ Isaac Lab Inference​

Checkpoint URI Formats​

FormatExampleUse Case
MLflow runruns:/<run-id>/modelDirect from training
MLflow modelmodels:/<name>/<version>Model registry
Azure Blobhttps://<account>.blob.core.windows.net/...External storage
HTTP(S)https://<url>/model.onnxPublic endpoints

Supported Model Formats​

FormatExtensionFrameworks
ONNX.onnxIsaac Lab
TorchScript.ptIsaac Lab, LeRobot
Both.onnx + .ptFull compatibility

Isaac Lab CLI Parameters​

ParameterRequiredDefaultDescription
-c, --checkpoint-uriYesβ€”Checkpoint location URI
--taskNofrom workflowIsaac Gym environment name
--formatNoonnxModel format
--num-envsNo1Parallel environments
--max-stepsNo1000Maximum simulation steps
--video-lengthNo200Video recording frames

Locating Checkpoints​

osmo workflow list
osmo workflow logs <workflow-id> | grep "checkpoint"

Configuration Resolution Order​

PrioritySourceExample
1 (highest)CLI arguments--set checkpoint_uri=...
2Environment variablesCHECKPOINT_URI=...
3 (lowest)Terraform outputsAuto-detected from state

Workflow Outputs​

ArtifactPathDescription
policy.onnxoutputs/Exported ONNX policy
policy.ptoutputs/TorchScript policy
Metrics JSONoutputs/metrics/Evaluation results
Videosoutputs/videos/Recorded episodes

πŸ€– LeRobot Inference​

LeRobot CLI Parameters​

ParameterRequiredDefaultDescription
--policy-repo-idOne of*β€”HuggingFace model repo
--policy-revisionCond.†—HuggingFace commit SHA pinning the policy repo
--builtin-policyOne of*β€”Mint a base policy from LeRobot's built-in arch
--policy-typeNoactPolicy architecture
--dataset-repo-idNoβ€”Evaluation dataset
--dataset-revisionCond.‑—HuggingFace commit SHA pinning the dataset repo
--eval-episodesNo10Number of evaluation episodes
--eval-batch-sizeNo1Batch size for evaluation
--record-videoNofalseEnable video recording

*Exactly one policy source is required: --policy-repo-id, --from-aml-model, or --builtin-policy. --builtin-policy mints a self-contained base policy from the local dataset and requires --from-blob-dataset.

†Required with --policy-repo-id: a Hub download without a pinned commit SHA resolves a mutable HEAD and is rejected. ‑Required with --dataset-repo-id, for the same reason.

Usage Examples​

Basic evaluation:

osmo workflow submit \
--file workflows/osmo/lerobot-eval.yaml \
--set policy_repo_id=<hf-repo-id> \
--set policy_revision=<commit-sha>

With video recording:

osmo workflow submit \
--file workflows/osmo/lerobot-eval.yaml \
--set policy_repo_id=<hf-repo-id> \
--set policy_revision=<commit-sha> \
--set record_video=true \
--set eval_episodes=20

Model registration:

osmo workflow submit \
--file workflows/osmo/lerobot-eval.yaml \
--set policy_repo_id=<hf-repo-id> \
--set policy_revision=<commit-sha> \
--set register_model=true

πŸ”‘ Credential Configuration​

osmo credential set hf_token <token>
osmo credential set hf_token <token>

πŸ“Ί Monitoring​

osmo workflow logs <workflow-id>
osmo workflow logs <workflow-id> --follow
osmo workflow status <workflow-id>

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