Embodiment Configuration#
This section covers configuration parameters specific to embodied RL training (robot manipulation, simulators, VLA models). These extend the shared configuration described in Basic Configuration.
defaults#
defaults:
- env/maniskill_put_on_plate_in_scene_25_main@env.train
- env/maniskill_ood_template@env.eval
- model/openvla_oft@actor.model
- training_backend/fsdp@actor.fsdp_config
- weight_syncer/patch_syncer@weight_syncer
defaults: Hydra configuration inheritance. Selects the environment, model,
training-backend, and weight-syncer presets to compose into the run. The
<group>@<target> syntax mounts a preset onto a config node (e.g.
model/openvla_oft@actor.model fills actor.model).
hydra#
hydra:
searchpath:
- file://${oc.env:EMBODIED_PATH}/config/
hydra.searchpath: Additional search paths for configuration files. EMBODIED_PATH
points at the embodiment example config directory.
runner#
runner:
only_eval: False
overlap_env_bootstrap: False
enable_decoupled_mode: False
Parameter |
Description |
|---|---|
|
Run evaluation only, without training. |
|
Overlap environment bootstrap (reset) with actor training to hide reset
latency. Useful when environment reset is slow. Only effective when
|
|
Decouple Env Workers from Rollout Workers. When enabled, an Env Worker is
no longer bound to a fixed Rollout Worker rank: Env Workers push
observations to a shared Channel and idle Rollout Workers fetch batches
dynamically. Helps when Env step time varies (long-tail latency) or there
are more Env Workers than Rollout Workers. Requires
|
Shared keys such as runner.task_type (set to embodied),
runner.max_epochs, runner.save_interval, runner.val_check_interval,
and runner.resume_dir are documented in Basic Configuration.
algorithm#
algorithm:
normalize_advantages: True
kl_penalty: kl
reward_type: chunk_level
logprob_type: token_level
entropy_type: token_level
adv_type: gae
loss_type: actor_critic
loss_agg_func: "token-mean"
bootstrap_type: always
kl_beta: 0.0
entropy_bonus: 0.0
clip_ratio_low: 0.2
clip_ratio_high: 0.28
clip_ratio_c: 3.0
value_clip: 0.2
huber_delta: 10.0
gamma: 0.99
gae_lambda: 0.95
Parameter |
Description |
|---|---|
|
Normalize advantages across the batch. |
|
How to estimate the KL divergence ( |
|
Reward aggregation level ( |
|
Log-probability computation level (e.g., |
|
Entropy computation level (e.g., |
|
Advantage estimator (e.g., |
|
Policy loss type. |
|
How to aggregate token losses (e.g., |
|
How to bootstrap Q-values at episode boundaries: |
|
Weight of the KL penalty added to rewards. |
|
Entropy reward coefficient. |
|
Lower/upper PPO clipping bounds for the importance ratio (asymmetric clip). |
|
Dual-clip constant for the pessimistic PPO bound. |
|
Value-function clipping threshold (PPO value loss). |
|
Huber-loss delta used by the value loss. |
|
Discount factor. |
|
GAE smoothing factor. |
algorithm.group_size (responses per prompt; always > 1 for GRPO) is shared and
documented in Basic Configuration.
env#
env:
group_name: "EnvGroup"
enable_offload: True
train:
rollout_epoch: 1
total_num_envs: 128
auto_reset: True
ignore_terminations: False
use_fixed_reset_state_ids: False
max_episode_steps: 80
max_steps_per_rollout_epoch: 160
eval:
rollout_epoch: 1
total_num_envs: 16
auto_reset: True
ignore_terminations: True
use_fixed_reset_state_ids: True
max_episode_steps: 80
max_steps_per_rollout_epoch: 80
Parameter |
Description |
|---|---|
|
Logical name for the environment worker group. |
|
Offload the environment to reduce memory usage. |
|
Number of rollout epochs per training/evaluation step. Evaluation metrics are averaged over passes with the same seeds. |
|
Total number of parallel environments for training/evaluation. |
|
Automatically reset environments when episodes terminate. |
|
Ignore episode terminations; when enabled, an episode only ends at
|
|
Use fixed reset state IDs (False randomizes). Always True for GRPO; default False for PPO. |
|
Maximum number of steps per episode (truncation horizon). |
|
Maximum environment steps collected per rollout epoch. Must be divisible by
|
rollout#
rollout:
sampling_params:
do_sample: True
temperature_train: 1.0
temperature_eval: 0.6
top_k: 0
top_p: 1.0
repetition_penalty: 1.0
group_name: "RolloutGroup"
backend: "huggingface"
enable_offload: True
pipeline_stage_num: 1
rollout_queue_size: 0
model:
model_path: "/path/to/hf_model"
precision: ${actor.model.precision}
sampling_params (autoregressive VLA policies): continuous policies (MLP, CNN,
OpenPI, GR00T, etc.) do not use rollout.sampling_params.
Parameter |
Description |
|---|---|
|
Deterministic decoding if False. |
|
Sampling temperature for training and evaluation. |
|
Top-k and nucleus sampling parameters. |
|
Penalize repeated tokens. |
|
Logical name for the rollout worker group. |
|
Model backend (e.g., |
|
Offload the rollout model to reduce GPU memory usage. |
|
Number of pipeline stages for rollout. |
|
Only used when |
|
Model checkpoint path used by rollout (may match the actor). |
|
Inference precision for rollout. |
actor#
actor:
group_name: "ActorGroup"
training_backend: "fsdp"
micro_batch_size: 40
global_batch_size: 640
seed: 1234
enable_offload: True
model:
model_path: "/path/to/huggingface_model"
model_type: "openvla_oft"
implement_version: "rlinf"
action_dim: 7
num_action_chunks: 8
use_proprio: False
use_film: False
unnorm_key: bridge_orig
value_type: ${algorithm.reward_type}
add_value_head: True
center_crop: True
do_sample: False
max_prompt_length: 30
precision: "bf16"
vocab_size: 32000
hidden_size: 4096
policy_setup: "widowx_bridge"
image_size: [224, 224]
is_lora: True
lora_rank: 32
lora_path: /path/to/models/oft-sft/lora_004000/
num_images_in_input: 1
attn_implementation: "flash_attention_2"
low_cpu_mem_usage: True
trust_remote_code: True
optim:
lr: 1.0e-4
value_lr: 3.0e-3
adam_beta1: 0.9
adam_beta2: 0.999
adam_eps: 1.0e-08
weight_decay: 0.01
clip_grad: 10.0
critic_warmup_steps: 0
Top-level
Parameter |
Description |
|---|---|
|
Logical name for the actor worker group. |
|
Training backend ( |
|
Micro-batch size per GPU. |
|
Global batch size across all GPUs. |
|
Global seed for reproducibility. |
|
Offload the actor model to reduce memory usage. |
Model Configuration
Parameter |
Description |
|---|---|
|
Model architecture name (e.g., |
|
Path to the HuggingFace model. |
|
Implementation variant for OpenVLA-OFT: |
|
Action-space dimensionality. |
|
Number of action chunks per sequence. |
|
Whether to feed proprioceptive state to the model. |
|
Use FiLM language conditioning ( |
|
Key for action de-normalization statistics. |
|
Value-head granularity; inherits from |
|
Attach a value head. Must be True when |
|
Whether to center-crop input images. |
|
Whether to sample (vs. greedy) during action generation. |
|
Maximum prompt length in tokens fed to the VLA backbone. |
|
Numerical precision ( |
|
Vocabulary size. |
|
Hidden dimension size. |
|
Policy/embodiment setup (e.g., |
|
Input image dimensions |
|
Whether to use LoRA fine-tuning. |
|
LoRA rank for low-rank adaptation. |
|
Path to LoRA weights. |
|
Number of images in the model input. |
|
Attention implementation (e.g., |
|
Use low-CPU-memory initialization. |
|
Trust remote code during model loading. |
Note
The OpenVLA (base) architecture additionally exposes add_bias_linear and
add_qkv_bias under actor.model; OpenVLA-OFT does not use them.
Optimizer Configuration
Parameter |
Description |
|---|---|
|
Learning rate for the policy network. |
|
Learning rate for the value head. |
|
Adam optimizer hyper-parameters. |
|
L2 weight decay. |
|
Gradient-clipping norm. |
|
Number of steps to train only the value head before updating the policy (0 disables warm-up). |
The tokenizer (actor.tokenizer.*) and FSDP (actor.fsdp_config.*) sub-sections
follow the shared schemas in Agentic RL Configuration and Basic Configuration; the FSDP
preset is mounted from training_backend/fsdp.
Environment-Specific Configuration#
The following parameters live in the environment preset (mounted via defaults),
using LIBERO-10 as an example.
Environment Type
env_type: libero
task_suite_name: libero_10
Parameter |
Description |
|---|---|
|
Simulator type ( |
|
Task suite ( |
Reward Configuration
use_rel_reward: true
reward_coef: 5.0
Parameter |
Description |
|---|---|
|
Use relative rewards (difference between current and previous step rewards). |
|
Reward coefficient for scaling rewards. |
Randomization and Groups
seed: 0
group_size: 1
use_fixed_reset_state_ids: True
Parameter |
Description |
|---|---|
|
Random seed for environment initialization. |
|
Number of environments per group; inherits from |
|
Use fixed reset state IDs (False randomizes). Always True for GRPO; default False for PPO. |
Video Recording
video_cfg:
save_video: true
info_on_video: true
video_base_dir: ${runner.logger.log_path}/video/train
Parameter |
Description |
|---|---|
|
Enable video recording. |
|
Overlay training information on videos. |
|
Directory to save videos. |
Camera Configuration
init_params:
camera_heights: 256
camera_widths: 256
Parameter |
Description |
|---|---|
|
Camera image height in pixels. |
|
Camera image width in pixels. |