Πίσω στα RoboNews
▲ 111 πόντοιgithub.com4 λεπτά ανάγνωσης•

Κατανεμημένη εκτέλεση μοντέλων 1.58-bit σε συστοιχία μικροελεγκτών ESP32S3

Πρωτότυπος τίτλος: "ESP32S3 cluster running 1.58-bit (BitNet) Language model" (από nkko)

Αρχικό ΆρθροΣυζήτηση HN (24 σχόλια)
TL;DR (Εν Συντομία)

Το project αυτό υλοποιεί μια κατανεμημένη αρχιτεκτονική inference για LLM 0.5B παραμέτρων, χρησιμοποιώντας επτά μικροελεγκτές ESP32S3 συνδεδεμένους σε διάταξη daisy-chain μέσω SPI. Αξιοποιώντας την τεχνική BitNet (1.58-bit), το σύστημα επιτυγχάνει την εκτέλεση παραγωγικής τεχνητής νοημοσύνης (Generative AI) σε περιβάλλον περιορισμένων πόρων.

📌 Κύρια Σημεία & Συμπεράσματα

  • Χρήση της αρχιτεκτονικής BitNet για ακραίο κβαντισμό (quantization) σε 1.58-bit, επιτρέποντας την εκτέλεση μοντέλων σε hardware με περιορισμένη μνήμη.
  • Αρχιτεκτονική pipeline όπου ο master node αναλαμβάνει το tokenization και το embedding, ενώ οι compute nodes εκτελούν τα transformer blocks.
  • Διασύνδεση των κόμβων μέσω SPI με χρήση DMA για τη μεταφορά των διανυσμάτων κατάστασης (hidden state vectors) με ελάχιστο latency.
  • Βελτιστοποίηση των υπολογισμών MAC (Multiply-Accumulate) μέσω assembly κώδικα για την υποστήριξη των ternary βαρών του μοντέλου.

Αρχιτεκτονική κατανεμημένου inference

Η πρόκληση της εκτέλεσης ενός LLM σε μικροελεγκτές έγκειται κυρίως στον περιορισμένο διαθέσιμο χώρο SRAM και Flash. Το συγκεκριμένο project επιλύει αυτό το σημείο συμφόρησης (bottleneck) διασπώντας το μοντέλο σε τμήματα (slicing) και κατανέμοντάς τα σε επτά ανεξάρτητους κόμβους ESP32S3. Ο master node διαχειρίζεται το BPE tokenizer και το embedding lookup, ενώ οι υπόλοιποι κόμβοι αναλαμβάνουν διαδοχικά τα επίπεδα προσοχής (attention layers) και τα MLP blocks.

Βελτιστοποίηση μέσω BitNet και assembly

Η χρήση του BitNet (1.58-bit) επιτρέπει τη δραστική μείωση του αποτυπώματος μνήμης, καθώς τα βάρη περιορίζονται σε τριαδικές τιμές (-1, 0, 1). Για να επιτευχθεί η απαιτούμενη απόδοση, οι δημιουργοί υλοποίησαν custom assembly ρουτίνες για τις πράξεις MAC, οι οποίες είναι κρίσιμες για την ταχύτητα του inference. Η επικοινωνία μεταξύ των κόμβων γίνεται μέσω SPI daisy-chain, εξασφαλίζοντας τη ροή των δεδομένων με τη μέγιστη δυνατή διαλειτουργικότητα (interoperability) μεταξύ των μονάδων.

Εργαλεία προετοιμασίας και quantization

Το project συνοδεύεται από μια πλήρη σουίτα εργαλείων σε Python για την προετοιμασία του μοντέλου. Αυτή περιλαμβάνει διαδικασίες Quantization-Aware Training (QAT), περικοπή του λεξιλογίου (vocabulary pruning) και σειριοποίηση των βαρών σε δυαδικά αρχεία (.bin) που είναι συμβατά με το partition table του ESP-IDF. Η προσέγγιση αυτή αποδεικνύει ότι η παραγωγική τεχνητή νοημοσύνη (Generative AI) μπορεί να μεταφερθεί από τα data centers σε embedded συστήματα χαμηλού κόστους.

Ετικέτες:#Embedded#LLM#ESP32#BitNet#Quantization
GitHub Gems & Trends

Ανακαλύψτε καινοτόμα open-source εργαλεία και κρυμμένα διαμάντια ανοιχτού κώδικα.

Εξερεύνηση Gems

Διαβάστε επίσης