dit_block_action_transformer
dit_block_action_transformer
¶
DiT Block action transformer decoder with pooled conditioning.
Uses DiTBlock Policy architecture, a diffusion transformer with an encoder that pools encoder output to a single conditioning vector. Supports encoder caching for inference optimization.
DiTBlockActionTransformer
¶
DiTBlockActionTransformer(input_keys, action_space, action_heads, observation_space, observation_horizon, prediction_horizon, 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: BaseParallelTransformerDecoder
Diffusion action transformer decoder using DiTBlock with pooled conditioning.
This architecture: - Processes observation tokens through encoder with mean pooling - Conditions decoder via the sum of pooled vector + timestep embedding (AdaLN) - Caches pooled encoder output during inference
Initialize DiTBlock action decoder.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
input_keys
|
list[str]
|
List of feature keys expected from encoder pipeline. |
required |
action_space
|
ActionSpace
|
Action space configuration. |
required |
action_heads
|
dict[str, ActionHead]
|
Dictionary of action head modules. |
required |
observation_space
|
ObservationSpace
|
Observation space configuration. |
required |
observation_horizon
|
int
|
Number of observation timesteps (for history). |
required |
prediction_horizon
|
int
|
Number of actions to predict (horizon). |
required |
device
|
str
|
Device to run the model on. |
required |
max_sequence_length
|
int
|
Maximum sequence length for input tokens. |
1024
|
embedding_dimension
|
int
|
Transformer hidden dimension. |
512
|
timestep_embedding_dimension
|
int
|
Diffusion timestep embedding dimension. |
256
|
number_of_heads
|
int
|
Number of attention heads. |
8
|
number_of_key_value_heads
|
int | None
|
Number of K/V heads for GQA. |
None
|
number_of_encoder_layers
|
int
|
Number of transformer encoder layers. |
6
|
number_of_decoder_layers
|
int
|
Number of transformer decoder layers. |
6
|
feedforward_dimension
|
int
|
Feedforward network dimension. |
2048
|
activation
|
str
|
Activation function name. |
value
|
normalization_type
|
str
|
Normalization type name. |
value
|
attention_type
|
str
|
Attention type name (gqa, mha). |
value
|
dropout_rate
|
float
|
Dropout probability for residual connections. |
0.1
|
attention_dropout
|
float
|
Dropout probability for attention weights. |
0.0
|
positional_encoding_type
|
str | None
|
Type of positional encoding. |
value
|
use_gating
|
bool
|
Whether to use gating in AdaLN-Zero layers. |
True
|
Source code in src/versatil/models/decoding/decoders/factory/dit_block_action_transformer.py
enable_encoder_cache
¶
Enable encoder caching for multi-step inference loops.
Called by algorithms at the start of predict() to enable caching across denoising steps within a single sample.
Source code in src/versatil/models/decoding/decoders/factory/dit_block_action_transformer.py
disable_encoder_cache
¶
Disable encoder caching and clear cached values.
forward
¶
Forward pass through DiTBlock transformer.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
features
|
dict[str, Tensor]
|
Dictionary of encoded features plus timestep. |
required |
actions
|
dict[str, Tensor] | None
|
Dictionary of noise-injected actions. |
None
|
Returns:
| Type | Description |
|---|---|
dict[str, Tensor]
|
Dictionary containing denoised predictions for each action head. |
Raises:
| Type | Description |
|---|---|
ValueError
|
If timesteps or actions are missing. |