Créer les intégrations d'entrée
C'est le moment de commencer à bâtir votre propre modèle de transformer, et la première étape consiste à intégrer les identifiants de jetons 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 dimensionnalité des intégrations 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 chargées dans l'ensemble des exercices du cours.
Cette activité fait partie du cours
Modèles Transformer avec PyTorch
Instructions de l’exercice
- Affectez la dimension du modèle et la taille du vocabulaire aux arguments
d_modeletvocab_size, respectivement. - Instanciez la couche d'intégration.
- Retournez les intégrations multipliées 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 ce code d’exemple.
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)