Créer les embeddings d’entrée
Il est temps de commencer à créer votre propre modèle transformer, et la première étape consiste à intégrer les identifiants de tokens en entrée !
Vous allez définir une classe InputEmbeddings avec les paramètres suivants :
vocab_size: la taille du vocabulaire du modèled_model: la dimension des embeddings d’entrée
Les bibliothèques torch et math ont été importées pour vous, ainsi que torch.nn sous le nom nn. Elles seront utilisées tout au long des exercices du cours.
Cet exercice fait partie du cours
Modèles Transformer avec PyTorch
Instructions
- Affectez la dimension du modèle et la taille du vocabulaire aux arguments
d_modeletvocab_size, respectivement. - Instanciez la couche d’embedding.
- Retournez les embeddings multipliés par la racine carrée de
self.d_model. - Instanciez
InputEmbeddingsavec unvocab_sizede 10 000 et und_modelde 512, puis appliquez-le àtoken_ids.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
class InputEmbeddings(nn.Module):
def __init__(self, vocab_size: int, d_model: int) -> None:
super().__init__()
# Set the model dimensionality and vocabulary size
self.d_model = ____
self.vocab_size = ____
# Instantiate the embedding layer
self.embedding = ____
def forward(self, x):
# Return the embeddings multiplied by the square root of d_model
return ____
# Instantiate InputEmbeddings and apply it to token_ids
embedding_layer = ____
output = ____
print(output.shape)