Μοντέλα και πλατφόρμες AI
PowerInfer: Γρήγορη Μεγάλη Γλωσσική Μοντέλα με Κατανάλωση Καταναλωτικών GPU
Λόγω των εξαιρετικών ικανοτήτων δημιουργίας περιεχομένου, τα Γεννητικά Μεγάλα Γλωσσικά Μοντέλα βρίσκονται τώρα στο επίκεντρο της επανάστασης του AI, με συνεχείς προσπάθειες για την ενίσχυση των γεννητικών ικανοτήτων τους. Ωστόσο, παρά τις ταχύτατες προόδους, αυτά τα μοντέλα απαιτούν σημαντική υπολογιστική δύναμη και πόρους. Αυτό οφείλεται σε μεγάλο βαθμό στο ότι αποτελούνται από εκατοντάδες δισεκατομμύρια παραμέτρων. Επιπλέον, για να λειτουργούν ομαλά, τα γεννητικά μοντέλα AI βασίζονται σε χιλιάδες GPU, οδηγώντας σε σημαντικά λειτουργικά έξοδα. Οι υψηλές απαιτήσεις λειτουργίας είναι ο основικός λόγος για τον οποίο τα γεννητικά μοντέλα AI δεν έχουν ακόμη αναπτυχθεί αποτελεσματικά σε προσωπικές συσκευές.
Σε αυτό το άρθρο, θα συζητήσουμε το PowerInfer, einen γρήγορο κινητήρα συλλογής LLM σχεδιασμένο για τυπικούς υπολογιστές που τροφοδοτούνται από ένα單ο καταναλωτικό GPU. Το πλαίσιο PowerInfer επιδιώκει να εκμεταλλευτεί την υψηλή τοπικότητα που υπάρχει στη συλλογή LLM, χαρακτηρισμένη από μια κατανομή power-law στις ενεργοποιήσεις των νευρώνων. Αυτό σημαίνει ότι σε οποιοδήποτε δεδομένο χρονικό διάστημα, ένα μικρό υποσύνολο “ζεστών” νευρώνων είναι συνεχώς ενεργοποιημένο σε όλες τις εισόδους, ενώ τα υπόλοιπα, που ονομάζονται “ψυχρά” νεύρα, ενεργοποιούνται με βάση συγκεκριμένες εισόδους ή απαιτήσεις. Αυτή η προσέγγιση επιτρέπει στο πλαίσιο PowerInfer να μειώσει την υπολογιστική δύναμη που απαιτείται για τη γεννήτρια AI για να παράγει τα επιθυμητά αποτελέσματα.
Θα εμβαθύνουμε στο πλαίσιο PowerInfer με λεπτομέρειες, εξερευνώντας τη μεθοδολογία, την πορεία και τα πρακτικά αποτελέσματα εφαρμογής. Ας αρχίσουμε.
PowerInfer: Γρήγορη Μεγάλη Γλωσσική Μοντέλα με Κατανάλωση Καταναλωτικών GPU
Τα Γεννητικά Μεγάλα Γλωσσικά Μοντέλα, όπως το ChatGPT και το DALL-E, είναι γνωστά για τις σύνθετες γεννητικές και φυσικές γλωσσικές εργασίες. Λόγω των υψηλών υπολογιστικών απαιτήσεων, αυτά τα μοντέλα αναπτύσσονται συνήθως σε κέντρα δεδομένων με προηγμένα GPU. Η ανάγκη για τέτοιες υψηλές υπολογιστικές απαιτήσεις περιορίζει την ανάπτυξή τους σε κέντρα δεδομένων, υπογραμμίζοντας την ανάγκη να αναπτυχθούν μεγάλα γλωσσικά μοντέλα σε πιο προσιτές τοπικές πλατφόρμες όπως οι προσωπικοί υπολογιστές.
Η αύξηση της προσβασιμότητας των μεγάλων γλωσσικών μοντέλων θα μπορούσε να μειώσει τα έξοδα συλλογής και δημιουργίας περιεχομένου, να βελτιώσει την ιδιωτικότητα των δεδομένων και να επιτρέψει την προσαρμογή του μοντέλου. Επιπλέον, ενώ οι αναπτύξεις των κέντρων δεδομένων δίνουν προτεραιότητα στην υψηλή απόδοση, οι τοπικές αναπτύξεις LLM θα μπορούσαν να επικεντρωθούν στη χαμηλή καθυστέρηση λόγω των μικρότερων μεγεθών δειγμάτων.
Ωστόσο, η ανάπτυξη αυτών των μοντέλων σε τοπικές συσκευές παρουσιάζει σημαντικές προκλήσεις λόγω των μεγάλων απαιτήσεων μνήμης. Τα μεγάλα γλωσσικά μοντέλα, που λειτουργούν ως αυτο-αναδρομικοί μετασχηματιστές, γεννούν κείμενο token-to-token, με κάθε token να απαιτεί πρόσβαση σε όλο το μοντέλο, που αποτελείται από εκατοντάδες δισεκατομμύρια παραμέτρων. Αυτό απαιτεί πολλά υψηλής απόδοσης GPU για τη δημιουργία χαμηλής καθυστέρησης. Επιπλέον, οι τοπικές αναπτύξεις συνήθως επεξεργάζονται αιτήματα ατομικά, περιορίζοντας τη δυνατότητα για παράλληλη επεξεργασία.
Για να αντιμετωπιστούν οι σύνθετες απαιτήσεις μνήμης του πλαισίου γεννητικής AI, οι υφιστάμενες λύσεις χρησιμοποιούν μεθόδους όπως η αποθήκευση μοντέλων και η συμπίεση. Τεχνικές όπως η απόσταξη, το κλάδεμα και η ποσοτικοποίηση μειώνουν το μέγεθος του μοντέλου, αλλά εξακολουθούν να είναι πολύ μεγάλα για τυπικά GPU σε προσωπικούς υπολογιστές. Η αποθήκευση μοντέλων, που διαμερίζει το μοντέλο στο επίπεδο του μετασχηματιστή μεταξύ CPU και GPU, επιτρέπει την κατανεμημένη επεξεργασία επιπέδων σε CPU και GPU μνήμη. Ωστόσο, αυτή η μέθοδος περιορίζεται από την αργή σύνδεση PCIe και τις περιορισμένες υπολογιστικές ικανότητες των CPU, οδηγώντας σε υψηλή καθυστέρηση συλλογής.
Το πλαίσιο PowerInfer υποστηρίζει ότι η ανταπόκριση μεταξύ των χαρακτηριστικών συλλογής LLM και της δομής του υλικού είναι η основική αιτία των προβλημάτων μνήμης στη συλλογή LLM. Ιδανικά, τα δεδομένα που πρόσβαση συχνά θα πρέπει να αποθηκεύονται σε υψηλής ταχύτητας, περιορισμένης ικανότητας GPU, ενώ τα λιγότερο συχνά προσβάσιμα δεδομένα θα πρέπει να βρίσκονται σε χαμηλής ταχύτητας, υψηλής ικανότητας CPU. Ωστόσο, το μεγάλο όγκο παραμέτρων κάθε LLM συλλογής καθιστά το σύνολο εργασίας πολύ μεγάλο για ένα μόνο GPU, οδηγώντας σε ανεφάρμοστη εκμετάλλευση της τοπικότητας.
Η διαδικασία συλλογής σε μεγάλα γλωσσικά μοντέλα δείχνει υψηλή τοπικότητα, με κάθε επανάληψη να ενεργοποιεί ένα περιορισμένο αριθμό νευρώνων. Το πλαίσιο PowerInfer επιδιώκει να εκμεταλλευτεί αυτή τη τοπικότητα, διαχειριζόμενο ένα μικρό αριθμό “ζεστών” νευρώνων με το GPU, ενώ ο CPU χειρίζεται τα “ψυχρά” νεύρα. Προεπιλέγει και προφόρτωση “ζεστών” νευρώνων στο GPU και αναγνωρίζει ενεργοποιημένα νεύρα κατά τη διάρκεια της εκτέλεσης. Αυτή η προσέγγιση ελαχιστοποιεί τις δαπανηρές μεταφορές δεδομένων PCIe, επιτρέποντας στα GPU και CPU να επεξεργάζονται ανεξάρτητα τους назначένους νευρώνες.
Ωστόσο, η ανάπτυξη LLM σε τοπικές συσκευές αντιμετωπίζει εμπόδια. Οι προβλέψεις online, που είναι απαραίτητες για την αναγνώριση ενεργοποιημένων νευρώνων, καταναλώνουν σημαντική μνήμη GPU. Το πλαίσιο PowerInfer χρησιμοποιεί μια προσαρμοστική μέθοδο για την κατασκευή μικρών προβλεπτών για επίπεδα με υψηλότερη σκεύωση και σπαρότητα, διατηρώντας την ακρίβεια ενώ μειώνει το μέγεθος. Επιπλέον, πλαίσια LLM απαιτούν ειδικούς σπαρείς χειριστές. Το πλαίσιο PowerInfer χρησιμοποιεί νευρωνικούς σπαρείς χειριστές που επικοινωνούν trực tiếp με τους νευρώνες, εξαλείφοντας την ανάγκη για συγκεκριμένες σπαρείς μορφές μετατροπής.
Τέλος, η βέλτιστη τοποθέτηση ενεργοποιημένων νευρώνων μεταξύ CPU και GPU είναι μια πρόκληση. Το πλαίσιο PowerInfer χρησιμοποιεί ένα offline στάδιο για τη δημιουργία μιας πολιτικής τοποθέτησης νευρώνων, μετρώντας την επίδραση κάθε νευρώνα στις αποτελέσματα συλλογής LLM και τοποθετώντας το ως ένα ακέραιο γραμμικό πρόβλημα.
Αρχιτεκτονική και Μεθοδολογία
Η ακόλουθη εικόνα εξηγεί την αρχιτεκτονική του πλαισίου PowerInfer, που αποτελείται από offline και online компоненты στη διαδικασία.

Χάρη στην παραλλαγή που παρατηρείται στις ιδιότητες τοπικότητας μεταξύ των διαφορετικών μεγάλων γλωσσικών μοντέλων, το offline компонент προφίλ της σπαρότητας ενεργοποίησης LLM, επιτρέποντας στο να διακρίνει μεταξύ “ζεστών” και “ψυχρών” νευρώνων. Από την άλλη πλευρά, στο offline στάδιο, δύο τύποι νευρώνων φορτώνονται από τον κινητήρα συλλογής στο CPU και GPU, εξυπηρετώντας αιτήματα LLM κατά τη διάρκεια της εκτέλεσης με χαμηλή καθυστέρηση.
Offline Φάση: Λύτης Πολιτικής και Προφίλ LLM
Στο offline στάδιο, ένα компонент προφίλ LLM χρησιμοποιεί αιτήματα που προέρχονται από γενικό σύνολο δεδομένων για τη συλλογή δεδομένων ενεργοποίησης από τη διαδικασία συλλογής. Στο πρώτο βήμα, παρακολουθεί την ενεργοποίηση των νευρώνων σε όλα τα επίπεδα του πλαισίου και στη συνέχεια χρησιμοποιεί einen λύτη πολιτικής για να ταξινομήσει τους νευρώνες ως είτε “ζεστούς” ή “ψυχρούς”. Ο основικός σκοπός του λύτη πολιτικής είναι να ανατεθεί στους νευρώνες που ενεργοποιούνται πιο συχνά στους επιπέδους GPU, ενώ οι υπόλοιποι ανατίθενται στους επιπέδους CPU. Στο δεύτερο στάδιο, ο λύτης πολιτικής χρησιμοποιεί μετρικές επίδρασης νευρώνων και προδιαγραφές υλικού για να ισορροπήσει την εργασία μεταξύ των επιπέδων και να μεγιστοποιήσει το μετρικό της επίδρασης GPU για τους νευρώνες χρησιμοποιώντας ακέραιο γραμμικό προγραμματισμό.
Online Φάση: Νευρωνικός Κινητήρας Συλλογής LLM
Μόλις το offline στάδιο εκτελεστεί επιτυχώς, το πλαίσιο προχωρά στην εκτέλεση του online στάδιου. Στο τρίτο βήμα της διαδικασίας, ο online κινητήρας αναθέτει “ζεστούς” και “ψυχρούς” νευρώνες στους αντίστοιχους μονάδες επεξεργασίας, ανάλογα με την έξοδο του offline λύτη πολιτικής. Κατά τη διάρκεια της εκτέλεσης και στο τέταρτο βήμα, ο online κινητήρας διαχειρίζεται τις υπολογιστικές εργασίες CPU-GPU, δημιουργώντας εκτελεστές CPU και GPU που είναι νήματα που τρέχουν στην πλευρά CPU. Ο κινητήρας προβλέπει τους ενεργοποιημένους νευρώνες και στη συνέχεια παραλείπει τους μη ενεργοποιημένους νευρώνες. Οι ενεργοποιημένοι νεύραες προφορτώνονται στο GPU για επεξεργασία. Εν τω μεταξύ, ο CPU υπολογίζει και μεταφέρει τα αποτελέσματα για τους νευρώνες του για να ενσωματωθούν με το GPU. Ο online κινητήρας μπορεί να επικεντρωθεί σε ατομικούς νευρώνες σειρών και στηλών μέσα σε πίνακες, επειδή χρησιμοποιεί σπαρείς νευρωνικούς χειριστές σε CPU και GPU.

Προσαρμοστικοί Προβλέψεις Σπαρότητας
Η основική концепция πίσω από τη μείωση των υπολογιστικών φόρτων από τον online κινητήρα συλλογής στο πλαίσιο PowerInfer είναι ότι επεξεργάζεται μόνο τους νευρώνες που προβλέπει ότι θα ενεργοποιηθούν. Παραδοσιακά, μέσα σε κάθε επίπεδο μετασχηματιστή, το πλαίσιο χρησιμοποιεί δύο διαφορετικούς προβλέψεις για την προέβλεψη της ενεργοποίησης των νευρώνων στα μπλοκ MLP και αυτο-προσοχής, ως αποτέλεσμα του οποίου η υπολογιστική συλλογή περιορίζεται στους νευρώνες που προβλέπονται ότι θα είναι ενεργοποιημένοι. Ωστόσο, είναι δύσκολο να σχεδιαστούν αποτελεσματικοί προβλέψεις για τοπική ανάπτυξη, επειδή η περιορισμένη ποσότητα πόρων καθιστά δύσκολο να ισορροπηθεί το μέγεθος του μοντέλου και η ακρίβεια προβλέψεων.既然 οι προβλέψεις αυτοί αναπτύσσονται συχνά από το πλαίσιο για την προέβλεψη ενεργοποιημένων νευρώνων, πρέπει να αποθηκευτούν στο GPU για να επιτρέψουν τη γρήγορη πρόσβαση. Ωστόσο, τα πλαίσια γενικά αναπτύσσουν ένα μεγάλο αριθμό προβλέψεων που καταλαμβάνουν σημαντική μνήμη, ακόμη και αυτή που απαιτείται για την αποθήκευση παραμέτρων LLM.
Επιπλέον, το μέγεθος των προβλέψεων καθορίζεται γενικά από δύο παράγοντες: Εσωτερική Σκεύωση και Σπαρότητα των επιπέδων LLM.

Για να βελτιστοποιήσει αυτούς τους παράγοντες, το πλαίσιο PowerInfer χρησιμοποιεί μια επαναληπτική μέθοδο εκπαίδευσης για κάθε προβλέψη στο επίπεδο μετασχηματιστή χωρίς σταθερό μέγεθος. Στο πρώτο βήμα αυτής της μεθόδου, το μέγεθος του βασικού μοντέλου καθορίζεται με βάση το προφίλ σπαρότητας του μοντέλου, και το μέγεθος του μοντέλου điều chỉnhεται επαναληπτικά, λαμβάνοντας υπόψη την εσωτερική ενεργοποίηση σκεύωση για να διατηρήσει την ακρίβεια.
Τοποθέτηση και Διαχείριση Νευρώνων
Όπως αναφέρθηκε νωρίτερα, ενώ ο λύτης πολιτικής offline καθορίζει την πολιτική τοποθέτησης νευρώνων, ο online κινητήρας συλλογής φορτώνει το μοντέλο στη μνήμη GPU και CPU σύμφωνα με την παραγμένη πολιτική. Για κάθε επίπεδο που μπορεί να έχει πολλαπλά βάρη, το πλαίσιο PowerInfer αναθέτει κάθε νευρώνα είτε στο CPU είτε στο GPU, με βάση το αν ο νευρώνας είναι “ζεστός”. Η διασφάλιση ακριβούς υπολογισμού των διαμερισμένων νευρώνων στην καθορισμένη σειρά είναι απαραίτητη για ακριβή αποτελέσματα. Για να αντιμετωπιστούν αυτά, το πλαίσιο PowerInfer δημιουργεί δύο πίνακες νευρώνων: ένας βρίσκεται στη μνήμη GPU και ένας στη μνήμη CPU, με κάθε πίνακα να συσχετίζει ατομικούς νευρώνες με την αρχική του θέση στο πίνακα.
Νευρωνικός Χειριστής
Λόγω της σπαρότητας ενεργοποίησης που παρατηρείται στα μεγάλα γλωσσικά μοντέλα, οι ανενεργοί νεύραες και τα βάρη τους μπορούν να παραλειφθούν από τις операции πολλαπλής πλοκής, δημιουργώντας την ανάγκη για χρήση σπαρών χειριστών. Αντί να χρησιμοποιούν σπαρείς χειριστές που έχουν πολλές περιορισμοί, το πλαίσιο PowerInfer χρησιμοποιεί νευρωνικούς χειριστές που υπολογίζουν ενεργοποιημένους νευρώνες και τα βάρη τους trực tiếp στο GPU και CPU, χωρίς να απαιτούν μετατροπή σε πυκνή μορφή κατά τη διάρκεια της εκτέλεσης. Οι νευρωνικοί χειριστές διαφέρουν από τους παραδοσιακούς σπαρείς χειριστές, επειδή επικεντρώνονται σε ατομικές σειρές και στήλες μέσα σε einen πίνακα, 而 όχι στο ολόκληρο πίνακα.
Πολιτική Τοποθέτησης Νευρώνων
Για να εκμεταλλευτεί τις υπολογιστικές ικανότητες των CPU και GPU, το offline компонент του πλαισίου PowerInfer δημιουργεί μια πολιτική τοποθέτησης που οδηγεί το πλαίσιο όταν αναθέτει νευρώνες είτε στο CPU είτε στο GPU. Ο λύτης πολιτικής δημιουργεί αυτή την πολιτική και ελέγχει την τοποθέτηση νευρώνων μέσα σε κάθε επίπεδο, που βοηθά στην καθοδήγηση της υπολογιστικής εργασίας για τις ατομικές μονάδες επεξεργασίας. Όταν δημιουργείται η πολιτική τοποθέτησης, ο λύτης πολιτικής λαμβάνει υπόψη διάφορους παράγοντες, συμπεριλαμβανομένης της συχνότητας ενεργοποίησης για κάθε νευρώνα, της επικοινωνιακής υπερβολής και των υπολογιστικών ικανοτήτων, όπως τα εύρη και η μνήμη κάθε μονάδας επεξεργασίας.
Αποτελέσματα και Εφαρμογή
Για να δείξουν τις ικανότητες γενίκευσης του πλαισίου PowerInfer σε συσκευές με διαφορετικές υλικές ρυθμίσεις, οι πειραματικές δοκιμές διεξάγονται σε δύο διαφορετικές προσωπικές συσκευές: μία εξοπλισμένη με επεξεργαστή Intel (INTC ) i9-13900K, GPU NVIDIA RTX 4090 και 192 GB μνήμη host, ενώ η άλλη λειτουργεί με επεξεργαστή Intel i7-12700K, GPU NVIDIA RTX 2080Ti και 64 GB μνήμη host.
Η απόδοση του πλαισίου PowerInfer συγκρίνεται με το llama.cpp με μέγεθος δειγμάτων 1 και προεπιλεγμένες ρυθμίσεις ανάπτυξης. Το πλαίσιο στη συνέχεια δείγμα προτύπων από τα σύνολα δεδομένων ChatGPT και Alpaca, δεδομένης της μεταβλητότητας που παρατηρείται στη διάρκεια των πραγματικών διαλόγων εισόδου και εξόδου. Η ακόλουθη εικόνα δείχνει τις ταχύτητες γεννήτριας για διαφορετικά μοντέλα.

Όπως μπορεί να παρατηρηθεί, το πλαίσιο PowerInfer γεννά 8,32 token ανά δευτερόλεπτο και φτάνει μέχρι 16 token που γεννιούνται ανά δευτερόλεπτο, υπερβαίνοντας το πλαίσιο llama.cpp με σημαντικό περιθώριο. Επιπλέον, καθώς ο αριθμός των εξόδων token αυξάνεται, η απόδοση του πλαισίου PowerInfer βελτιώνεται επίσης, επειδή η φάση γεννήτριας επηρεάζει σημαντικά τον συνολικό χρόνο συλλογής.

Επιπλέον, όπως μπορεί να παρατηρηθεί στην παραπάνω εικόνα, το πλαίσιο PowerInfer υπερβαίνει το πλαίσιο llama.cpp σε χαμηλής απόδοσης συσκευές με μέγιστη ταχύτητα γεννήτριας 7 token ανά δευτερόλεπτο και μέση ταχύτητα γεννήτριας 5 token ανά δευτερόλεπτο.

Η παραπάνω εικόνα δείχνει την κατανομή του φορτίου νευρώνων μεταξύ GPU και CPU για τα δύο πλαίσια. Όπως μπορεί να παρατηρηθεί, το πλαίσιο PowerInfer αυξάνει σημαντικά το μερίδιο του φορτίου νευρώνων του GPU, από 20 έως 70%.

Η παραπάνω εικόνα συγκρίνει την απόδοση των δύο πλαισίων σε δύο συσκευές με διαφορετικές προδιαγραφές. Όπως μπορεί να παρατηρηθεί, το πλαίσιο PowerInfer συνεχώς παρέχει υψηλή ταχύτητα γεννήτριας token όταν συγκρίνεται με το πλαίσιο llama.cpp.
Τελικές Σκέψεις
Σε αυτό το άρθρο, έχουμε συζητήσει το PowerInfer, einen γρήγορο κινητήρα συλλογής LLM για τυπικούς υπολογιστές που τροφοδοτούνται από ένα單ο καταναλωτικό GPU. Στο κέντρο του, το πλαίσιο PowerInfer επιδιώκει να εκμεταλλευτεί την υψηλή τοπικότητα που υπάρχει στη συλλογή LLM, χαρακτηρισμένη από μια κατανομή power-law στις ενεργοποιήσεις των νευρώνων. Το πλαίσιο PowerInfer είναι ένα γρήγορο σύστημα συλλογής που σχεδιάστηκε για μεγάλα γλωσσικά μοντέλα, που χρησιμοποιεί προσαρμοστικούς προβλέψεις και νευρωνικούς χειριστές για να ενεργοποιήσει τους νευρώνες και τη υπολογιστική σπαρότητα.












