masking
masking
¶
Masking utilities for causal transformers.
generate_causal_mask
¶
Generate causal attention mask.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
sequence_length
|
int
|
Sequence length |
required |
device
|
device
|
Device to create mask on |
required |
Returns:
| Type | Description |
|---|---|
Tensor
|
Causal mask (1, 1, seq_len, seq_len) as boolean tensor where True means masked position |
Source code in src/versatil/models/layers/transformer/masking.py
create_full_padding_mask
¶
create_full_padding_mask(key_padding_mask, cached_key_padding_mask, self_attention_mask, batch_size, query_length, cache_length, device)
Create full causal self attention mask and full key padding mask by combining cached and current masks.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
key_padding_mask
|
Tensor | None
|
Current key padding mask (B, query_length) with True=padding. |
required |
cached_key_padding_mask
|
Tensor | None
|
Cached key padding mask (B, cache_length) with True=padding. |
required |
self_attention_mask
|
Tensor | None
|
self-attention mask (B, 1, query_length, key_length) where True=masked. |
required |
batch_size
|
int
|
Batch size. |
required |
query_length
|
int
|
Current query length. |
required |
cache_length
|
int
|
Cached sequence length. |
required |
device
|
device
|
Device to create mask on. |
required |
Returns:
| Type | Description |
|---|---|
tuple[Tensor, Tensor | None]
|
Tuple with: total_mask: Updated self-attention mask (B, 1, query_length, key_length) where True=masked. full_key_padding_mask: Combined key padding mask (B, key_length) with True=padding. |
Note
This function always applies causal masking if the self_attention_mask is None.