Feed-forward MLP Layer

i logits calcolati attraverso i layer di self-attention non hanno il tempo di pensare su cosa è stato trovato nei token.
Per "rallentare" il processo di training, per aiutare nella comprensione delle informazioni trovate durante l'attention, viene introdotto un layer MLP*, un piccolo livello di feed forward.

E' un semplice layer lineare seguito da una attivazione non lineare di tipo ReLU.

class FeedFoward(nn.Module):

    def __init__(self, n_embd):
        super().__init__()
        self.net = nn.Sequential(
            nn.Linear(n_embd, 4 * n_embd), nn.ReLU()
        )

    def forward(self, x):
        return self.net(x)

Per convenienza può essere anche usato per innestare al suo interno un componente di Dropout.