Aan de slagGa gratis aan de slag

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 model
  • d_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

Cursus bekijken

Oefeninstructies

  • Stel de modeldimensionaliteit en de woordenschatgrootte in op respectievelijk de argumenten d_model en vocab_size.
  • Instantieer de embeddinglaag.
  • Geef de embeddings terug, vermenigvuldigd met de vierkantswortel van self.d_model.
  • Instantieer InputEmbeddings met vocab_size van 10.000 en d_model van 512, en pas deze toe op token_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)
Code bewerken en uitvoeren