Εξηγήστε λεπτομερώς την πολυκεφαλική προσοχή: τι είναι τα Q/K/V, πώς υπολογίζονται τα βάρη προσοχής, γιατί υπάρχουν πολλά κεφάλια.
sobes.tech AI
Απάντηση από AI
Πολυκεφαλική προσοχή — είναι ένας βασικός μηχανισμός στους μετασχηματιστές, που επιτρέπει στο μοντέλο να εστιάζει ταυτόχρονα σε διαφορετικά μέρη της εισερχόμενης ακολουθίας.
-
Q (Ερώτημα), K (Κλειδί), V (Τιμή) — είναι τρεις μήτρες που προκύπτουν από τα εισερχόμενα δεδομένα μέσω εκπαιδεύσιμων γραμμικών μετασχηματισμών. Κάθε θέση στην ακολουθία μετατρέπεται σε τρεις διανυσματικές αναπαραστάσεις:
- Ερώτημα — το ερώτημα στο οποίο αναζητείται σχετική πληροφορία.
- Κλειδί — το κλειδί με το οποίο συγκρίνεται το ερώτημα.
- Τιμή — η τιμή που επιστρέφεται ως απάντηση στο ερώτημα.
-
Υπολογισμός βαρών προσοχής:
- Υπολογίζεται το εσωτερικό γινόμενο μεταξύ Query και Key για κάθε ζεύγος θέσεων.
- Το αποτέλεσμα κλιμακώνεται (συνήθως διαιρείται με την τετραγωνική ρίζα του μήκους των κλειδιών) για σταθεροποίηση των βαθμίδων.
- Εφαρμόζεται softmax για να ληφθεί μια κατανομή πιθανοτήτων.
- Τα βάρη πολλαπλασιάζονται με τις αντίστοιχες Τιμές και τα αποτελέσματα αθροίζονται — αυτό είναι η έξοδος της προσοχής.
-
Γιατί πολλαπλές κεφαλές (multi-head); Πολλές κεφαλές επιτρέπουν στο μοντέλο να βλέπει την πληροφορία από διαφορετικές "γωνίες θέασης", δηλαδή κάθε κεφαλή μαθαίνει να αναδεικνύει διαφορετικές εξαρτήσεις και μοτίβα στα δεδομένα. Αυτό αυξάνει την εκφραστικότητα και την ποιότητα του μοντέλου.
Απλοποιημένο παράδειγμα:
# Για κάθε κεφαλή:
Q_i = X * W_Q_i
K_i = X * W_K_i
V_i = X * W_V_i
βάρη_προσοχής = softmax((Q_i @ K_i.T) / sqrt(d_k))
έξοδος_i = βάρη_προσοχής @ V_i
# Συνδυασμός των εξόδων όλων των κεφαλών
έξοδος = concat(έξοδος_1, ..., έξοδος_h) * W_O
Όπου W_Q_i, W_K_i, W_V_i, W_O — είναι εκπαιδεύσιμες μήτρες, d_k — το μήκος των κλειδιών, και h — ο αριθμός των κεφαλών.