Na ESP32-S3 byl spuštěn jazykový model s 28,9 miliony parametrů.


Vývojář Vyacheslav Serbov, který vystupuje pod pseudonymem slvDev, prokázáno Kompletně lokální generování textu na mikrokontroléru ESP32-S3. Výsledný jazykový model obsahuje 28,9 milionu parametrů a produkuje přibližně 9,9 tokenů za sekundu bez přístupu k serveru nebo jiným externím výpočetním zdrojům. Vygenerované krátké příběhy se zobrazují na připojeném OLED displeji.

 

projekt esp32-ai Testováno na modulu ESP32-S3 N16R8 s 512 KB integrované SRAM, 8 MB PSRAM a 16 MB flash paměti. 4bitový kvantizovaný model zabírá 14,9 MB. Repozitář obsahuje zdrojový kód běhového prostředí C, trénovací a kvantizační nástroje, firmware, testy a skripty pro jejich nahrání na desku.

 

Uváděných 28,9 milionu parametrů by se nemělo přímo srovnávat s počtem parametrů konvenčních desktopových LLM. Podle podrobná zpráva pro vývojářeModel se skládá z hustého výpočetního jádra s přibližně 559 000 parametry, výstupní vrstvy s 3,1 miliony parametrů a tabulky vrstvených vektorových reprezentací s přibližně 25 miliony parametrů. Tabulka představuje většinu formální velikosti modelu, ale při generování každého tokenu není zcela zpracována.

 

Pro uložení modelu se používají tři úrovně paměti. Nejčastěji používaná data se nacházejí v interní paměti SRAM, výstupní vrstva, KV cache a dočasné vyrovnávací paměti se nacházejí v paměti PSRAM a tabulka s 25 miliony položek se nachází ve flash paměti a je přístupná prostřednictvím mapování adresního prostoru. Z každého tokenu se načte pouze asi šest řádků, celkem přibližně 450 bajtů.

 

Toto zařízení je založeno na technologii Per-Layer Embeddings, kterou Google používá v zařízení Gemma 3n. Podle Dokumentace GoogluParametry PLE lze ukládat mimo pracovní paměť modelu a přidávat je do inferenčního procesu při zpracování jednotlivých vrstev. V esp32-ai je tento přístup rozšířen na hierarchii paměti mikrokontroléru, kde je rychlá SRAM obzvláště omezená.

 

První správná verze běhového prostředí založeného na jazyce C produkovala pouze 0,57 tokenů za sekundu. Po umístění výstupní vrstvy do PSRAM, přepnutí na osmibitové aktivace, rozdělení výpočtů mezi dvě jádra Xtensa LX7 a dalších optimalizacích se latence snížila na 94,9 ms na krok modelu. Konečná naměřená propustnost dosáhla 9,88 tokenů za sekundu, berouc v úvahu celý proces generování. Hlavním omezením se nyní stala šířka pásma PSRAM při čtení výstupní vrstvy.

 

Model byl trénován na syntetické datové sadě TinyStories, který se skládá z jednoduchých anglicky psaných příběhů s omezenou slovní zásobou. Může tedy pokračovat ve větách a skládat krátké, souvislé příběhy, ale není určen k odpovídání na otázky, plnění pokynů, programování ani reprodukci faktických znalostí. Vývojář vnímá dílo především jako demonstraci efektivního umístění modelu do paměti mikrokontroléru, spíše než jako hotového, autonomního chatbota.

 

V aktuální dokumentaci autor výslovně zdůrazňuje, že esp32-ai je nezávislý vývoj. Projekty llama2.c Práce Andreje Karpathyho a dřívější uvedení 260 000. modelu na ESP32-S3 jsou uvedeny pouze jako vodítko a příklady předchozí práce: kód, kontrolní body a metodologie nejsou z nich přímo převzaty. Zdrojový kód esp32-ai distribuováno pod licencí MIT.

 

Zdroj: linux.org.ru

Kupte si spolehlivý hosting pro stránky s DDoS ochranou, VPS VDS servery 🔥 Kupte si spolehlivý webhosting s ochranou DDoS, VPS VDS servery | ProHoster