Zacznij terazZacznij za darmo

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 modelu
  • d_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

Zobacz kurs

Instrukcje do ćwiczenia

  • Przypisz wymiarowość modelu i rozmiar słownika do argumentów odpowiednio d_model i vocab_size.
  • Utwórz instancję warstwy osadzeń.
  • Zwróć osadzenia pomnożone przez pierwiastek kwadratowy z self.d_model.
  • Utwórz instancję klasy InputEmbeddings z parametrami vocab_size równym 10 000 i d_model równym 512, a następnie zastosuj ją do token_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)
Edytuj i uruchom kod