Invoer-embeddings maken
Tijd om je eigen transformermodel te bouwen. De eerste stap is het embedden van de token-ID’s van de invoer!
Je definieert een klasse InputEmbeddings met de volgende parameters:
vocab_size: de grootte van de woordenschat van het modeld_model: de dimensionaliteit van de invoer-embeddings
De bibliotheken torch en math zijn al voor je geïmporteerd, evenals torch.nn als nn. Deze blijven beschikbaar in alle oefeningen van de cursus.
Deze oefening maakt deel uit van de cursus
Transformermodels met PyTorch
Oefeninstructies
- Stel de modeldimensionaliteit en de woordenschatgrootte in op respectievelijk de argumenten
d_modelenvocab_size. - Instantieer de embeddinglaag.
- Geef de embeddings terug, vermenigvuldigd met de vierkantswortel van
self.d_model. - Instantieer
InputEmbeddingsmetvocab_sizevan 10.000 end_modelvan 512, en pas deze toe optoken_ids.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
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)