ComenzarEmpieza gratis

Empezando la clase MultiHeadAttentionClass

Ahora que has definido clases para crear embeddings de tokens y embeddings posicionales, toca definir una clase para realizar atención multi-cabeza. Para empezar, configura los parámetros usados en el cálculo de la atención y las capas lineales usadas para transformar los embeddings de entrada en las matrices de consulta (query), clave (key) y valor (value), y otra para proyectar los pesos de atención combinados de vuelta a embeddings.

torch.nn se ha importado como nn.

Este ejercicio forma parte del curso

Modelos Transformer con PyTorch

Ver curso

Instrucciones del ejercicio

  • Calcula las dimensiones de embedding que procesará cada cabeza de atención, head_dim.
  • Define las tres capas de entrada (para query, key y value) y una capa de salida; elimina el parámetro de sesgo en las capas de entrada.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

class MultiHeadAttention(nn.Module):
    def __init__(self, d_model, num_heads):
        super().__init__()
        # Calculate the dimensions each head will process
        self.num_heads = num_heads
        self.d_model = d_model
        self.head_dim = ____
        # Define the three input layers and one output layer
        self.query_linear = nn.Linear(____, ____, bias=False)
        self.key_linear = nn.Linear(____)
        self.value_linear = ____
        self.output_linear = ____
Editar y ejecutar código