decoder
decoder
¶
Configuration classes for different action decoder architectures.
DecodingNetworkConfig
dataclass
¶
DecodingNetworkConfig(_target_=MISSING, action_heads=None, input_keys=MISSING, observation_space='${policy.observation_space}', action_space='${policy.action_space}', observation_horizon='${policy.observation_horizon}', prediction_horizon='${policy.prediction_horizon}', device='${policy.device}')
Base architecture configuration.
Attributes:
| Name | Type | Description |
|---|---|---|
_target_ |
str
|
Import path instantiated by Hydra. |
action_heads |
dict[str, Any] | None
|
Action head config per predicted action key. |
input_keys |
list[str]
|
Observation keys consumed as inputs. |
observation_space |
ObservationSpaceConfig
|
Observation space of the task, wired via interpolation. |
action_space |
ActionSpaceConfig
|
Action space of the task, wired via interpolation. |
observation_horizon |
int
|
Number of past observation frames consumed. |
prediction_horizon |
int
|
Number of future actions predicted per chunk. |
device |
str
|
Torch device for the module. |
ACTConfig
dataclass
¶
ACTConfig(_target_='versatil.models.decoding.decoders.factory.act.ACT', action_heads=None, input_keys=MISSING, observation_space='${policy.observation_space}', action_space='${policy.action_space}', observation_horizon='${policy.observation_horizon}', prediction_horizon='${policy.prediction_horizon}', device='${policy.device}', embedding_dimension=512, number_of_heads=8, feedforward_dimension=3200, number_of_encoder_layers=4, number_of_decoder_layers=7, activation=value, dropout_rate=0.1, normalize_before=False)
Bases: DecodingNetworkConfig
Action Chunking Transformer with encoder-decoder architecture and parallel generation.
Note
Ref. https://arxiv.org/abs/2304.13705
Attributes:
| Name | Type | Description |
|---|---|---|
_target_ |
str
|
Import path instantiated by Hydra. |
embedding_dimension |
int
|
Transformer hidden dimension. |
number_of_heads |
int
|
Number of attention heads. |
feedforward_dimension |
int
|
Feedforward network dimension. |
number_of_encoder_layers |
int
|
Number of transformer encoder layers. |
number_of_decoder_layers |
int
|
Number of transformer decoder layers. |
activation |
str
|
Activation function name. |
dropout_rate |
float
|
Dropout probability. |
normalize_before |
bool
|
Use pre-normalization. |
PhaseACTConfig
dataclass
¶
PhaseACTConfig(_target_='versatil.models.decoding.decoders.factory.phase_act.PhaseACT', action_heads=None, input_keys=MISSING, observation_space='${policy.observation_space}', action_space='${policy.action_space}', observation_horizon='${policy.observation_horizon}', prediction_horizon='${policy.prediction_horizon}', device='${policy.device}', embedding_dimension=512, number_of_heads=8, feedforward_dimension=3200, number_of_encoder_layers=4, number_of_decoder_layers=7, activation=value, dropout_rate=0.1, normalize_before=False, phase_routing_key=MISSING)
Bases: ACTConfig
Phase-conditioned ACT decoder with MoE routing.
Note
Cf. https://arxiv.org/abs/2601.21971 Extends the base ACT architecture to support phase-based expert routing. The phase classifier head produces routing logits that are used to route action predictions through phase-specific expert networks.
Attributes:
| Name | Type | Description |
|---|---|---|
_target_ |
str
|
Import path instantiated by Hydra. |
phase_routing_key |
str
|
Key for the phase classifier head that provides routing weights. |
GPTActionTransformerConfig
dataclass
¶
GPTActionTransformerConfig(_target_='versatil.models.decoding.decoders.factory.gpt_action_transformer.GPTActionTransformer', action_heads=None, input_keys=MISSING, observation_space='${policy.observation_space}', action_space='${policy.action_space}', observation_horizon='${policy.observation_horizon}', prediction_horizon='${policy.prediction_horizon}', device='${policy.device}', max_seq_len=512, embedding_dimension=256, number_of_heads=8, number_of_key_value_heads=None, feedforward_dimension=None, number_of_layers=6, activation=value, normalization_type=value, attention_type=value, dropout_rate=0.1, attention_dropout=0.0, positional_encoding_type=value, temperature=1.0, learnable_temperature=False, deterministic=True)
Bases: DecodingNetworkConfig
Autoregressive transformer that models a categorical distribution over discrete action tokens.
Pure GPT-style autoregressive action decoder: - Concatenates visual/proprioceptive features as prefix tokens - Supports variable-length action token sequences (e.g. for FAST tokenization) - Teacher forcing during training - Autoregressive generation with KV caching during inference
Attributes:
| Name | Type | Description |
|---|---|---|
_target_ |
str
|
Import path instantiated by Hydra. |
max_seq_len |
int
|
Maximum sequence length for GPT (features + action tokens). |
embedding_dimension |
int
|
Common embedding dimension to bring input tokens to, also Transformer hidden size. |
number_of_heads |
int
|
Number of query attention heads. |
number_of_key_value_heads |
int | None
|
Number of K/V heads for GQA (None = same as heads = MHA). |
feedforward_dimension |
int | None
|
FFN hidden dimension (default: 4 * embedding_dimension). |
number_of_layers |
int
|
Number of transformer layers. |
activation |
str
|
Activation function (swiglu, gelu, relu, silu). |
normalization_type |
str
|
Normalization type (rmsnorm, layernorm). |
attention_type |
str
|
Attention type (gqa, mha). |
dropout_rate |
float
|
Dropout probability. |
attention_dropout |
float
|
Attention dropout probability. |
positional_encoding_type |
str | None
|
Type of positional encoding (sinusoidal, rope, None). |
temperature |
float
|
Initial temperature for sampling (not used in greedy decoding). |
learnable_temperature |
bool
|
If True, make temperature a learnable parameter. |
deterministic |
bool
|
If True, use greedy decoding during inference. |
AutoregressiveVLAConfig
dataclass
¶
AutoregressiveVLAConfig(_target_='versatil.models.decoding.decoders.factory.autoregressive_vla.AutoregressiveVLADecoder', action_heads=dict(), input_keys=list(), observation_space='${policy.observation_space}', action_space='${policy.action_space}', observation_horizon='${policy.observation_horizon}', prediction_horizon='${policy.prediction_horizon}', device='${policy.device}', vlm_backbone=MISSING, max_seq_len=512, temperature=1.0, learnable_temperature=False, deterministic=True, causal_prefix=False)
Bases: DecodingNetworkConfig
Autoregressive VLA action-token decoder backed by a VLM.
Attributes:
| Name | Type | Description |
|---|---|---|
_target_ |
str
|
Import path instantiated by Hydra. |
action_heads |
dict[str, Any]
|
Must be empty. This decoder predicts action tokens with the VLM language vocabulary head. |
input_keys |
list[str]
|
Must be empty. Raw observation keys are declared by
|
vlm_backbone |
Any
|
Generative VLM that builds image-language prefix embeddings and exposes the causal language model vocabulary. |
max_seq_len |
int
|
Maximum prefix plus generated action-token length. |
temperature |
float
|
Softmax temperature for stochastic inference. |
learnable_temperature |
bool
|
Whether |
deterministic |
bool
|
Whether inference uses greedy token selection. |
causal_prefix |
bool
|
Whether to use a standard causal padding mask (OpenVLA) for the whole sequence instead of bidirectional prefix attention (Pi0-FAST). |
OpenVLAOFTConfig
dataclass
¶
OpenVLAOFTConfig(_target_='versatil.models.decoding.decoders.factory.openvla_oft.OpenVLAOFTDecoder', action_heads=None, input_keys=list(), observation_space='${policy.observation_space}', action_space='${policy.action_space}', observation_horizon='${policy.observation_horizon}', prediction_horizon='${policy.prediction_horizon}', device='${policy.device}', vlm_backbone=MISSING, slots_per_action_dimension=True, causal_action_slots=True, min_period=0.004, max_period=4.0)
Bases: DecodingNetworkConfig
OpenVLA-OFT-style continuous action chunk decoder backed by a VLM.
Attributes:
| Name | Type | Description |
|---|---|---|
_target_ |
str
|
Import path instantiated by Hydra. |
input_keys |
list[str]
|
Must be empty. Raw observation keys are declared by
|
vlm_backbone |
Any
|
Generative VLM that builds image-language prefix embeddings and exposes the language tower. |
slots_per_action_dimension |
bool
|
When |
causal_action_slots |
bool
|
Whether action slots use causal self-attention. |
min_period |
float
|
Minimum period for sinusoidal timestep embeddings used by denoising algorithms. |
max_period |
float
|
Maximum period for sinusoidal timestep embeddings used by denoising algorithms. |
ActionTransformerConfig
dataclass
¶
ActionTransformerConfig(_target_='versatil.models.decoding.decoders.factory.action_transformer.ActionTransformer', action_heads=None, input_keys=MISSING, observation_space='${policy.observation_space}', action_space='${policy.action_space}', observation_horizon='${policy.observation_horizon}', prediction_horizon='${policy.prediction_horizon}', device='${policy.device}', embedding_dimension=256, number_of_heads=8, number_of_key_value_heads=None, feedforward_dimension=None, number_of_layers=6, activation=value, normalization_type=value, attention_type=value, dropout_rate=0.1, attention_dropout=0.0, positional_encoding_type=value)
Bases: DecodingNetworkConfig
Action Decoder-only Transformer architecture with cross-attention to encoded features.
Attributes:
| Name | Type | Description |
|---|---|---|
_target_ |
str
|
Import path instantiated by Hydra. |
embedding_dimension |
int
|
Embedding dimension of the model tokens. |
number_of_heads |
int
|
Number of query attention heads. |
number_of_key_value_heads |
int | None
|
Key/value head count for grouped-query attention. |
feedforward_dimension |
int | None
|
Feedforward layer width. |
number_of_layers |
int
|
Transformer layer count. |
activation |
str
|
Activation function. |
normalization_type |
str
|
Normalization type. |
attention_type |
str
|
Attention type. |
dropout_rate |
float
|
Dropout probability. |
attention_dropout |
float
|
Dropout probability inside attention. |
positional_encoding_type |
str | None
|
Self-attention positional encoding: rope, sinusoidal, learned, or null. |
MixtureOfDensitiesActionTransformerConfig
dataclass
¶
MixtureOfDensitiesActionTransformerConfig(_target_='versatil.models.decoding.decoders.factory.mode_act.MixtureOfDensitiesActionTransformer', action_heads=None, input_keys=MISSING, observation_space='${policy.observation_space}', action_space='${policy.action_space}', observation_horizon='${policy.observation_horizon}', prediction_horizon='${policy.prediction_horizon}', device='${policy.device}', embedding_dimension=256, number_of_heads=8, number_of_key_value_heads=None, feedforward_dimension=None, number_of_layers=6, activation=value, normalization_type=value, attention_type=value, dropout_rate=0.1, attention_dropout=0.0, positional_encoding_type=value, num_mixture_components=8, gating_hidden_dims=(lambda: [256, 128])(), gating_activation=value, gating_dropout=0.1, gating_normalization=True, temperature=1.0, learnable_temperature=False, gating_feature_key=None, gmm_init_strategy=value, inference_sampling_mode=value)
Bases: DecodingNetworkConfig
Mixture of Densities Action Transformer (MODE-ACT) configuration.
MODE-ACT extends ActionTransformer with mixture density network capabilities for multi-modal action prediction. It uses K copies of each action head and a gating network to predict mixture weights.
Attributes:
| Name | Type | Description |
|---|---|---|
_target_ |
str
|
Import path instantiated by Hydra. |
embedding_dimension |
int
|
Transformer embedding dimension. |
number_of_heads |
int
|
Number of attention heads. |
number_of_key_value_heads |
int | None
|
Number of key-value heads for GQA. |
feedforward_dimension |
int | None
|
FFN hidden dimension. |
number_of_layers |
int
|
Number of decoder layers. |
activation |
str
|
Activation function. |
normalization_type |
str
|
Normalization type. |
attention_type |
str
|
Attention type. |
dropout_rate |
float
|
Dropout rate. |
attention_dropout |
float
|
Attention dropout rate. |
positional_encoding_type |
str | None
|
Positional encoding type. |
num_mixture_components |
int
|
Number of mixture components (K). |
gating_hidden_dims |
list[int]
|
Hidden dimensions for gating MLP. |
gating_activation |
str
|
Activation for gating MLP. |
gating_dropout |
float
|
Dropout rate in gating MLP. |
gating_normalization |
bool
|
Whether to normalize gating input. |
temperature |
float
|
Temperature for softmax scaling. |
learnable_temperature |
bool
|
Whether temperature is learnable. |
gating_feature_key |
str | None
|
If set, use this feature for gating instead of mode embedding. |
gmm_init_strategy |
str
|
Strategy for initializing GMM component means. |
inference_sampling_mode |
str
|
How to sample from the mixture at inference. DETERMINISTIC: argmax component, return mean. STOCHASTIC_MEAN: multinomial component, return mean (no noise). STOCHASTIC_SAMPLE: multinomial component, add Gaussian noise. |
LACTConfig
dataclass
¶
LACTConfig(_target_='versatil.models.decoding.decoders.factory.lact.LACT', action_heads=None, input_keys=MISSING, observation_space='${policy.observation_space}', action_space='${policy.action_space}', observation_horizon='${policy.observation_horizon}', prediction_horizon='${policy.prediction_horizon}', device='${policy.device}', latent_dimension=MISSING, embedding_dimension=256, number_of_heads=8, number_of_key_value_heads=None, feedforward_dimension=None, number_of_layers=6, activation=value, normalization_type=value, attention_type=value, positional_encoding_type=value, dropout_rate=0.1, attention_dropout=0.0, use_gating=True)
Bases: DecodingNetworkConfig
Latent Action Transformer (LACT) architecture configuration.
LACT extends a standard Action Transformer with latent-conditioned decoding. It uses a Pix-Art style DiT with AdaLN-Zero modulation on the latent token and cross-attention to encoder features.
Must be used with a variational algorithm (e.g., VariationalAlgorithm) that provides a latent embedding indexed by LatentKey.POSTERIOR_LATENT in the features dictionary.
Attributes:
| Name | Type | Description |
|---|---|---|
_target_ |
str
|
Import path instantiated by Hydra. |
latent_dimension |
int
|
Dimension of latent conditioning vector. |
embedding_dimension |
int
|
Transformer hidden dimension. |
number_of_heads |
int
|
Number of attention heads. |
number_of_key_value_heads |
int | None
|
Number of K/V heads for GQA (None for MHA). |
feedforward_dimension |
int | None
|
FFN hidden dimension (default: 4 * embedding_dimension). |
number_of_layers |
int
|
Number of conditional transformer decoder layers. |
activation |
str
|
Activation function name. |
normalization_type |
str
|
Type of adaptive normalization layer. |
attention_type |
str
|
Type of attention mechanism (multi-head, grouped query, etc.). |
positional_encoding_type |
str | None
|
Type of positional encoding. |
dropout_rate |
float
|
Dropout probability for residual connections. |
attention_dropout |
float
|
Dropout probability for attention weights. |
use_gating |
bool
|
Whether to use AdaLN-Zero gating on residual connections. |
MixtureOfExpertsDecoderConfig
dataclass
¶
MixtureOfExpertsDecoderConfig(_target_='versatil.models.decoding.decoders.moe.MoEDecoder', base_expert=MISSING, num_experts=MISSING, gating_feature_key=MISSING, inference_gating_key=None, gating_input_dim=None, gating_hidden_dims=list(), gating_activation=value, routing_type=value, top_k=2, temperature=1.0, learnable_temperature=False, gating_dropout=0.1, gating_normalization=True)
Mixture of Experts (MoE) decoder configuration.
The wrapper takes every generic decoder setting (action heads, input keys,
spaces, horizons, device) from base_expert, so it intentionally does
not extend DecodingNetworkConfig.
Attributes:
| Name | Type | Description |
|---|---|---|
_target_ |
str
|
Import path instantiated by Hydra. |
base_expert |
Any
|
Decoder config replicated per expert. |
num_experts |
int
|
Number of expert decoders. |
gating_feature_key |
str
|
Feature key routed to the gating network during training. |
inference_gating_key |
str | None
|
Feature key routed to the gating network at inference when it differs from gating_feature_key. None uses gating_feature_key. The key must exist in the decoder features at inference; variational algorithms expose their sampled latent under the posterior key ('latent') during both training and inference. |
gating_input_dim |
int | None
|
Gating network input dimension; null derives routing from the latent. |
gating_hidden_dims |
list[int]
|
Gating network hidden layer widths. |
gating_activation |
str
|
Activation function inside the gating network. |
routing_type |
str
|
Expert routing: soft or top_k. |
top_k |
int
|
Number of expert outputs mixed per sample with top_k routing. Every expert still runs a forward pass; routing selects and renormalizes the top-k outputs rather than skipping computation. |
temperature |
float
|
Routing softmax temperature. |
learnable_temperature |
bool
|
Whether the routing temperature is learned. |
gating_dropout |
float
|
Dropout probability inside the gating network. |
gating_normalization |
bool
|
Normalization layer name inside the gating network. |
DiTBlockActionTransformerConfig
dataclass
¶
DiTBlockActionTransformerConfig(_target_='versatil.models.decoding.decoders.factory.dit_block_action_transformer.DiTBlockActionTransformer', action_heads=None, input_keys=MISSING, observation_space='${policy.observation_space}', action_space='${policy.action_space}', observation_horizon='${policy.observation_horizon}', prediction_horizon='${policy.prediction_horizon}', device='${policy.device}', max_sequence_length=1024, embedding_dimension=512, timestep_embedding_dimension=256, number_of_heads=8, number_of_key_value_heads=None, number_of_encoder_layers=6, number_of_decoder_layers=6, feedforward_dimension=2048, activation=value, normalization_type=value, attention_type=value, dropout_rate=0.1, attention_dropout=0.0, positional_encoding_type=value, use_gating=True)
Bases: DecodingNetworkConfig
DiTBlock action transformer with pooled conditioning.
Note
Ref. https://arxiv.org/abs/2410.10088v1 It uses an encoder-decoder architecture that pools encoder output to a single conditioning vector. Must be used with a denoising algorithm that provides timesteps and noisy actions.
Attributes:
| Name | Type | Description |
|---|---|---|
_target_ |
str
|
Import path instantiated by Hydra. |
max_sequence_length |
int
|
Maximum sequence length for input tokens. |
embedding_dimension |
int
|
Transformer hidden dimension. |
timestep_embedding_dimension |
int
|
Diffusion timestep embedding dimension. |
number_of_heads |
int
|
Number of attention heads. |
number_of_key_value_heads |
int | None
|
Number of K/V heads for GQA. |
number_of_encoder_layers |
int
|
Number of transformer encoder layers. |
number_of_decoder_layers |
int
|
Number of transformer decoder layers. |
feedforward_dimension |
int
|
Feedforward network dimension. |
activation |
str
|
Activation function name. |
normalization_type |
str
|
Normalization type name. |
attention_type |
str
|
Attention type name (gqa, mha). |
dropout_rate |
float
|
Dropout probability for residual connections. |
attention_dropout |
float
|
Dropout probability for attention weights. |
positional_encoding_type |
str | None
|
Type of positional encoding. |
use_gating |
bool
|
Whether to use gating in AdaLN-Zero layers. |
DiffusionActionTransformerConfig
dataclass
¶
DiffusionActionTransformerConfig(_target_='versatil.models.decoding.decoders.factory.diffusion_action_transformer.DiffusionActionTransformer', action_heads=None, input_keys=MISSING, observation_space='${policy.observation_space}', action_space='${policy.action_space}', observation_horizon='${policy.observation_horizon}', prediction_horizon='${policy.prediction_horizon}', device='${policy.device}', diffusion_transformer_type=value, max_sequence_length=1024, embedding_dimension=512, timestep_embedding_dimension=256, number_of_heads=8, number_of_key_value_heads=None, number_of_layers=6, feedforward_dimension=2048, activation=value, normalization_type=value, attention_type=value, dropout_rate=0.1, attention_dropout=0.0, positional_encoding_type=value, use_gating=True)
Bases: DecodingNetworkConfig
Diffusion action transformer for CrossAttentionDiT and MultiModal DiT.
Note
Must be used with a denoising algorithm that provides timesteps and noisy actions.
Attributes:
| Name | Type | Description |
|---|---|---|
_target_ |
str
|
Import path instantiated by Hydra. |
diffusion_transformer_type |
str
|
Type of Diffusion Transformer architecture. |
max_sequence_length |
int
|
Maximum sequence length for input tokens. |
embedding_dimension |
int
|
Transformer hidden dimension. |
timestep_embedding_dimension |
int
|
Diffusion timestep embedding dimension. |
number_of_heads |
int
|
Number of attention heads. |
number_of_key_value_heads |
int | None
|
Number of K/V heads for GQA. |
number_of_layers |
int
|
Number of transformer layers. |
feedforward_dimension |
int
|
Feedforward network dimension. |
activation |
str
|
Activation function name. |
normalization_type |
str
|
Normalization type name. |
attention_type |
str
|
Attention type name (gqa, mha). |
dropout_rate |
float
|
Dropout probability for residual connections. |
attention_dropout |
float
|
Dropout probability for attention weights. |
positional_encoding_type |
str | None
|
Type of positional encoding. |
use_gating |
bool
|
Whether to use gating in AdaLN-Zero layers. |
ConditionalActionUNetConfig
dataclass
¶
ConditionalActionUNetConfig(_target_='versatil.models.decoding.decoders.factory.conditional_action_unet.ConditionalActionUNet', action_heads=None, input_keys=MISSING, observation_space='${policy.observation_space}', action_space='${policy.action_space}', observation_horizon='${policy.observation_horizon}', prediction_horizon='${policy.prediction_horizon}', device='${policy.device}', embedding_dimension=256, down_dimensions=(lambda: [256, 512, 1024])(), kernel_size=5, num_groups=8, condition_predict_scale=False)
Bases: DecodingNetworkConfig
Conditional U-Net action decoder configuration with FiLM conditioning. Note: Ref. https://diffusion-policy.cs.columbia.edu. Must be used with a denoising algorithm that provides timesteps and noisy actions.
Attributes:
| Name | Type | Description |
|---|---|---|
_target_ |
str
|
Import path instantiated by Hydra. |
embedding_dimension |
int
|
Diffusion timestep embedding dimension. |
down_dimensions |
list[int]
|
List of channel dimensions for downsampling layers. |
kernel_size |
int
|
Kernel size for convolutions in residual blocks. |
num_groups |
int
|
Number of groups for group normalization. |
condition_predict_scale |
bool
|
If True, conditions predict scaling factors in FiLM. |
SmolVLADecoderConfig
dataclass
¶
SmolVLADecoderConfig(_target_='versatil.models.decoding.decoders.factory.smolvla.SmolVLADecoder', action_heads=None, input_keys=MISSING, observation_space='${policy.observation_space}', action_space='${policy.action_space}', observation_horizon='${policy.observation_horizon}', prediction_horizon='${policy.prediction_horizon}', device='${policy.device}', vlm_backbone=MISSING, expert_width_multiplier=0.75, num_expert_layers=-1, num_vlm_layers=16, self_attention_every_n_layers=2, proprioceptive_feature_key=None, min_period=0.004, max_period=4.0, freeze_vlm=True, normalization_type=value, activation=value, dropout=0.1)
Bases: DecodingNetworkConfig
SmolVLA Vision Language Action model with interleaved VLM + expert cross-attention.
Note
Ref. https://arxiv.org/abs/2506.01844 Must be used with a denoising algorithm that provides timesteps and noisy actions.
Attributes:
| Name | Type | Description |
|---|---|---|
_target_ |
str
|
Import path instantiated by Hydra. |
vlm_backbone |
Any
|
Generative VLM backbone that builds the raw observation prefix
with shape |
expert_width_multiplier |
float
|
Expert hidden size as fraction of VLM hidden size. |
num_expert_layers |
int
|
Number of expert layers. |
num_vlm_layers |
int
|
Number of VLM layers to use (truncates if fewer than available). |
self_attention_every_n_layers |
int
|
Period for joint self-attention layers. |
proprioceptive_feature_key |
str | None
|
Feature key for proprioceptive state from the encoding pipeline. When set, the feature is prepended to the VLM prefix before interleaved processing. None disables state prepend. |
min_period |
float
|
Minimum period for sinusoidal timestep embedding. |
max_period |
float
|
Maximum period for sinusoidal timestep embedding. |
freeze_vlm |
bool
|
Whether to freeze VLM layer parameters (disable gradients). |
normalization_type |
str
|
Normalization layer type. |
activation |
str
|
Activation function for expert feedforward layers. |
dropout |
float
|
Dropout rate. |
Pi0DecoderConfig
dataclass
¶
Pi0DecoderConfig(_target_='versatil.models.decoding.decoders.factory.pi0.Pi0Decoder', action_heads=None, input_keys=MISSING, observation_space='${policy.observation_space}', action_space='${policy.action_space}', observation_horizon='${policy.observation_horizon}', prediction_horizon='${policy.prediction_horizon}', device='${policy.device}', vlm_backbone=MISSING, expert_hidden_size=1024, expert_intermediate_size=4096, expert_number_of_heads=8, expert_number_of_key_value_heads=1, expert_number_of_layers=18, expert_head_dimension=256, time_conditioning=value, min_period=0.004, max_period=4.0, proprioceptive_feature_key=None, normalization_type=value, activation=value, dropout=0.0)
Bases: DecodingNetworkConfig
Pi0/Pi0.5 Vision Language Action model with interleaved VLM + expert joint attention.
Note
Ref. https://arxiv.org/abs/2410.24164, https://arxiv.org/abs/2504.16054 Must be used with a denoising algorithm that provides timesteps and noisy actions.
Attributes:
| Name | Type | Description |
|---|---|---|
_target_ |
str
|
Import path instantiated by Hydra. |
vlm_backbone |
Any
|
Generative VLM backbone that builds the raw observation prefix
with shape |
expert_hidden_size |
int
|
Expert network hidden dimension. |
expert_intermediate_size |
int
|
Expert feedforward intermediate dimension. |
expert_number_of_heads |
int
|
Number of attention heads in expert layers. |
expert_number_of_key_value_heads |
int
|
Number of K/V heads in expert layers. |
expert_number_of_layers |
int
|
Number of expert layers (must match VLM layers). |
expert_head_dimension |
int
|
Per-head dimension in expert layers. |
time_conditioning |
str
|
Timestep conditioning mode (use TimeConditioning enum values). |
min_period |
float
|
Minimum period for sinusoidal timestep embedding. |
max_period |
float
|
Maximum period for sinusoidal timestep embedding. |
proprioceptive_feature_key |
str | None
|
Feature key for proprioceptive state. When set, the feature is prepended to the VLM prefix. |
normalization_type |
str
|
Normalization layer type. |
activation |
str
|
Activation function for expert feedforward layers. |
dropout |
float
|
Dropout rate. |