Створення вхідних вкладень
Час почати створювати власну модель трансформера, і перший крок — вбудувати ідентифікатори вхідних токенів!
Ви визначите клас InputEmbeddings з такими параметрами:
vocab_size: розмір словника моделіd_model: розмірність вхідних вкладень
Бібліотеки torch і math вже імпортовано, а також torch.nn як nn. Вони будуть доступні впродовж усіх вправ курсу.
Ця вправа є частиною курсу
Моделі Transformer з PyTorch
Інструкції до вправи
- Присвойте розмірність моделі та розмір словника аргументам
d_modelіvocab_sizeвідповідно. - Ініціалізуйте шар вкладень.
- Поверніть вкладення, помножені на квадратний корінь із
self.d_model. - Створіть
InputEmbeddingsзvocab_size10 000 іd_model512 та застосуйте його до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)