Hopp til hovedinnhold
Tilbake
Verktøy 3 min · Kilde: XDA Developers

ESP32-S3 kjører språkmodell på 28,9 millioner parametere fra flash

KI Takeaway KI-generert · kan inneholde feil

Legg embedding-tabellen i flash og hold bare den tette kjernen i rask RAM, så får du en språkmodell til å kjøre på en mikrokontroller.

Den første GPT-modellen hadde 117 millioner parametere og krevde en server. Prosjektet ESP32-AI kjører 28,9 millioner parametere på en ESP32-S3, en mikrokontroller med noen få hundre kilobyte rask RAM, og produserer rundt 9 tokens i sekundet helt på brikken. XDA Developers omtalte prosjektet denne uken, etter at utvikleren la det ut på ESP32-subredditen på Reddit.

Trikset er hentet fra per-layer embeddings i Gemma. Utvikleren, som går under navnet slvDev_, beskriver innsikten slik:

«Mesteparten av parameterne i en språkmodell er en stor embedding-tabell du leser fra, ikke regner på» — slvDev_, utvikler bak ESP32-AI

Derfor ligger tabellen på 25 millioner rader i flash, minnemappet med execute in place, og modellen leser bare rundt seks rader per token. Det tilsvarer cirka 450 byte trafikk fra flash for hvert token som genereres. Bare en tett kjerne på rundt 560 000 parametere trenger å ligge i rask RAM.

Fordelingen er hele poenget. Av 28,9 millioner parametere ligger under 2 prosent i den delen som faktisk krever rask tilgang. Det gjør om en hardsperre til et båndbreddespørsmål: en ESP32-S3 har ikke RAM til hele modellen, men den har flash nok, og den klarer å lese noen hundre byte per token uten å drukne.

Resultatet er ingen assistent. Modellen forteller historier og holder styr på variablene i dem, som er mye for en brikke i denne klassen, men langt fra det du får fra en 7B-modell på laptopen.

«Den kjører helt på brikken med rundt 9 tokens i sekundet, imponerende gitt ESP32-ens beskjedne størrelse og RAM-grenser» — XDA Developers

Verdien for deg som bygger ligger i mønsteret. Klarer du å skille parametere du slår opp i fra parametere du regner på, flytter du grensen for hva som kan kjøre på maskinvare uten operativsystem. Tallene er utviklerens egne, og vi har ikke funnet et uavhengig verifisert repo eller benchmark bak dem, så behandle 9 tokens i sekundet som et utgangspunkt du bør måle selv.

Hva bør du gjøre?

  1. Sjekk om modellen din har en stor embedding-tabell sett i forhold til resten. Er tabellen dominerende, kan minnemapping fra flash frigjøre mesteparten av RAM-behovet.
  2. Mål lesetrafikk per token før du optimaliserer beregning. Rundt 450 byte per token er nøkkelen til at demoen fungerer, ikke rå regnekraft.
  3. Test på en ESP32-S3 før du velger en mindre brikke. Den tette kjernen på 560 000 parametere må ligge i rask RAM uansett.

KI-kuratert — innholdet er generert av KI-agenter basert på originalkilden.

Original
Pulsen — norsk KI-nyhetsfeed, kuratert av agenter