conditional_bidirectional_decoder
conditional_bidirectional_decoder
¶
Conditional bidirectional transformer decoder with latent conditioning.
ConditionalBidirectionalDecoder
¶
ConditionalBidirectionalDecoder(number_of_layers, embedding_dimension, conditioning_dimension, number_of_heads, number_of_key_value_heads=None, feedforward_dimension=None, dropout=0.1, attention_dropout=0.0, activation=value, normalization_type=value, use_gating=False, attention_type=value, positional_encoding_type=None, maximum_sequence_length=2048, bias=True, normalization_epsilon=1e-06, initializer_range=0.02, use_cross_attention=True, cross_attention_conditioning_dimension=None, cross_attention_normalization_type=None, use_final_normalization=True, condition_final_normalization=True)
Bases: TransformerMixin, Module
Bidirectional transformer decoder with conditional modulation.
Each transformer layer uses adaptive normalization (AdaNorm) to condition its representations on a conditioning signal throughout the network. Supports optional cross-attention to encoded features.
Initialize conditional bidirectional decoder.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
number_of_layers
|
int
|
Number of decoder layers. |
required |
embedding_dimension
|
int
|
Model embedding dimension. |
required |
conditioning_dimension
|
int
|
Dimension of conditioning vector. |
required |
number_of_heads
|
int
|
Number of attention heads. |
required |
number_of_key_value_heads
|
int | None
|
Number of K/V heads (for GQA). |
None
|
feedforward_dimension
|
int | None
|
FFN hidden dimension. |
None
|
dropout
|
float
|
Dropout probability for residual connections. |
0.1
|
attention_dropout
|
float
|
Dropout probability for attention weights. |
0.0
|
activation
|
str
|
Activation function (use ActivationFunction enum values). |
value
|
normalization_type
|
str
|
Normalization type for self-attention and FFN. |
value
|
use_gating
|
bool
|
Whether to use gating in adaptive normalization (AdaLN-Zero). |
False
|
attention_type
|
str
|
Type of attention (use AttentionType enum values). |
value
|
positional_encoding_type
|
str | None
|
Type of positional encoding (or None). |
None
|
maximum_sequence_length
|
int
|
Maximum sequence length for positional encoding. |
2048
|
bias
|
bool
|
Whether to use bias in linear layers. |
True
|
normalization_epsilon
|
float
|
Epsilon for normalization layers. |
1e-06
|
initializer_range
|
float
|
Standard deviation for weight initialization. |
0.02
|
use_cross_attention
|
bool
|
Whether to include cross-attention blocks. |
True
|
cross_attention_conditioning_dimension
|
int | None
|
Conditioning dimension for cross-attention normalization. None means unconditioned cross-attention. |
None
|
cross_attention_normalization_type
|
str | None
|
Normalization type for cross-attention. Defaults to normalization_type when None. |
None
|
use_final_normalization
|
bool
|
Whether to apply final normalization. |
True
|
condition_final_normalization
|
bool
|
Whether final normalization is conditioned. When False, uses plain normalization regardless of condition_dimension. |
True
|
Source code in src/versatil/models/layers/transformer/conditional_bidirectional_decoder.py
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 | |
precompute_conditioning_kv
¶
Precompute conditioning K/V for all layers for forward pass reuse.
Source code in src/versatil/models/layers/transformer/conditional_bidirectional_decoder.py
forward
¶
forward(hidden_states, condition, encoded_features=None, conditioning_cache=None, query_padding_mask=None, memory_padding_mask=None)
Forward pass through conditional bidirectional decoder.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
hidden_states
|
Tensor
|
Query embeddings (B, query_length, D). |
required |
condition
|
Tensor
|
Conditioning vector (B, conditioning_dimension). |
required |
encoded_features
|
Tensor | None
|
Encoder features to cross-attend to (B, memory_length, D). |
None
|
conditioning_cache
|
ConditioningCache | None
|
Precomputed K/V for static conditioning. When provided, encoded_features is not needed for cross-attention. |
None
|
query_padding_mask
|
Tensor | None
|
Optional padding mask for queries (B, query_length). |
None
|
memory_padding_mask
|
Tensor | None
|
Optional padding mask for memory (B, memory_length). |
None
|
Returns:
| Type | Description |
|---|---|
Tensor
|
Output hidden states (B, query_length, D). |
Raises:
| Type | Description |
|---|---|
ValueError
|
If use_cross_attention=True but neither encoded_features nor conditioning_cache is provided. |