Crear embeddings de entrada
¡Es hora de empezar a crear tu propio modelo transformer, y el primer paso es generar los embeddings de los IDs de los tokens de entrada!
Definirás una clase InputEmbeddings con los siguientes parámetros:
vocab_size: el tamaño del vocabulario del modelod_model: la dimensionalidad de los embeddings de entrada
Las librerías torch y math ya se han importado por ti, así como torch.nn como nn. Se utilizarán a lo largo de los ejercicios del curso.
Este ejercicio forma parte del curso
Modelos Transformer con PyTorch
Instrucciones del ejercicio
- Asigna la dimensionalidad del modelo y el tamaño del vocabulario a los argumentos
d_modelyvocab_size, respectivamente. - Instancia la capa de embedding.
- Devuelve los embeddings multiplicados por la raíz cuadrada de
self.d_model. - Instancia
InputEmbeddingsconvocab_sizede 10.000 yd_modelde 512, y aplícalo atoken_ids.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
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)