Comece agoraComece grátis

Iniciando a MultiHeadAttentionClass

Agora que você definiu classes para criar embeddings de tokens e embeddings posicionais, é hora de definir uma classe para executar a atenção multihead. Para começar, configure os parâmetros usados no cálculo da atenção e as camadas lineares usadas para transformar os embeddings de entrada em matrizes de query, key e value, além de uma para projetar os pesos de atenção combinados de volta em embeddings.

torch.nn foi importado como nn.

Este exercicio faz parte do curso

Modelos Transformer com PyTorch

Ver curso

Instruções do exercicio

  • Calcule as dimensões do embedding que cada cabeça de atenção processará, head_dim.
  • Defina as três camadas de entrada (para query, key e value) e uma camada de saída; remova o parâmetro de bias das camadas de entrada.

exercicio interativo prático

Tente este exercicio completando este código de exemplo.

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 e Executar Código