Attention multi-têtes

term_id: multi_head_attention

Category: basic_concepts

Definition

L’attention multi-têtes étend le mécanisme d’attention standard en l’exécutant plusieurs fois en parallèle avec différentes projections linéaires apprises. Cela permet au modèle de prêter conjointement attention à diverses informations.

Summary

Un mécanisme dans les modèles transformateurs permettant au modèle de prêter attention à des informations provenant de différents sous-espaces de représentation simultanément.

Key Concepts

  • Auto-attention
  • Projections linéaires
  • Concaténation

Use Cases

  • Traitement automatique du langage naturel (TALN)
  • Traduction automatique
  • Classification d’images avec des Transformateurs Visuels (ViT)

Code Example

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
import torch.nn as nn

class MultiHeadAttention(nn.Module):
    def __init__(self, d_model, num_heads):
        super().__init__()
        self.num_heads = num_heads
        self.d_k = d_model // num_heads
        self.W_q = nn.Linear(d_model, d_model)
        self.W_k = nn.Linear(d_model, d_model)
        self.W_v = nn.Linear(d_model, d_model)
        self.W_o = nn.Linear(d_model, d_model)

    def forward(self, x):
        # Simplified forward pass logic
        pass