Deep Learning Academy · Leçon

Produit scalaire mis à l’échelle et multi-têtes

Prêtez attention en parallèle dans plusieurs sous-espaces.

Leçon 2 sur 413 étapes

Produit scalaire mis à l’échelle et multi-têtes est une leçon Deep Learning Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Deep Learning Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Deep Learning Academy comprend 4 leçons au total.

Le problème de l'échelle

Lorsque les vecteurs de clés sont longs, les scores des produits scalaires deviennent énormes et softmax devient extrêmement concentré. Les gradients disparaissent ; nous devons donc réduire l'échelle des scores.

Diviser par la racine de d

La solution consiste à diviser chaque score par la racine carrée de la dimension des clés. Les nombres restent ainsi dans une plage stable avant softmax.

scores = (q @ k.transpose(-2, -1)) / d_k ** 0.5

Attention à produit scalaire mis à l'échelle

Rassemblez les étapes : évaluer, mettre à l'échelle, appliquer softmax, puis mélanger les valeurs. Cette recette en quatre étapes est la célèbre attention à produit scalaire mis à l'échelle.

w = scores.softmax(dim=-1)
out = w @ v

Une tête, une seule vue

Une seule tête d'attention n'apprend qu'une manière de relier les jetons. Or la langue comporte de nombreuses relations simultanées ; une seule tête est donc limitante.

De nombreuses têtes en parallèle

L'attention multi-tête exécute plusieurs têtes d'attention côte à côte, chacune avec ses propres projections Q, K et V, et chacune se concentrant sur un sous-espace différent.

Répartir la dimension

Vous n'élargissez pas le modèle. Vous répartissez sa dimension entre les têtes, afin que chacune travaille en parallèle sur une tranche plus petite.

d_head = d_model // num_heads

Remodeler en têtes

Pour exécuter les têtes en parallèle, vous remodelez Q, K et V afin d'ajouter un axe pour les têtes, puis vous appliquez l'attention indépendamment dans chaque tête.

q = q.view(B, T, H, d_head).transpose(1, 2)

Des motifs différents

Une tête peut suivre la grammaire, tandis qu'une autre relie un pronom à son nom. Plusieurs têtes capturent les motifs variés présents dans une même entrée.

Concaténer les têtes

Après que chaque tête a produit sa sortie, vous les concaténez à nouveau en un seul vecteur de la dimension initiale du modèle.

out = out.transpose(1, 2).reshape(B, T, d_model)

Projection finale

Une dernière projection de sortie mélange les résultats concaténés des têtes, permettant au modèle de combiner les découvertes de chacune.

out = self.W_o(out)

Utiliser le composant intégré

En pratique, PyTorch fournit nn.MultiheadAttention ; vous avez donc rarement besoin de coder vous-même les remaniements. Connaître les mathématiques vous aide toutefois à corriger les erreurs.

attn = nn.MultiheadAttention(d_model, num_heads)

Vérification rapide

Vérifions pourquoi nous mettons les scores à l'échelle.

Récapitulatif

Vous avez vu comment la mise à l'échelle stabilise softmax et comment l'attention multi-tête répartit le travail entre des têtes parallèles, avant de les concaténer et de les projeter. Vous progressez très bien !

Gratuit pour commencer

Apprends Python avec un tuteur IA — gratuit

Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.

Cours
30
Leçons
120

Questions Fréquemment Posées

La leçon « Produit scalaire mis à l’échelle et multi-têtes » est-elle gratuite ?

Oui — le texte complet de « Produit scalaire mis à l’échelle et multi-têtes » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Deep Learning Academy, passe à CoddyKit PRO. Le cours Deep Learning Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Produit scalaire mis à l’échelle et multi-têtes » ?

Prêtez attention en parallèle dans plusieurs sous-espaces. Tu pratiques Deep Learning Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Deep Learning Academy ?

Aucune expérience préalable n'est requise. Deep Learning Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.

Combien de temps prend la leçon « Produit scalaire mis à l’échelle et multi-têtes » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Deep Learning Academy ?

Oui. Chaque leçon Deep Learning Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Auto-attention : requête, clé et valeur
  2. Produit scalaire mis à l’échelle et multi-têtes
  3. Encodage positionnel pour représenter l’ordre
  4. Empiler un bloc d’encodeur Transformer
← Retour à Deep Learning Academy