← Tous les exercices
L'attention pour un token
Partie 5 · ★★
Pour « toux » : (1) un score avec chaque token de la phrase, lui compris (produit scalaire) ; (2) des poids = softmax des scores ; (3) le nouveau vecteur = somme des poids × vecteurs. Cours : x = [[1;0], [0;1], [1;1]], scores 1, 1, 2, poids 0,21 ; 0,21 ; 0,58, nouveau vecteur de « toux » = [0,79 ; 0,79].
Les fonctions produit_scalaire et softmax sont fournies. Complète attention_token(i, x) pour le token à la position i.
def produit_scalaire(u, x): return sum(a * b for a, b in zip(u, x)) def softmax(scores): m = max(scores) exps = [math.exp(s - m) for s in scores] total = sum(exps) return [e / total for e in exps] x = [[1, 0], [0, 1], [1, 1]] def attention_token(i, x): scores = [produit_scalaire(x[i], v) for v in ___] poids = softmax(scores) nouveau = [0, 0] for p, v in zip(poids, x): nouveau = [n + p * c for n, c in zip(nouveau, ___)] return nouveau
Ctrl/⌘+Entrée