Eingabe-Embeddings erstellen
Zeit, dein eigenes Transformer-Modell zu bauen – der erste Schritt ist, die Eingabe-Token-IDs zu einbetten!
Du definierst eine Klasse InputEmbeddings mit folgenden Parametern:
vocab_size: die Größe des Modell-Vokabularsd_model: die Dimensionalität der Eingabe-Embeddings
Die Bibliotheken torch und math sowie torch.nn als nn wurden bereits für dich importiert. Diese stehen dir in allen Übungen dieses Kurses zur Verfügung.
Diese Übung ist Teil des Kurses
<Kurs>Transformer-Modelle mit PyTorch</Kurs>Übungsanweisungen
- Setze die Modelldimensionalität und die Vokabulargröße auf die Argumente
d_modelbzw.vocab_size. - Instanziiere die Embedding-Schicht.
- Gib die Embeddings multipliziert mit der Quadratwurzel von
self.d_modelzurück. - Instanziiere
InputEmbeddingsmitvocab_sizevon 10.000 undd_modelvon 512 und wende es auftoken_idsan.
Interaktive praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
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)