Αρχιτεκτονική κατανεμημένης εκτέλεσης (inference)
Το project αποτελεί μια εντυπωσιακή άσκηση μηχανικής, μεταφέροντας το βάρος της εκτέλεσης ενός LLM σε μια συστοιχία (cluster) μικροελεγκτών. Η αρχιτεκτονική χωρίζει το μοντέλο σε τμήματα, όπου ο master node αναλαμβάνει τον BPE tokenizer και το embedding, ενώ οι υπόλοιποι έξι nodes αναλαμβάνουν την επεξεργασία των transformer blocks. Η επικοινωνία μεταξύ των nodes επιτυγχάνεται μέσω ενός διαύλου SPI σε διάταξη daisy-chain, επιτρέποντας τη ροή των hidden states κατά μήκος του pipeline.
Βελτιστοποίηση 1.58-bit και BitNet
Η καρδιά του συστήματος βασίζεται στην τεχνολογία BitNet, η οποία χρησιμοποιεί τριαδικά βάρη (-1, 0, 1). Αυτή η προσέγγιση επιτρέπει την εκτέλεση πολύπλοκων πράξεων με ελάχιστο αποτύπωμα μνήμης. Οι προγραμματιστές χρησιμοποίησαν assembly-optimized συναρτήσεις για τις πράξεις MAC, εκμεταλλευόμενοι στο έπακρο τις δυνατότητες του επεξεργαστή Xtensa LX7 του ESP32S3. Η χρήση look-up tables (LUT) για τις πράξεις attention και MLP συμβάλλει περαιτέρω στην εξοικονόμηση κύκλων επεξεργασίας.
Διαχείριση πόρων και εργαλεία
Το project περιλαμβάνει μια πλήρη σουίτα εργαλείων σε Python για την προετοιμασία του μοντέλου, συμπεριλαμβανομένων εργαλείων για Quantization-Aware Training (QAT) και τη δημιουργία των απαραίτητων binary αρχείων για το partition table του ESP-IDF. Η διαχείριση της μνήμης PSRAM είναι κρίσιμη για την αποθήκευση του KV cache, διασφαλίζοντας ότι το μοντέλο μπορεί να λειτουργήσει εντός των αυστηρών ορίων της ενσωματωμένης μνήμης των μικροελεγκτών.