ComeçarComece de graça

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 exercício faz parte do curso

Modelos Transformer com PyTorch

Ver curso

Instruções do exercício

  • 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.

Exercício interativo prático

Experimente este exercício 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 o código