Tworzenie osadzeń wejściowych
Czas zacząć budować własny model transformera – pierwszy krok to osadzenie identyfikatorów tokenów wejściowych!
Zdefiniujesz klasę InputEmbeddings z następującymi parametrami:
vocab_size: rozmiar słownika modelud_model: wymiarowość osadzeń wejściowych
Biblioteki torch i math zostały już zaimportowane, podobnie jak torch.nn jako nn. Będą one dostępne we wszystkich ćwiczeniach kursu.
To ćwiczenie jest częścią kursu
Modele Transformer w PyTorch
Instrukcje do ćwiczenia
- Przypisz wymiarowość modelu i rozmiar słownika do argumentów odpowiednio
d_modelivocab_size. - Utwórz instancję warstwy osadzeń.
- Zwróć osadzenia pomnożone przez pierwiastek kwadratowy z
self.d_model. - Utwórz instancję klasy
InputEmbeddingsz parametramivocab_sizerównym 10 000 id_modelrównym 512, a następnie zastosuj ją dotoken_ids.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
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)