SprÄkmodellen med 28,9 miljoner parametrar fungerar pÄ ESP32-S3


Utvecklaren Vyacheslav Serbov, som gÄr under pseudonymen slvDev, visade en helt lokal textgenerering pÄ mikrokontrollern ESP32-S3. Den sprÄkmodell han skapade innehÄller 28,9 miljoner parametrar och producerar cirka 9,9 token per sekund, utan att behöva kontakta en server eller andra externa berÀkningsresurser. De genererade korta berÀttelserna visas pÄ den anslutna OLED-skÀrmen.

 

Projektet esp32-ai testades pÄ modulen ESP32-S3 N16R8, som har 512 KB inbyggd SRAM, 8 MB PSRAM och 16 MB flash-minne. Den kvantifierade modellen pÄ fyra bitar tar upp 14,9 MB. I arkivet har kÀllkoden för körmiljön i C, verktyg för trÀning och kvantisering av modellen, firmware, tester och skript för dess uppladdning till kortet publicerats.

 

De angivna 28,9 miljonerna parametrar bör inte jÀmföras direkt med antalet parametrar i vanliga stationÀra LLM. Enligt den detaljerade rapporten frÄn utvecklaren, bestÄr modellen av en tÀt berÀkningskÀrna med cirka 559 tusen parametrar, ett utmatningsskikt med 3,1 miljoner parametrar och en tabell med lagrade vektorreprÀsentationer pÄ cirka 25 miljoner parametrar. Just den sista ansvarar för den största delen av modellens formella storlek, men behandlas inte helt vid generering av varje token.

 

För att rymma modellen anvÀnds tre nivÄer av minne. De mest ofta anvÀnda uppgifterna finns i den interna SRAM, utmatningsskiktet, KV-cache och temporÀra buffrar finns i PSRAM, medan den 25-miljoners tabellen finns i flash-minnet och Àr tillgÀnglig genom avbildning i adressutrymmet. För varje token lÀses endast cirka sex rader, med en total volym pÄ cirka 450 byte.

 

Denna enhet Àr baserad pÄ teknologin Per-Layer Embeddings, som Google har tillÀmpat i Gemma 3n. Enligt Google-dokumentationen, kan PLE-parametrarna lagras utanför modellens arbetsminne och lÀggas till i utdata processen allteftersom individuella lager bearbetas. I esp32-ai har denna metod överförts till mikrokontrollerns minneshierarki, dÀr snabb SRAM Àr sÀrskilt begrÀnsad.

 

Den första korrekta versionen av den C-baserade körmiljön producerade endast 0,57 token per sekund. Efter att ha placerat utgÄngslagret i PSRAM, övergÄtt till Ättabitiga aktiveringar, distribuerat berÀkningar mellan tvÄ Xtensa LX7-kÀrnor och genomfört andra optimeringar reducerades fördröjningen till 94,9 ms per modellsteg. Den slutgiltiga uppmÀtta hastigheten nÄdde 9,88 token per sekund med hÀnsyn till hela genereringsprocessen. Den huvudsakliga begrÀnsningen Àr nu PSRAM:s bandbredd vid lÀsning av utgÄngslagret.

 

Modellen Àr trÀnad pÄ ett syntetiskt dataset TinyStories, bestÄende av enkla engelsksprÄkiga berÀttelser med ett begrÀnsat ordförrÄd. DÀrför kan den fortsÀtta meningar och skapa korta sammanhÀngande historier, men den Àr inte avsedd för att svara pÄ frÄgor, utföra instruktioner, programmera eller Äterge faktiska kunskaper. Utvecklaren ser arbetet frÀmst som en demonstration av effektiv modellplacering i mikrokontrollerens minne, snarare Àn som en fÀrdig autonom chattbot.

 

I den aktuella dokumentationen pÄpekar författaren sÀrskilt att esp32-ai Àr en sjÀlvstÀndig utveckling. Projekten llama2.c Andrej Karpatys och en tidigare version av en 260 000-parametrars modell pÄ ESP32-S3 nÀmns endast som referenser och exempel pÄ tidigare arbeten: kod, punktkontroller och metodik har inte direkt lÄnats frÄn dem. KÀllkoden för esp32-ai sprids under MIT-licensen.

 

KĂ€lla: linux.org.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster