Μοντέλα και πλατφόρμες AI
Το inference framework της Microsoft φέρνει τα 1-bit Large Language Models σε τοπικές συσκευές
Στις 17 Οκτωβρίου 2024, η Microsoft (MSFT ) ανακοίνωσε το BitNet.cpp, ένα inference framework που σχεδιάστηκε για να εκτελεί 1-bit quantized Large Language Models (LLMs). Το BitNet.cpp είναι μια σημαντική πρόοδος στη Gen AI, που επιτρέπει την ανάπτυξη 1-bit LLMs αποτελεσματικά σε τυπικούς CPUs, χωρίς να απαιτούνται ακριβά GPUs. Αυτή η εξέλιξη δημοκρατίζει την πρόσβαση στα LLMs, καθιστώντας τα διαθέσιμα σε eine ευρεία γκάμα συσκευών και δίνοντας νέες δυνατότητες στις εφαρμογές AI σε συσκευές.
Κατανόηση των 1-bit Large Language Models
Τα Large Language Models (LLMs) έχουν παραδοσιακά απαιτούσε σημαντικούς υπολογιστικούς πόρους λόγω της χρήσης υψηλής ακρίβειας αριθμών κινητής υποδιαστολής (συνήθως FP16 ή BF16) για τα βάρη του μοντέλου. Αυτή η ανάγκη έχει κάνει την ανάπτυξη των LLMs ακριβή και ενεργοβόρα.
Στην καρδιά τους, τα 1-bit LLMs χρησιμοποιούν ακραίες τεχνικές quantization για να αντιπροσωπεύουν τα βάρη του μοντέλου χρησιμοποιώντας μόνο τρεις δυνατές τιμές: -1, 0 και 1, από όπου προέρχεται ο όρος “1.58-bit” (καθώς απαιτεί λίγο περισσότερο από ένα bit για να κωδικοποιήσει τρεις καταστάσεις).
Τριτοβάθμιο Σύστημα Βαρών
Η Έννοια
Η quantization 1-bit στο BitNet.cpp είναι ένα τριτοβάθμιο σύστημα βαρών. Το BitNet λειτουργεί με μόνο τρεις δυνατές τιμές για κάθε παράμετρο:
- -1 (αρνητικό)
- 0 (ουδέτερο)
- 1 (θετικό)
Αυτό οδηγεί σε μια απαίτηση αποθήκευσης γύρω στα 1,58 bit ανά παράμετρο, από όπου προέρχεται το όνομα BitNet b1.58. Αυτή η δραστική μείωση του πλάτους bit των παραμέτρων οδηγεί σε μια εντυπωσιακή μείωση της χρήσης μνήμης και της υπολογιστικής複雑ότητας, καθώς οι περισσότερες πολλαπλασιασμοί κινητής υποδιαστολής αντικαθίστανται με απλές προσθέσεις και αφαιρέσεις.
Μαθηματική Βάση
Η quantization 1-bit περιλαμβάνει τη μετατροπή των βαρών και των ενεργειών σε τριτοβάθμια αναπαράσταση μέσω των ακόλουθων βημάτων:
1. Βιντεοσκόπηση Βαρών
Η βιντεοσκόπηση των βαρών περιλαμβάνει την κεντροποίηση τους γύρω από το μέσο (α), με αποτέλεσμα μια τριτοβάθμια αναπαράσταση. Η μετατροπή εκφράζεται μαθηματικά ως:
Wf=Sign(W−α)
Όπου:
- W είναι το αρχικό πίνακα βαρών.
- α είναι το μέσο των βαρών.
- Sign(x) επιστρέφει +1 αν x > 0 και -1 αλλιώς.
2. Quantization Ενεργειών
Η quantization των ενεργειών διασφαλίζει ότι οι εισροές περιορίζονται σε καθορισμένο πλάτος bit:
x^e=Quant(x)=Clip(γx×Qb,−Qb+ϵ,Qb−ϵ)
Όπου:
- Qb = 2(b−1)2^{(b-1)} είναι το μέγιστο επίπεδο quantization για b-bit πλάτος.
- γ είναι η μέγιστη απόλυτη τιμή του x (σημειωμένη ως ∣∣x∣∣∞).
- ε είναι ένας μικρός αριθμός για να αποτρέψει την υπερχείλιση κατά τις υπολογιστικές.
3. BitLinear Operation
Το στρώμα BitLinear αντικαθιστά τις παραδοσιακές πολλαπλασιασμούς πινάκων με μια απλοποιημένη λειτουργία:
y=Wf×x^e×(Qbβγ)
Όπου:
- β είναι ένας παράγοντας κλίμακας που χρησιμοποιείται για να ελαχιστοποιήσει τα σφάλματα προσέγγισης.
- γ κλιμακώνει τις ενεργειές.
- Q_b είναι ο παράγοντας quantization.
Αυτή η μετατροπή επιτρέπει αποτελεσματικές υπολογιστικές ενώ διατηρεί την απόδοση του μοντέλου.
Επιδόσεις
Αποτελεσματικότητα Μνήμης
Το τριτοβάθμιο σύστημα βαρών μειώνει σημαντικά τις απαιτήσεις μνήμης:
- Παραδοσιακά LLMs: 16 bit ανά βάρος
- BitNet.cpp: 1,58 bit ανά βάρος
Αυτή η μείωση αντιστοιχεί σε μια εξοικονόμηση μνήμης περίπου 90% σε σύγκριση με τα παραδοσιακά μοντέλα 16-bit, επιτρέποντας μεγαλύτερα μοντέλα να ταιριάζουν μέσα στις ίδιες περιορισμοί υλικού.
… (το υπόλοιπο του κειμένου)












