Μοντέλα και πλατφόρμες AI

Το inference framework της Microsoft φέρνει τα 1-bit Large Language Models σε τοπικές συσκευές

mm
Προσθέστε το Unite.AI στις προτιμώμενες πηγές σας στο Google

Στις 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, επιτρέποντας μεγαλύτερα μοντέλα να ταιριάζουν μέσα στις ίδιες περιορισμοί υλικού.

… (το υπόλοιπο του κειμένου)

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