Aan de slagBegin gratis

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

Bekijk cursus

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.

Interactieve oefening met praktijkervaring

Probeer deze oefening door deze voorbeeldcode aan 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