Kom igångKom igång gratis

Skapa inbäddningar av indata

Nu är det dags att börja bygga din egen transformermodell – och första steget är att bädda in token-ID:na från indata!

Du ska definiera en klass InputEmbeddings med följande parametrar:

  • vocab_size: modellens vokabulärstorlek
  • d_model: dimensionaliteten hos indatainbäddningarna

Biblioteken torch och math är redan importerade, liksom torch.nn som nn. Dessa används genomgående i kursens övningar.

Den här övningen är en del av kursen

Transformermodeller med PyTorch

Visa kurs

Övningsinstruktioner

  • Ange modelldimensionaliteten och vokabulärstorleken med argumenten d_model respektive vocab_size.
  • Instansiera inbäddningslagret.
  • Returnera inbäddningarna multiplicerade med kvadratroten av self.d_model.
  • Instansiera InputEmbeddings med vocab_size 10 000 och d_model 512, och applicera det på token_ids.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

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)
Redigera och kör kod