encoder_layer
encoder_layer
¶
Transformer encoder layer inspired by the original "Attention is All You Need" paper, with bidirectional self-attention and optional conditioning.
TransformerEncoderLayer
¶
TransformerEncoderLayer(embedding_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, attention_type=value, bias=True, normalization_epsilon=1e-06, conditioning_dimension=None, use_gating=False)
Bases: Module
Self-attention + feedforward blocks.
Note
Supports optional conditioning when constructed with adaptive normalization types.
Initialize Transformer encoder layer.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
embedding_dimension
|
int
|
Model embedding dimension. |
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 (defaults to 4 * embedding_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
|
Type of normalization (use NormalizationType enum values). |
value
|
attention_type
|
str
|
Type of attention (use AttentionType enum values). |
value
|
bias
|
bool
|
Whether to use bias in linear layers. |
True
|
normalization_epsilon
|
float
|
Epsilon for normalization layers. |
1e-06
|
conditioning_dimension
|
int | None
|
Conditioning dimension for adaptive normalization. Required when normalization_type is adaptive. |
None
|
use_gating
|
bool
|
Whether to use gating in adaptive normalization (AdaLN-Zero). |
False
|
Source code in src/versatil/models/layers/transformer/layer/encoder_layer.py
forward
¶
Forward pass through encoder layer.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
hidden_states
|
Tensor
|
Input embeddings (B, S, D). |
required |
conditioning
|
Tensor | None
|
Conditioning vector for adaptive normalization (B, C). Ignored when constructed with plain normalization. |
None
|
attention_mask
|
Tensor | None
|
Optional mask (B, 1, S, S) where True means masked. |
None
|
positional_encoding
|
RotaryPositionalEncoding | None
|
Optional rotary positional encoding module. |
None
|
Returns:
| Type | Description |
|---|---|
Tensor
|
Output hidden states (B, S, D). |