Συνδεθείτε μαζί μας

Τεχνητή νοημοσύνη

Κατανόηση των παραμέτρων του μοντέλου μεγάλων γλωσσών και των απαιτήσεων μνήμης: Μια βαθιά κατάδυση

mm

Δημοσιευμένα

 on

Υπολογισμός παραμέτρων σε LLM που βασίζονται σε μετασχηματιστές

Μεγάλα γλωσσικά μοντέλα (LLMs) έχει δει αξιοσημείωτες προόδους τα τελευταία χρόνια. Μοντέλα όπως το GPT-4, το Gemini της Google και το Claude 3 θέτουν νέα πρότυπα στις δυνατότητες και τις εφαρμογές. Αυτά τα μοντέλα όχι μόνο βελτιώνουν τη δημιουργία και τη μετάφραση κειμένου, αλλά ανοίγουν επίσης νέους δρόμους στην πολυτροπική επεξεργασία, συνδυάζοντας εισόδους κειμένου, εικόνας, ήχου και βίντεο για να παρέχουν πιο ολοκληρωμένες λύσεις τεχνητής νοημοσύνης.

Για παράδειγμα, το GPT-4 του OpenAI έχει δείξει σημαντικές βελτιώσεις στην κατανόηση και τη δημιουργία κειμένου που μοιάζει με άνθρωπο, ενώ τα μοντέλα Gemini της Google διαπρέπουν στον χειρισμό διαφορετικών τύπων δεδομένων, συμπεριλαμβανομένων κειμένου, εικόνων και ήχου, επιτρέποντας πιο απρόσκοπτες και σχετικές με τα συμφραζόμενα αλληλεπιδράσεις. Ομοίως, τα μοντέλα Claude 3 της Anthropic διακρίνονται για τις πολυγλωσσικές τους δυνατότητες και τη βελτιωμένη απόδοση σε εργασίες τεχνητής νοημοσύνης.

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

Τα βασικά των μεγάλων γλωσσικών μοντέλων

Τι είναι τα μεγάλα γλωσσικά μοντέλα;

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

Σημασία των παραμέτρων στα LLM

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

Κατανόηση της Αρχιτεκτονικής Transformer

Μετασχηματιστές-αρχιτεκτονική

Transformers Architecture

Επισκόπηση

Η αρχιτεκτονική του μετασχηματιστή, που εισήχθη στην εργασία «Attention Is All You Need» των Vaswani et al. (2017), έχει γίνει το θεμέλιο για πολλά LLM. Αποτελείται από έναν κωδικοποιητή και έναν αποκωδικοποιητή, που το καθένα αποτελείται από πολλά ίδια επίπεδα.

Εξαρτήματα κωδικοποιητή και αποκωδικοποιητή

  • κωδικοποιητή: Επεξεργάζεται την ακολουθία εισόδου και δημιουργεί μια αναπαράσταση με επίγνωση του περιβάλλοντος.
  • Αποκρυπτογράφος: Δημιουργεί την ακολουθία εξόδου χρησιμοποιώντας την αναπαράσταση του κωδικοποιητή και τα διακριτικά που δημιουργήθηκαν προηγουμένως.

Βασικά δομικά στοιχεία

  1. Προσοχή πολλαπλών κεφαλών: Επιτρέπει στο μοντέλο να εστιάζει σε διαφορετικά μέρη της ακολουθίας εισόδου ταυτόχρονα.
  2. Νευρωνικά δίκτυα τροφοδοσίας: Προσθέτει μη γραμμικότητα και πολυπλοκότητα στο μοντέλο.
  3. Κανονικοποίηση στρώματος: Σταθεροποιεί και επιταχύνει την προπόνηση κανονικοποιώντας τις ενδιάμεσες εκροές.

Υπολογισμός του αριθμού των παραμέτρων

Εκπαίδευση Transformer

Προεκπαιδευμένα μοντέλα για αποτελεσματική εκπαίδευση μετασχηματιστών

Υπολογισμός παραμέτρων σε LLM που βασίζονται σε μετασχηματιστές

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

  1. Επίπεδο ενσωμάτωσης:
    • Παράμετροι = vocab_size * d_model
  2. Προσοχή πολλαπλών κεφαλών:
    • Για h κεφάλια, με d_k = d_v = d_model / h:
    • Παράμετροι = 4 * d_model^2 (για Q, K, V και προβολές εξόδου)
  3. Δίκτυο τροφοδοσίας:
    • Παράμετροι = 2 * d_model * d_ff + d_model + d_ff
    • Πού d_ff είναι συνήθως 4 * d_model
  4. Κανονικοποίηση στρώματος:
    • Παράμετροι = 2 * d_model (για κλίμακα και προκατάληψη)

Συνολικές παράμετροι για ένα στρώμα μετασχηματιστή:

  • Parameters_layer = Parameters_attention + Parameters_ffn + 2 * Parameters_layernorm

Για ένα μοντέλο με N στρώματα:

  • Σύνολο παραμέτρων = N * Parameters_layer + Parameters_embedding + Parameters_output

Παράδειγμα Υπολογισμός

Ας εξετάσουμε ένα μοντέλο με τις ακόλουθες προδιαγραφές:

  • d_model = 768
  • h (αριθμός κεφαλιών προσοχής) = 12
  • N (αριθμός στρώσεων) = 12
  • vocab_size = 50,000
  1. Επίπεδο ενσωμάτωσης:
    • 50,000 * 768 = 38,400,000
  2. Προσοχή πολλαπλών κεφαλών:
    • 4 * 768 ^ 2 = 2,359,296
  3. Δίκτυο τροφοδοσίας:
    • 2 * 768 * (4 * 768) + 768 + (4 * 768) = 4,719,616
  4. Κανονικοποίηση στρώματος:
    • 2 * 768 = 1,536

Συνολικές παράμετροι ανά στρώμα:

  • 2,359,296 + 4,719,616 + (2 * 1,536) = 7,081,984

Συνολικές παράμετροι για 12 επίπεδα:

  • 12 * 7,081,984 = 84,983,808

Συνολικές παράμετροι μοντέλου:

  • + = 84,983,808 38,400,000 123,383,808

Αυτό το μοντέλο θα έχει περίπου 123 εκατομμύρια παραμέτρους.

Τύποι χρήσης μνήμης

Όταν εργαζόμαστε με LLM, πρέπει να λάβουμε υπόψη δύο βασικούς τύπους χρήσης μνήμης:

  1. Μνήμη μοντέλου: Η μνήμη που απαιτείται για την αποθήκευση των παραμέτρων του μοντέλου.
  2. Εργασία μνήμης: Η μνήμη που απαιτείται κατά τη διάρκεια της εξαγωγής συμπερασμάτων ή της εκπαίδευσης για την αποθήκευση ενδιάμεσων ενεργοποιήσεων, διαβαθμίσεων και καταστάσεων βελτιστοποίησης.

Υπολογισμός μνήμης μοντέλου

Η μνήμη του μοντέλου σχετίζεται άμεσα με τον αριθμό των παραμέτρων. Κάθε παράμετρος συνήθως αποθηκεύεται ως αριθμός κινητής υποδιαστολής 32 bit, αν και ορισμένα μοντέλα χρησιμοποιούν εκπαίδευση μεικτής ακρίβειας με 16 bit floats.

Μνήμη μοντέλου (bytes) = Αριθμός παραμέτρων * Byte ανά παράμετρο

Για το παράδειγμά μας μοντέλο με 123 εκατομμύρια παραμέτρους:

  • Μνήμη μοντέλου (32-bit) = 123,383,808 * 4 byte = 493,535,232 byte ≈ 494 MB
  • Μνήμη μοντέλου (16-bit) = 123,383,808 * 2 byte = 246,767,616 byte ≈ 247 MB

Εκτίμηση της μνήμης εργασίας

Οι απαιτήσεις μνήμης εργασίας μπορεί να διαφέρουν σημαντικά ανάλογα με τη συγκεκριμένη εργασία, το μέγεθος παρτίδας και το μήκος της ακολουθίας. Μια πρόχειρη εκτίμηση για τη μνήμη εργασίας κατά την εξαγωγή συμπερασμάτων είναι:

Μνήμη εργασίας ≈ 2 * Μνήμη μοντέλου

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

Training Memory ≈ 4 * Model Memory

Για το παράδειγμά μας μοντέλο:

  • Μνήμη εργασίας συμπερασμάτων ≈ 2 * 494 MB = 988 MB ≈ 1 GB
  • Μνήμη προπόνησης ≈ 4 * 494 MB = 1,976 MB ≈ 2 GB

Χρήση μνήμης σταθερής κατάστασης και μέγιστη χρήση μνήμης

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

Χρήση μνήμης σταθερής κατάστασης

Η χρήση μνήμης σε σταθερή κατάσταση περιλαμβάνει τα ακόλουθα στοιχεία:

  1. Βάρη μοντέλου: FP32 αντίγραφα των παραμέτρων του μοντέλου, που απαιτούν 4N byte, όπου N είναι ο αριθμός των παραμέτρων.
  2. Καταστάσεις βελτιστοποίησης: Για το Adam optimizer, αυτό απαιτεί 8N byte (2 καταστάσεις ανά παράμετρο).
  3. Διαβαθμίσεις: Αντίγραφα FP32 των ντεγκραντέ, που απαιτούν 4N byte.
  4. Εισαγωγή δεδομένων: Υποθέτοντας εισόδους int64, αυτό απαιτεί 8 byte BD, όπου B είναι το μέγεθος παρτίδας και D είναι η διάσταση εισόδου.

Η συνολική χρήση της μνήμης σε σταθερή κατάσταση μπορεί να προσεγγιστεί από:

  • M_steady = 16N + 8BD byte

Μέγιστη χρήση μνήμης

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

  1. Κανονικοποίηση στρώματος: Απαιτεί 4E byte ανά κανόνα επιπέδου, όπου E = BSH (B: μέγεθος παρτίδας, S: μήκος ακολουθίας, H: κρυφό μέγεθος).
  2. Μπλοκ Προσοχής:
    • Υπολογισμός QKV: 2E byte
    • Πίνακας προσοχής: 4 BSS byte (S: μήκος ακολουθίας)
    • Έξοδος προσοχής: 2E byte
  3. Μπλοκ τροφοδοσίας:
    • Πρώτο γραμμικό στρώμα: 2E byte
    • Ενεργοποίηση GELU: 8E byte
    • Δεύτερο γραμμικό στρώμα: 2E byte
  4. Απώλεια διασταυρούμενης εντροπίας:
    • Καταγραφές: 6 BSV byte (V: μέγεθος λεξιλογίου)

Η συνολική μνήμη ενεργοποίησης μπορεί να εκτιμηθεί ως εξής:

  • M_act = L * (14E + 4BSS) + 6BSV byte

Όπου L είναι ο αριθμός των στρωμάτων του μετασχηματιστή.

Συνολική μέγιστη χρήση μνήμης

Η μέγιστη χρήση μνήμης κατά τη διάρκεια της προπόνησης μπορεί να προσεγγιστεί συνδυάζοντας τη μνήμη σταθερής κατάστασης και τη μνήμη ενεργοποίησης:

  • M_peak = M_steady + M_act + 4 BSV byte

Ο πρόσθετος όρος 4BSV αντιπροσωπεύει μια επιπλέον κατανομή στην αρχή του πάσου προς τα πίσω.

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

Νόμοι κλιμάκωσης και ζητήματα αποτελεσματικότητας

 Νόμοι κλιμάκωσης για LLMs

Η έρευνα έχει δείξει ότι η απόδοση των LLM τείνει να ακολουθεί ορισμένους νόμους κλιμάκωσης καθώς ο αριθμός των παραμέτρων αυξάνεται. Οι Kaplan et al. (2020) παρατήρησε ότι η απόδοση του μοντέλου βελτιώνεται ως νόμος ισχύος του αριθμού των παραμέτρων, του υπολογισμού του προϋπολογισμού και του μεγέθους δεδομένων.

Η σχέση μεταξύ της απόδοσης του μοντέλου και του αριθμού των παραμέτρων μπορεί να προσεγγιστεί ως εξής:

Απόδοση ∝ N^α

Όπου N είναι ο αριθμός των παραμέτρων και α είναι ένας εκθέτης κλιμάκωσης συνήθως γύρω στο 0.07 για εργασίες μοντελοποίησης γλώσσας.

Αυτό σημαίνει ότι για να επιτύχουμε 10% βελτίωση στην απόδοση, πρέπει να αυξήσουμε τον αριθμό των παραμέτρων κατά συντελεστή 10^(1/α) ≈ 3.7.

Τεχνικές Αποδοτικότητας

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

a) Προπόνηση Μικτής Ακρίβειας: Χρήση αριθμών κινητής υποδιαστολής 16-bit ή ακόμα και 8-bit για ορισμένες λειτουργίες για τη μείωση της χρήσης μνήμης και των υπολογιστικών απαιτήσεων.

b) Μοντέλο Παραλληλισμός: Κατανομή του μοντέλου σε πολλές GPU ή TPU για να χειριστεί μεγαλύτερα μοντέλα από αυτά που χωρούν σε μία μεμονωμένη συσκευή.

c) Σημείο ελέγχου κλίσης: Υπολογισμός συναλλαγών για τη μνήμη με επανυπολογισμό ορισμένων ενεργοποιήσεων κατά το πέρασμα προς τα πίσω αντί να τις αποθηκεύσετε.

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

e) Απόσταξη: Εκπαίδευση μικρότερων μοντέλων για μίμηση της συμπεριφοράς μεγαλύτερων, διατηρώντας ενδεχομένως μεγάλο μέρος της απόδοσης με λιγότερες παραμέτρους.

Πρακτικό Παράδειγμα και Υπολογισμοί

Το GPT-3, ένα από τα μεγαλύτερα μοντέλα γλώσσας, έχει 175 δισεκατομμύρια παραμέτρους. Χρησιμοποιεί το τμήμα αποκωδικοποιητή της αρχιτεκτονικής του Transformer. Για να κατανοήσουμε την κλίμακα του, ας αναλύσουμε το πλήθος των παραμέτρων με υποθετικές τιμές:

  • d_model = 12288
  • d_ff = 4 * 12288 = 49152
  • Αριθμός στρώσεων = 96

Για ένα στρώμα αποκωδικοποιητή:

Συνολικές παράμετροι = 8 * 12288^2 + 8 * 12288 * 49152 + 2 * 12288 ≈ 1.1 δισεκατομμύρια

Σύνολο για 96 στρώματα:

1.1 δισεκατομμύρια * 96 = 105.6 δισεκατομμύρια

Οι υπόλοιπες παράμετροι προέρχονται από την ενσωμάτωση και άλλα στοιχεία.

Συμπέρασμα

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

Για να κατανοήσετε περαιτέρω τις πιο πρόσφατες εξελίξεις στα μοντέλα μεγάλων γλωσσών και τις εφαρμογές τους, ανατρέξτε σε αυτούς τους αναλυτικούς οδηγούς:

Έχω περάσει τα τελευταία πέντε χρόνια βυθίζοντας τον εαυτό μου στον συναρπαστικό κόσμο της Μηχανικής Μάθησης και της Βαθιάς Μάθησης. Το πάθος και η εξειδίκευσή μου με οδήγησαν να συνεισφέρω σε περισσότερα από 50 διαφορετικά έργα μηχανικής λογισμικού, με ιδιαίτερη έμφαση στην AI/ML. Η συνεχής περιέργειά μου με έχει τραβήξει επίσης προς την Επεξεργασία Φυσικής Γλώσσας, έναν τομέα που ανυπομονώ να εξερευνήσω περαιτέρω.