НачатьНачать бесплатно

Создание входных эмбеддингов

Пора приступить к созданию собственной модели трансформера! Первый шаг — преобразование входных идентификаторов токенов в эмбеддинги (векторные представления).

Вы определите класс InputEmbeddings со следующими параметрами:

  • vocab_size: размер словаря модели
  • d_model: размерность входных эмбеддингов

Библиотеки torch и math, а также модуль torch.nn под псевдонимом nn уже импортированы. Они будут использоваться во всех упражнениях курса.

Это упражнение является частью курса

Трансформерные модели с PyTorch

Посмотреть курс

Инструкции к упражнению

  • Присвойте атрибутам размерности модели и размера словаря значения аргументов d_model и vocab_size соответственно.
  • Создайте экземпляр слоя эмбеддингов.
  • Верните эмбеддинги, умноженные на квадратный корень из self.d_model.
  • Создайте экземпляр InputEmbeddings с параметрами vocab_size равным 10 000 и d_model равным 512, и примените его к token_ids.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

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)
Редактировать и запускать код