Ο μηχανισμός προσοχής σε μετασχηματιστές βελτιώνει θεμελιωδώς την παραγωγή κώδικα, επιτρέποντας στο μοντέλο να επικεντρώνεται επιλεκτικά σε διάφορα μέρη της ακολουθίας εισόδου ενώ παράγει κάθε διακριτικό εξόδου. Αυτό έχει ως αποτέλεσμα περισσότερη δημιουργία με γνώμονα και συνεκτικής δημιουργίας κώδικα. Ο μηχανισμός προσοχής βοηθά στη λήψη εξαρτήσεων μεγάλης εμβέλειας, δομικών προτύπων και σημασιολογικών αποχρώσεων στον πηγαίο κώδικα, οι οποίες είναι ζωτικής σημασίας για τη δημιουργία συντακτικά σωστών και λογικά συνεπή προγράμματα. Οι πολύπλευρες δυνατότητές του παρέχουν σημαντικά πλεονεκτήματα έναντι των παραδοσιακών μοντέλων ακολουθίας προς ακολουθία που βασίζονται σε παραστάσεις πλαισίου σταθερού μήκους.
Βασική έννοια της προσοχής στους μετασχηματιστές
Στους μετασχηματιστές, η προσοχή είναι μια τεχνική που υπολογίζει ένα σύνολο διανυσμάτων εξόδου ως σταθμισμένα ποσά διανυσμάτων τιμών εισόδου. Τα βάρη υπολογίζονται δυναμικά με βάση τις βαθμολογίες συμβατότητας μεταξύ ενός ερωτήματος (που αντιπροσωπεύει την τρέχουσα θέση για την οποία παράγεται μια έξοδος) και ένα σύνολο βασικών φορέων (που αντιπροσωπεύουν όλες τις θέσεις στην ακολουθία εισόδου). Αυτό επιτρέπει στο μοντέλο να "παρακολουθεί" ή να επικεντρωθεί σε σχετικά τμήματα της εισόδου κατά τη δημιουργία κάθε διακριτικού, αντί να επεξεργάζεται ομοιόμορφα ολόκληρη την ακολουθία ή να το συμπιέζει σε ένα φορέα σταθερού μεγέθους.
Ο βασικός τύπος για κλιμακωτή προσοχή dot-προϊόν είναι:
$$
\ text {Προσοχή} (q, k, v) = \ text {softMax} \ left (\ frac {qk^t} {\ sqrt {d_k> \ right) v
$$
Όπου $$ Q $$, $$ k $$ και $$ V $$ είναι μήτρες ερωτημάτων, κλειδιών και αξιών, αντίστοιχα, και το $$ D_K $$ είναι η διάσταση των κλειδιών που χρησιμοποιούνται για την κλιμάκωση. Η συνάρτηση SoftMax μετατρέπει τις βαθμολογίες προϊόντων DOT μεταξύ των ερωτημάτων και των κλειδιών σε κατανομή πιθανότητας, η οποία στη συνέχεια χρησιμοποιείται για τη βαρύτητα των τιμών.
Καταγραφή του πλαισίου και των εξαρτήσεων στον κώδικα
Ο κώδικας προγραμματισμού είναι εγγενώς δομημένος με εξαρτήσεις μεγάλης εμβέλειας. Οι μεταβλητές που δηλώνονται στην αρχή μιας συνάρτησης μπορούν να χρησιμοποιηθούν σε πολλά μέρη πολύ αργότερα. Τα παραδοσιακά μοντέλα όπως τα RNN ή τα CNN αγωνίστηκαν για να διατηρήσουν τέτοιες σχέσεις συμφραζομένων μεγάλων επιδόσεων λόγω της διαδοχικής ή τοπικής τους δεκτικής φύσης. Αντίθετα, ο μηχανισμός αυτο-επιτυχίας σε μετασχηματιστές μπορεί να συσχετίσει κάθε διακριτικό σε κάθε άλλο διακριτικό άμεσα, ανεξάρτητα από την απόσταση τους στην ακολουθία.
Η αυτο-επιτυχία επιτρέπει σε κάθε θέση του συμβολικού να συλλέγει πληροφορίες από όλες τις άλλες θέσεις στην ακολουθία εισόδου ταυτόχρονα. Για παράδειγμα, ενώ παράγει ένα βραχίονα κλεισίματος, το μοντέλο μπορεί να παρακολουθήσει το αντίστοιχο βραχίονα ανοίγματος που μπορεί να είναι αρκετές γραμμές νωρίτερα. Αυτή η πλήρης συνδεσιμότητα επιτρέπει στο μοντέλο να κωδικοποιεί τη συντακτική και σημασιολογική δομή πιο αποτελεσματικά, η οποία είναι απαραίτητη για τη δημιουργία κώδικα χωρίς σφάλματα.
Προσοχή πολλαπλών κεφαλών για διαφορετικά πλαίσια
Οι μετασχηματιστές χρησιμοποιούν προσοχή πολλαπλών κεφαλών, όπου εκτελούνται πολλαπλές παράλληλες επιχειρήσεις προσοχής (κεφαλές) σε διαφορετικές γραμμικές προβολές των ενσωματωμένων εισροών. Κάθε κεφάλι μαθαίνει να επικεντρώνεται σε διαφορετικές πτυχές της εισόδου, όπως μεταβλητά ονόματα, κατασκευές ροής ελέγχου ή όρια λειτουργίας. Αυτή η ρύθμιση πολλαπλών κεφαλών προσφέρει πολλά οφέλη:
- Επιτρέπει στο μοντέλο να παρευρίσκεται από κοινού σε πληροφορίες από διαφορετικούς υπο -χώρους εκπροσώπησης.
- Συνδυάζει πολλαπλές προοπτικές στην ακολουθία εισόδου, διευρύνοντας το πεδίο εφαρμογής του τι μπορεί να μάθει το μοντέλο.
- Βελτιώνει την ευρωστία μη βασιζόμενοι σε μια μόνο αναπαράσταση προσοχής.
Οι εξόδους αυτών των πολλαπλών κεφαλών είναι συνδυασμένες και γραμμικά μετασχηματισμένες για να σχηματίσουν την τελική αναπαράσταση που χρησιμοποιείται για τη δημιουργία μαρκών εξόδου.
Προσοχή κωδικοποιητή για την ευθυγράμμιση του στόχου προέλευσης
Στην παραγωγή κώδικα, οι μετασχηματιστές χρησιμοποιούν συνήθως μια αρχιτεκτονική κωδικοποιητή-μεταφορέα, όπου ο κωδικοποιητής επεξεργάζεται την περιγραφή εισόδου (π.χ. προδιαγραφή προβλημάτων φυσικής γλώσσας) σε μια συμφραζόμενη αναπαράσταση και ο αποκωδικοποιητής παράγει την αντίστοιχη ακολουθία κώδικα. Ο αποκωδικοποιητής χρησιμοποιεί προσοχή κωδικοποιητή-μεταφορέα (διασταυρούμενη προσθήκη) για να εστιάσει επιλεκτικά σε σχετικά τμήματα της κωδικοποιημένης εισόδου σε κάθε βήμα αποκωδικοποίησης. Αυτή η ευθυγράμμιση μεταξύ εισόδου και εξόδου βοηθά το μοντέλο να παράγει σχετικά και ακριβή αποσπάσματα κώδικα που ταιριάζουν στενά με την πρόθεση που εκφράζεται στη γραμμή εισόδου.