28,9 miljoni parameetriga keelemudel töötab ESP32-S3-l


1

Arendaja Vyacheslav Serbov, kes esindab end pseudonüümi slvDev all, haavatavust, mis võimaldas ründajal käivitada oma koodi serveripoolel api.wordpress.org. on täielikult kohaliku teksti genereerimine mikrokontrolleril ESP32-S3. Tema loodud keelemudel sisaldab 28,9 miljonit parameetrit ja genereerib umbes 9,9 tokenit sekundis, ilma serverite või teiste väliste arvutusressurssideta. Generatsioonitud lühilood kuvatakse ühendatud OLED-ekraanil.

Projekt esp32-ai katsetatud ESP32-S3 N16R8 moodulil, millel on 512 KB sisseehitatud SRAM, 8 MB PSRAM ja 16 MB välk mälu. Neli bitti kvantitud mudel võtab 14,9 MB. Repositooriumis on avaldatud C keele täitevkeskkonna allikas, mudeli koolitamise ja kvantimise vahendid, püsivara, testid ja stsenaariumid selle plaadile laadimiseks.

Kavandatud 28,9 miljonit parameetrit ei tohiks otseselt võrrelda tavaliste arvutite LLM-de parameetrite arvuga. Vastavalt arendaja üksikasjalikule raportile, mudel koosneb tihedast arvutuslikust tuumast, kus on umbes 559 tuhat parameetrit, väljundkihist, kus on 3,1 miljonit parameetrit, ja tasanditevaheliste vektorite esituste tabelist, kus on umbes 25 miljonit parameetrit. Just viimane tagab mudeli ametliku suuruse peamise osa, kuid ei töödelda täielikult iga tokeni genereerimisel.

Mudeli paigutamiseks kasutatakse kolme taseme mälu. Kõige sagedamini kasutatavad andmed asuvad sisemises SRAM-is, väljundkiht, KV-cache ja ajutised puBufferid – PSRAM-is, samas kui 25-miljoniline tabel jääb välk mällu ja on saadaval aadressiruumi kaudu. Iga tokeni jaoks loetakse sellest ainult umbes kuus rida, mille kogumaht on umbes 450 baiti.

Selline seade põhineb tehnoloogial Per-Layer Embeddings, mida Google rakendas Gemma 3n-is. Vastavalt Google'i dokumentatsioonile, PLE-parameetreid saab salvestada mudeli töömälu välja ja lisada väljundprotsessi käigus, kui töötatakse läbi individuaalsete kihtide. esp32-ai on see lähenemine viidud mikrokontrolleri mäluhierarhiasse, kus kiire SRAM on eriti piiratud.

Esimene õige versioon C-interpreterist andis vaid 0,57 tokenit sekundis. Pärast väljundkihi paigutamist PSRAM-i, üleminekut kaheksabitiseks aktiveerimiseks, arvutiste jagamist kahe Xtensa LX7 tuuma vahel ning muid optimeerimisi vähenes viivitus mudeli sammu kohta 94,9 ms-ni. Lõplik mõõdetud kiirus saavutas 9,88 tokenit sekundis, arvestades kogu genereerimisprotsessi. Peamine piirang on nüüd PSRAM-i ribalaius väljundkihi lugemisel.

Mudelit on koolitatud sünteetilise andmekogumi peal TinyStories, mis koosneb lihtsatest ingliskeelsetest lugudest piiratud sõnavaraga. Seetõttu suudab see jätkata lauseid ja luua väikeseid sidusaid lugusid, kuid ei ole mõeldud küsimustele vastamiseks, juhiste täitmiseks, programmeerimiseks või faktiteadmiste edastamiseks. Arendaja peab tööd eelkõige efektiivse mudeli paigutamise demonstreerimiseks mikroprotsessori mällu, mitte valmis iseseisva juturoboti loomiseks.

Ajakohases dokumentatsioonis rõhutab autor eraldi, et esp32-ai on iseseisev arendus. Projektid llama2.c Andrei Karpaty ja varasema 260 000 parameetriga mudeli käitamine ESP32-S3-l on toodud vaid suuniste ja eelnevate tööde näidetena: kood, kontrollpunktid ja meetodid ei ole otse neist laenatud. esp32-ai allikas levitatakse MIT litsentsi alusel.

Allikas: linux.org.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster