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ärstorlekd_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
Övningsinstruktioner
- Ange modelldimensionaliteten och vokabulärstorleken med argumenten
d_modelrespektivevocab_size. - Instansiera inbäddningslagret.
- Returnera inbäddningarna multiplicerade med kvadratroten av
self.d_model. - Instansiera
InputEmbeddingsmedvocab_size10 000 ochd_model512, 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)