CommencerCommencer gratuitement

Créer un modèle Transformer

Chez PyBooks, le moteur de recommandation sur lequel vous travaillez doit mieux comprendre le ressenti exprimé dans les avis des utilisateurs. Vous pensez qu’exploiter les Transformers, une architecture de pointe, peut vous y aider. Vous décidez donc de construire un modèle Transformer capable d’encoder les sentiments présents dans les avis pour lancer le projet.

Les packages suivants ont été importés pour vous : torch, nn, optim.

Les données d’entrée contiennent des phrases comme : "I love this product", "This is terrible", "Could be better" … et leurs étiquettes binaires de sentiment correspondantes, par exemple : 1, 0, 0, ...

Les données d’entrée sont divisées et converties en embeddings dans les variables suivantes : train_sentences, train_labels, test_sentences, test_labels, token_embeddings

Cet exercice fait partie du cours

Deep Learning pour le texte avec PyTorch

Afficher le cours

Instructions

  • Initialisez l’encodeur Transformer.
  • Définissez la couche entièrement connectée en fonction du nombre de classes de sentiment.
  • Dans la méthode forward, faites passer l’entrée par l’encodeur Transformer, puis par la couche linéaire.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

class TransformerEncoder(nn.Module):
    def __init__(self, embed_size, heads, num_layers, dropout):
        super(TransformerEncoder, self).__init__()
        # Initialize the encoder 
        self.encoder = nn.____(
            nn.____(d_model=embed_size, nhead=heads),
            num_layers=num_layers)
        # Define the fully connected layer
        self.fc = nn.Linear(embed_size, ____)

    def forward(self, x):
        # Pass the input through the transformer encoder 
        x = self.____(x)
        x = x.mean(dim=1) 
        return self.fc(x)

model = TransformerEncoder(embed_size=512, heads=8, num_layers=3, dropout=0.5)
optimizer = optim.Adam(model.parameters(), lr=1e-3)
criterion = nn.CrossEntropyLoss()
Modifier et exécuter le code