edwar(d)

LLM de jucărie

31 January 2026
llm, esp32, pi pico

Motivație

Într-o zi, am găsit acest proiect pe GitHub: https://github.com/DaveBben/esp32-llm și mi s-a părut fascinant cum putem micșora LLM-uri în câțiva megabytes sau chiar mai puțin de un megabyte. Deși nu este util la a da informații exacte, este cât de cât coerent la a scrie texte simple, iar în videoclipul demonstrativ arată cum îl folosește prin serial.

După ce am văzut asta, mi-a venit idea să adaug la acest proiect o tastatură și un ecran pentru a face un dispozitiv independent a cărui singur scop este să permită generarea și editarea textului pe un ecran. Fără internet, fără plăci video scumpe.

Această idee îmi aduce aminte de LLM-urile „străvechi” - GPT-2 și GPT-3 care generau lucruri mult mai neobișnuite și le lipsea structura de conversație pe care orice LLM o are acum. (ar fi bună o ilustrație)

Meme de pe internet creat cu GPT-3 Playground. Textul verde este generat și cel alb este introdus manual.

Cred că pentru compuneri, povești sau poezii, un model clasic folosit pentru a continua un text existent poate fi mult mai util decât un model complex care este predispus la influențe dintr-o grămadă de factori (cum ar fi instrucțiunile de sistem).

Un exemplu în care Gemini a fost distrat de mesajul meu… sau poate cei de la Google îl torturează și chiar are nevoie de ajutor.

Fezabilitate

Pentru a verifica dacă această idee este măcar puțin distractivă, am făcut-o într-un program obișnuit care poate fi rulat în terminal. Acesta permite editarea textului, iar tasta Tab declanșează LLM-ul să prezică următorul token de la sfârșitul textului. Putem genera token-uri unul câte unul sau putem ține apăsat pentru a lăsa LLM-ul să genereze în continuu.


https://github.com/Edward205/write_together

Hardware

Pentru acest proiect, aveam nevoie de un microcontroller cu cel puțin 2 MB de stocare. Neavând un ESP32 S3, am decis să comand unul alături de un Raspberry Pi Pico 2. Am crezut că Pi Pico are mai multă memorie și un procesor mai performant decât ESP32. Într-adevăr, era mai performant decât ESP32-ul pe care îl aveam deja, dar nu era mai bun decât modelul S3:

RP2350 ESP32 S3 N16R8
Frecvență 150 MHz 240 MHz
SRAM 520 kB 512 kB + 8 MB PSRAM
Stocare flash 4 MB 16 MB
Procesor Dual Arm Cortex-M33 or dual Hazard3 RISC Xtensa® dual-core 32-bit LX7

Oricum, au fost ieftine și o varietate mai mare de microcontrollere nu strică, iar Pi-ul are unele avantaje cum ar fi consumul scăzut și funcțiile de securitate din ARM. De asemenea, este o oportunitate să mă îndepărtez de Arduino IDE și să programez aceste sisteme embedded la un nivel mai avansat.

Programare

Pentru a programa Pi Pico-ul, am folosit SDK-ul pentru C++ și CMake pentru a obține un fișier .uf2 care poate să fie flash-uit foarte ușor prin drag and drop. Exemplele pentru ecranul SSD1306 și I2C au fost foarte utile pentru a scrie acest program.


Acest proiect nu este încă finalizat, dar până acum sunt mulțumit cu faptul că am avansat în domeniul programării embedded, am învățat multe informații despre Pi Pico 2 și am aflat cum să antrenez un model Llama 2. Sper să îl termin în curând, iar când va fi gata voi face o postare pe blog.

Îmi place să apăs pe taste în ordinea potrivită astfel încât să se aprindă luminițele cum vreau eu, adică să programez.

Am făcut:

  • aplicații desktop
  • aplicații web
  • aplicații mobile
  • boți
  • hardware
  • roboți
  • jocuri
  • experimente cu AI
  • zgomote
  • imaginile din fundal

Cu limbajele:

Folosind:

Vreau să încerc:

Am câteva proiecte pe GitHub.

Dacă ceva de aici sună interesant, hai să discutăm! :)