Ολόκληρη η ιδέα σε μία αλυσίδα

Να ολόκληρο το ταξίδι. Μην ανησυχείτε αν διαβάζεται σαν αίνιγμα· το υπόλοιπο άρθρο ξεδιπλώνει κάθε κρίκο.

Σπάστε μια πρόταση σε κομμάτια και παίρνετε tokens. Μετατρέψτε τα tokens σε λίστες αριθμών και παίρνετε embeddings. Αφήστε κάθε token να κάνει μια ερώτηση και παίρνετε ένα query· αφήστε τα υπόλοιπα να απαντήσουν και παίρνετε keys και values. Συγκρίνετε τα queries με τα keys και παίρνετε βαθμολογίες προσοχής. Κανονικοποιήστε τις με softmax και παίρνετε βάρη προσοχής. Χρησιμοποιήστε τα βάρη για να αναμίξετε τα values και παίρνετε πλαίσιο. Κάντε το για κάθε token και παίρνετε self-attention. Προσθέστε ένα feed-forward δίκτυο, residual connections και κανονικοποίηση και παίρνετε ένα transformer block. Στοιβάξτε τα blocks και παίρνετε έναν transformer. Εκπαιδεύστε τον να προβλέπει το επόμενο token και παίρνετε ένα γλωσσικό μοντέλο. Διδάξτε του να ακολουθεί οδηγίες και να μαθαίνει από ανθρώπινη ανατροφοδότηση και παίρνετε κάτι κοντά στο ChatGPT.

Βήμα 1: Σπάστε μια πρόταση σε κομμάτια και παίρνετε tokens

Ένας υπολογιστής δεν μπορεί να διαβάσει λέξεις όπως εσείς. Το πρώτο πράγμα που κάνει ένα γλωσσικό μοντέλο είναι να κόψει το κείμενο σε μικρά κομμάτια που λέγονται tokens. Ένα token μπορεί να είναι ολόκληρη λέξη («interview»), μέρος λέξης («inter» + «view»), σημείο στίξης ή ακόμα και ένα κενό προσκολλημένο σε μια λέξη.

Γιατί όχι ολόκληρες λέξεις; Είναι πάρα πολλές και νέες εμφανίζονται κάθε μέρα. Τα κομμάτια λέξεων επιτρέπουν σε ένα μοντέλο να χειρίζεται οποιοδήποτε κείμενο, συμπεριλαμβανομένων σπάνιων ονομάτων και τυπογραφικών λαθών, με σταθερό λεξιλόγιο δεκάδων χιλιάδων tokens. Κάθε token σε αυτό το λεξιλόγιο παίρνει έναν αριθμό ID. Η πρόταση «I aced the interview» θα μπορούσε να γίνει κάτι σαν [40, 1734, 279, 7274].

Ένα token είναι περίπου τα τρία τέταρτα μιας αγγλικής λέξης, οπότε ένα «παράθυρο πλαισίου 128.000 tokens» σημαίνει περίπου 95.000 λέξεις που μπορεί να λάβει υπόψη το μοντέλο ταυτόχρονα.

Βήμα 2: Μετατρέψτε τα tokens σε διανύσματα και παίρνετε embeddings

Ένα ID token όπως το 7274 είναι απλώς μια ετικέτα. Δεν λέει τίποτα για το νόημα. Έτσι το μοντέλο αναζητά κάθε ID σε έναν μεγάλο πίνακα και το αντικαθιστά με μια μακριά λίστα αριθμών, συχνά εκατοντάδων ή χιλιάδων. Αυτή η λίστα λέγεται διάνυσμα και το διάνυσμα που αναπαριστά ένα token λέγεται embedding.

Κανείς δεν γράφει αυτούς τους αριθμούς με το χέρι. Ξεκινούν τυχαίοι και προσαρμόζονται κατά την εκπαίδευση μέχρι να αποτυπώνουν τι σημαίνει κάθε token και πώς χρησιμοποιείται.

Βήμα 3: Τοποθετήστε τα embeddings στον χώρο και το νόημα γίνεται γεωμετρία

Αν δείτε κάθε embedding ως τις συντεταγμένες ενός σημείου, κάθε token γίνεται μια θέση σε έναν τεράστιο, πολυδιάστατο χώρο. Δεν μπορείτε να φανταστείτε χίλιες διαστάσεις, αλλά η ιδέα δουλεύει σε δύο ή τρεις.

Σε αυτόν τον χώρο, τα tokens με παρόμοιο νόημα καταλήγουν κοντά το ένα στο άλλο. Ο «μισθός» βρίσκεται κοντά στην «αμοιβή» και στις «αποδοχές». Η «συνέντευξη» βρίσκεται κοντά στη «συνάντηση» και στην «πρόσληψη». Ακόμα και οι κατευθύνσεις μπορούν να φέρουν νόημα: το διάσημο παράδειγμα είναι ότι το βήμα από το «άνδρας» στο «γυναίκα» δείχνει περίπου προς την ίδια κατεύθυνση με το βήμα από το «βασιλιάς» στο «βασίλισσα».

Τα embeddings από μόνα τους δεν λένε πού βρίσκεται ένα token και η σειρά αλλάζει το νόημα: το «ο υποψήφιος πήρε συνέντευξη από τον διευθυντή» δεν είναι το ίδιο με το «ο διευθυντής πήρε συνέντευξη από τον υποψήφιο». Γι' αυτό τα μοντέλα προσθέτουν και πληροφορία θέσης σε κάθε διάνυσμα.

Βήμα 4: Κάθε token κάνει και απαντά σε ερωτήσεις: queries, keys και values

Οι λέξεις αλλάζουν νόημα με τις γειτονικές τους: η λέξη «bank» σημαίνει κάτι διαφορετικό στο «river bank» και στο «bank account». Έτσι κάθε token πρέπει να κοιτάζει τα υπόλοιπα. Αυτή είναι η πιο σημαντική ιδέα της σύγχρονης AI.

Από το embedding κάθε token, το μοντέλο δημιουργεί τρία νέα διανύσματα πολλαπλασιάζοντάς το με τρεις μαθημένους πίνακες αριθμών:

Σκεφτείτε μια βιβλιοθήκη: το query είναι η αναζήτησή σας, τα keys είναι οι τίτλοι στα ράφια και τα values είναι αυτό που υπάρχει μέσα στα βιβλία.

Βήμα 5: Συγκρίνετε ένα query με τα keys και παίρνετε βαθμολογίες προσοχής

Κάθε token συγκρίνει το query του με το key κάθε token που μπορεί να δει, χρησιμοποιώντας ένα εσωτερικό γινόμενο (dot product): πολλαπλασιάστε τα δύο διανύσματα αριθμό προς αριθμό και προσθέστε τα αποτελέσματα. Παρόμοιες κατευθύνσεις δίνουν μεγάλο αποτέλεσμα· άσχετες δίνουν μικρό ή αρνητικό.

Το αποτέλεσμα είναι ένα σύνολο βαθμολογιών προσοχής, μία για κάθε ζεύγος tokens. Μια υψηλή βαθμολογία σημαίνει «αυτό το άλλο token φαίνεται σχετικό με την ερώτησή μου». Στην πρόταση «The recruiter called the candidate because she liked her portfolio», το token «her» πρέπει να παράγει υψηλή βαθμολογία με το «candidate» και χαμηλότερη με το «recruiter».

Βήμα 6: Κανονικοποιήστε τις βαθμολογίες με softmax και παίρνετε βάρη προσοχής

Οι ακατέργαστες βαθμολογίες μπορούν να έχουν οποιοδήποτε μέγεθος, θετικό ή αρνητικό. Μια συνάρτηση που λέγεται softmax τις μετατρέπει σε θετικές τιμές που αθροίζουν ακριβώς στο 1, δίνοντας στις μεγαλύτερες βαθμολογίες πολύ μεγαλύτερο μερίδιο.

Αυτά τα μερίδια είναι τα βάρη προσοχής, σαν ποσοστά εστίασης. Ένα απλοποιημένο παράδειγμα για το «her»:

Άλλο tokenΑκατέργαστη βαθμολογίαΒάρος προσοχής
candidate4,00,84
recruiter2,00,11
called1,00,04
the−1,00,01

Έτσι το «her» θα δώσει περίπου το 84% της προσοχής του στο «candidate».

Βήμα 7: Χρησιμοποιήστε τα βάρη για να συνδυάσετε τα values και παίρνετε πλαίσιο

Τώρα κάθε token χτίζει ένα νέο διάνυσμα παίρνοντας μια σταθμισμένη ανάμειξη των values: 84% από το value του «candidate», 11% από το «recruiter» και ούτω καθεξής. Το αποτέλεσμα είναι μια νέα αναπαράσταση του «her» που φέρει πληροφορία για το ποιος είναι πραγματικά το «her».

Αυτό σημαίνει πλαίσιο (context) μέσα σε ένα μοντέλο. Η λέξη δεν είναι πια απλώς το «her» αφηρημένα· είναι «το her, που σημαίνει τον υποψήφιο, σε μια πρόταση για ένα portfolio».

Βήμα 8: Αφήστε κάθε token να το κάνει αυτό και παίρνετε self-attention

Όταν κάθε token τρέχει αυτή τη διαδικασία ταυτόχρονα, λέγεται self-attention: η πρόταση που δίνει προσοχή στον εαυτό της.

Δύο βελτιώσεις το κάνουν ισχυρό:

Βήμα 9: Προσθέστε feed-forward, residuals και κανονικοποίηση και παίρνετε ένα transformer block

Η προσοχή μοιράζει πληροφορία· το μοντέλο πρέπει επίσης να την επεξεργαστεί. Τρία ακόμα μέρη συμπληρώνουν τη μονάδα:

Προσοχή συν feed-forward, τυλιγμένα με residual connections και κανονικοποίηση, είναι ένα transformer block.

Βήμα 10: Στοιβάξτε τα blocks και παίρνετε έναν transformer

Ένα block δίνει μέτρια κατανόηση. Στοιβάξτε δεκάδες, με την έξοδο του ενός να τροφοδοτεί το επόμενο, και παίρνετε έναν transformer, την αρχιτεκτονική που παρουσίασαν ερευνητές της Google στην εργασία του 2017 «Attention Is All You Need». Είναι το «T» στο GPT, που σημαίνει Generative Pre-trained Transformer.

Κάθε επίπεδο βελτιώνει την εικόνα: τα πρώιμα επίπεδα τείνουν να αποτυπώνουν τη γραμματική, τα μεταγενέστερα πιο αφηρημένες ιδέες όπως τον τόνο και την πρόθεση. Τα βάρη μέσα σε όλους αυτούς τους πίνακες, οι αριθμοί που μαθαίνει το μοντέλο, είναι αυτό που εννοούν οι άνθρωποι με τις παραμέτρους. Τα μεγάλα μοντέλα έχουν δισεκατομμύρια.

Βήμα 11: Εκπαιδεύστε το να προβλέπει το επόμενο token και παίρνετε ένα γλωσσικό μοντέλο

Μέχρι τώρα έχουμε μια μηχανή που μετατρέπει το κείμενο σε διανύσματα με επίγνωση πλαισίου. Τώρα της δίνουμε μια δουλειά. Στο τέλος της στοίβας, το μοντέλο μετατρέπει το διάνυσμα του τελευταίου token σε βαθμολογία για κάθε token του λεξιλογίου του και μετά εφαρμόζει ξανά softmax για να πάρει μια πιθανότητα για καθένα. Με άλλα λόγια: «Δεδομένων όλων όσων έχουν προηγηθεί, τι έρχεται μετά;»

Κατά την εκπαίδευση, το μοντέλο διαβάζει τεράστιες ποσότητες κειμένου: βιβλία, άρθρα, κώδικα, ιστοσελίδες. Σε κάθε θέση, μαντεύει το επόμενο token, συγκρίνει την εικασία του με το πραγματικό και μετακινεί ελαφρά όλες τις παραμέτρους του προς την κατεύθυνση που θα έκανε τη σωστή απάντηση πιο πιθανή. Επαναλάβετε το τρισεκατομμύρια φορές και το αποτέλεσμα είναι ένα γλωσσικό μοντέλο.

Αυτή η απλή εργασία διδάσκει πολλά: για να προβλέψει την επόμενη λέξη σε ένα σχολικό βιβλίο ή ένα συμβόλαιο, ένα μοντέλο πρέπει να μάθει γραμματική, γεγονότα και μοτίβα συλλογισμού.

Η παραγωγή κειμένου είναι απλώς αυτή η πρόβλεψη σε επανάληψη. Το μοντέλο διαλέγει ένα επόμενο token, συνήθως δειγματοληπτώντας από τις πιθανότητες (μια ρύθμιση που λέγεται temperature ελέγχει πόσο τολμηρή είναι η επιλογή), το προσθέτει στο κείμενο και προβλέπει ξανά, ένα token τη φορά.

Βήμα 12: Διδάξτε του να ακολουθεί οδηγίες και να μαθαίνει από ανατροφοδότηση και παίρνετε ChatGPT

Ένα μοντέλο εκπαιδευμένο μόνο στην πρόβλεψη του επόμενου token είναι μια λαμπρή αυτόματη συμπλήρωση, όχι βοηθός. Αν του κάνετε μια ερώτηση, μπορεί να απαντήσει με άλλες τρεις ερωτήσεις. Δύο ακόμα στάδια εκπαίδευσης το διορθώνουν:

  1. Instruction tuning: το μοντέλο εκπαιδεύεται σε πολλά παραδείγματα αιτήματος που ακολουθείται από καλή, χρήσιμη απάντηση. Μαθαίνει το μοτίβο «κάποιος ρωτά, εγώ απαντώ χρήσιμα».
  2. Μάθηση από ανθρώπινη ανατροφοδότηση: άνθρωποι συγκρίνουν ζεύγη απαντήσεων του μοντέλου και διαλέγουν την καλύτερη. Αυτές οι προτιμήσεις χρησιμοποιούνται για να κατευθύνουν περαιτέρω το μοντέλο προς απαντήσεις χρήσιμες, ακριβείς και ασφαλείς. Αυτό είναι γνωστό ως reinforcement learning from human feedback, ή RLHF.

Προσθέστε μια διεπαφή συνομιλίας και παίρνετε κάτι κοντά στο ChatGPT, το Claude ή το Gemini: ο ίδιος transformer, διαμορφωμένος να λειτουργεί ως βοηθός.

Όλα μαζί: το ταξίδι μιας πρότασης

Φανταστείτε ότι πληκτρολογείτε «The hardest interview question is…» Σε κλάσμα του δευτερολέπτου:

  1. Το κείμενο χωρίζεται σε tokens και καθένα γίνεται embedding με πληροφορία θέσης.
  2. Σε κάθε transformer block, κάθε token σχηματίζει query, key και value, βαθμολογεί τα προηγούμενα tokens, μετατρέπει τις βαθμολογίες σε βάρη και αναμειγνύει τα values τους. Το «Hardest» συνδέεται με το «question» και η φράση κατανοείται ως θέμα συνέντευξης.
  3. Τα feed-forward επίπεδα επεξεργάζονται κάθε ενημερωμένο διάνυσμα· τα residuals και η κανονικοποίηση κρατούν τα πάντα σταθερά· δεκάδες blocks το βελτιώνουν περαιτέρω.
  4. Το τελικό διάνυσμα γίνεται πιθανότητες πάνω στο λεξιλόγιο. Ένα token όπως το «tell» βαθμολογείται ψηλά· το μοντέλο το επιλέγει, το προσθέτει και ξεκινά ξανά.

Σύντομο γλωσσάρι

ΌροςΣε απλά ελληνικά
TokenΈνα μικρό κομμάτι κειμένου, συχνά λέξη ή μέρος λέξης
ΔιάνυσμαΜια διατεταγμένη λίστα αριθμών
EmbeddingΤο διάνυσμα που αναπαριστά το νόημα ενός token
Query / Key / ValueΤι ρωτά ένα token / τι προσφέρει / τι μοιράζεται
Βαθμολογία προσοχήςΠόσο σχετικό φαίνεται ένα token με ένα άλλο
SoftmaxΜετατρέπει βαθμολογίες σε μερίδια που αθροίζουν στο 1
Βάρος προσοχήςΤο μερίδιο εστίασης που δίνει ένα token σε ένα άλλο
ΠλαίσιοΤο νόημα ενός token ενημερωμένο από τα γειτονικά του
Self-attentionΚάθε token που δίνει προσοχή στα tokens που μπορεί να δει
Transformer blockΠροσοχή + feed-forward + residuals + κανονικοποίηση
ΠαράμετροιΟι μαθημένοι αριθμοί μέσα στο μοντέλο
Παράθυρο πλαισίουΠόσα tokens μπορεί να λάβει υπόψη το μοντέλο ταυτόχρονα

Γιατί έχει σημασία για την καριέρα σας

Αν παίρνετε συνέντευξη για θέση που αγγίζει την AI, το να εξηγείτε τα tokens ή την προσοχή με απλά λόγια είναι πραγματικό πλεονέκτημα. Σας κάνει επίσης εξυπνότερο χρήστη εργαλείων AI: θα καταλάβετε γιατί μπορούν να δηλώνουν με σιγουριά λάθος γεγονότα (προβλέπουν πιθανό κείμενο, όχι επαληθευμένη αλήθεια) και γιατί μια σαφής, συγκεκριμένη εντολή δίνει καλύτερες απαντήσεις. Για πρακτικές χρήσεις, δείτε τους οδηγούς μας για το πώς να χρησιμοποιείτε εργαλεία AI για εξάσκηση σε συνεντεύξεις και για το τι αλλάζουν πραγματικά οι AI interview copilots.

Συχνές ερωτήσεις

Ποια είναι η διαφορά ανάμεσα σε ένα token και μια λέξη;

Το token είναι η μονάδα που διαβάζει ένα γλωσσικό μοντέλο. Οι συνηθισμένες λέξεις είναι συχνά ένα μόνο token, ενώ οι μακρύτερες ή σπανιότερες λέξεις σπάνε σε αρκετά κομμάτια. Στα αγγλικά, ένα token είναι κατά μέσο όρο περίπου τα τρία τέταρτα μιας λέξης.

Καταλαβαίνει ένα γλωσσικό μοντέλο αυτά που λέει;

Χτίζει πλούσιες εσωτερικές αναπαραστάσεις νοήματος και πλαισίου, αλλά εκπαιδεύεται να προβλέπει πιθανό κείμενο, όχι να ελέγχει γεγονότα. Γι' αυτό οι απαντήσεις του μπορεί να ακούγονται σίγουρες και παρ' όλα αυτά να είναι λάθος, οπότε οι σημαντικοί ισχυρισμοί πρέπει πάντα να επαληθεύονται.

Είναι το ChatGPT απλώς ένας transformer;

Στον πυρήνα του, ναι: ένας μεγάλος transformer εκπαιδευμένος να προβλέπει το επόμενο token. Αυτό που τον κάνει χρήσιμο βοηθό είναι η επιπλέον εκπαίδευση σε οδηγίες και ανθρώπινη ανατροφοδότηση, μαζί με το προϊόν που χτίστηκε γύρω του.