precomputed_kv_layer
precomputed_kv_layer
¶
Cross-attention layer with K/V dimension projection for bridging two embedding spaces.
PrecomputedKVCrossAttentionLayer
¶
PrecomputedKVCrossAttentionLayer(embedding_dimension, conditioning_key_value_dimension, number_of_heads, number_of_key_value_heads, head_dimension, feedforward_dimension, normalization_type=value, conditioning_dimension=None, use_gating=False, dropout=0.1, activation=value)
Bases: Module
Projects precomputed conditioning K/V to local dimension, cross-attends, then feedforward.
Bridges two embedding spaces via learned K/V projections. The conditioning cache provides precomputed K/V from an external source which may have a different hidden dimension. Projections map them into the local attention space before cross-attention.
Initialize PrecomputedKVCrossAttentionLayer.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
embedding_dimension
|
int
|
Hidden dimension of the main input stream. |
required |
conditioning_key_value_dimension
|
int
|
K/V dimension from the conditioning source. |
required |
number_of_heads
|
int
|
Number of attention heads. |
required |
number_of_key_value_heads
|
int
|
Number of K/V heads. |
required |
head_dimension
|
int
|
Dimension per attention head. |
required |
feedforward_dimension
|
int
|
FFN hidden dimension. |
required |
normalization_type
|
str
|
Normalization type for attention and FFN blocks. |
value
|
conditioning_dimension
|
int | None
|
Dimension of conditioning vector for adaptive norm. |
None
|
use_gating
|
bool
|
Whether to use gating in adaptive normalization. |
False
|
dropout
|
float
|
Dropout rate for residual connections. |
0.1
|
activation
|
str
|
Activation function for FFN. |
value
|
Source code in src/versatil/models/layers/transformer/layer/precomputed_kv_layer.py
forward
¶
forward(hidden_states, conditioning_cache, conditioning=None, attention_mask=None, precomputed_rope=None)
Project conditioning K/V, cross-attend with optional RoPE, then FFN.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
hidden_states
|
Tensor
|
Local stream tokens (B, S, D). |
required |
conditioning_cache
|
ConditioningLayerCache
|
Precomputed K/V from conditioning source. Keys and values have shape (B, P, conditioning_kv_dim). |
required |
conditioning
|
Tensor | None
|
Conditioning vector for adaptive normalization (B, C). Ignored when normalization is unconditioned. |
None
|
attention_mask
|
Tensor | None
|
Optional mask (B, 1, S, P). |
None
|
precomputed_rope
|
tuple[Tensor, Tensor] | None
|
Optional precomputed (cos, sin) rotary positional encodings for query. |
None
|
Returns:
| Type | Description |
|---|---|
Tensor
|
Updated hidden states (B, S, D). |