Skip to main content
PI0.5 YAM is the YAM-trained checkpoint used in the quickstart. For another robot, inspect the checkpoint contract before deployment: camera names, state width, and action width belong to the checkpoint and are not inferred from the robot name.

Checkpoint format for fine-tunes

Upload a complete checkpoint to a Hugging Face repository. Servo supports these PI0.5 layouts: Keep the normalization statistics from the same training run as the weights. The JAX openpi_config.json schema is available here. For a PyTorch checkpoint, select the training configuration explicitly when importing it; supported names are pi05_aloha, pi05_droid, pi05_libero, pi05_yam_red_cap_full, and yam_molmoact2_pi05_jax.

Inspect the input contract

Inspection reads checkpoint metadata and small config files, not model weights. The public YAM checkpoint declares image arrays named middle, left, and right, plus the 7-value state array. A fine-tune can use different names or dimensions, so use its inspection result as the source of truth:
inspect_checkpoint.py

Deploy

Deploy the pinned public checkpoint to a robot registered with your organization:
your computer

Import and deploy a fine-tune

Import a fine-tune at the same pinned revision you inspected, then deploy the returned model ID:
your computer
For an OpenPI PyTorch repository that contains more than one supported configuration, pass --openpi-config-name to servo model import so the importer knows which config describes the fine-tune. For example, use --openpi-config-name pi05_yam_red_cap_full when that is the training configuration. The checkpoint’s observation.images.* and state keys, array shapes, and dtypes are the keys to pass in Session.predict(inputs=...); the camera-to-key mapping is specific to how the robot’s cameras were named in training.

Send observations and receive actions

On the robot computer, use the deployment’s policy contract to build inputs with the exact keys, shapes, and dtypes. The quickstart shows the shared Session.predict flow; its sample prints the resolved contract before creating the arrays.