Skip to content

5. Utilities

5.1 utils

5.1.1 create_causal_mask(size)

Creates a causal mask to prevent the decoder from attending to future tokens during training.

Parameters:

Name Type Description Default
size int

Length of the sequence.

required

Returns:

Type Description
Tensor

Causal mask of shape (size, size).

Source code in src/nlp/utils.py
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
def create_causal_mask(size: int) -> torch.Tensor:
    """
    Creates a causal mask to prevent the decoder from attending
    to future tokens during training.

    Args:
        size: Length of the sequence.

    Returns:
        Causal mask of shape (size, size).
    """

    return torch.tril(torch.ones(size, size))

5.1.2 create_padding_mask(seq, pad_token=0)

Creates a mask to ignore padding tokens in a sequence.

Parameters:

Name Type Description Default
seq Tensor

Sequence of tokens, shape (B, seq_len).

required
pad_token int

Padding token value.

0

Returns:

Type Description
Tensor

Padding mask of shape (B, 1, 1, seq_len).

Source code in src/nlp/utils.py
20
21
22
23
24
25
26
27
28
29
30
31
32
def create_padding_mask(seq: torch.Tensor, pad_token: int = 0) -> torch.Tensor:
    """
    Creates a mask to ignore padding tokens in a sequence.

    Args:
        seq: Sequence of tokens, shape (B, seq_len).
        pad_token: Padding token value.

    Returns:
        Padding mask of shape (B, 1, 1, seq_len).
    """

    return (seq != pad_token).unsqueeze(1).unsqueeze(1)