Criando embeddings de entrada
Hora de começar a criar seu próprio modelo transformer, e o primeiro passo é transformar os IDs dos tokens de entrada em embeddings!
Você vai definir uma classe InputEmbeddings com os seguintes parâmetros:
vocab_size: o tamanho do vocabulário do modelod_model: a dimensionalidade dos embeddings de entrada
As bibliotecas torch e math já foram importadas para você, assim como torch.nn como nn. Elas serão usadas ao longo dos exercícios do curso.
Este exercício faz parte do curso
Modelos Transformer com PyTorch
Instruções do exercício
- Defina a dimensionalidade do modelo e o tamanho do vocabulário a partir dos argumentos
d_modelevocab_size, respectivamente. - Instancie a camada de embedding.
- Retorne os embeddings multiplicados pela raiz quadrada de
self.d_model. - Instancie
InputEmbeddingscomvocab_sizede 10.000 ed_modelde 512, e aplique-a atoken_ids.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
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)