Da, možete pokrenuti LLM "AI chatbot" na Raspberry Pi! Samo slijedite ovaj postupak korak po korak i zatim ga pitajte bilo što.

Veliki jezični modeli, poznati općenito (i netočno) kao AI, mjesecima prijete da će preokrenuti svijet izdavaštva, umjetnosti i prava. Jedna loša strana je da korištenje LLM-a kao što je ChatGPT znači stvaranje računa i prepuštanje tuđem računalu da obavi posao. Ali možete pokrenuti obučenog LLM-a na svom Raspberry Piju da piše poeziju, odgovara na pitanja i još mnogo toga.

Što je model velikog jezika?

Veliki jezični modeli koriste algoritme strojnog učenja za pronalaženje odnosa i uzoraka između riječi i fraza. Uvježbani na golemim količinama podataka, oni su u stanju predvidjeti koje će riječi statistički vjerojatno doći sljedeće kada ih se zatraži.

Kad biste pitali tisuće ljudi kako se danas osjećaju, odgovori bi bili sljedeći: "Dobro sam", "Može biti i gore", "OK, ali koljena mi klecaju". Razgovor bi tada skrenuo u drugom smjeru. Možda bi vas osoba pitala o vašem zdravlju ili nadovezala: "Oprosti, moram trčati. Kasnim na posao".

instagram viewer

Uzimajući u obzir ove podatke i početni upit, veliki jezični model trebao bi moći doći do vlastitog uvjerljivog i originalnog odgovora, temeljenog na vjerojatnost da će određena riječ biti sljedeća u nizu, u kombinaciji s unaprijed određenim stupnjem slučajnosti, kaznama za ponavljanje i drugim parametri.

Veliki jezični modeli koji se danas koriste nisu uvježbani na vox pop-u od nekoliko tisuća ljudi. Umjesto toga, dana im je nezamisliva količina podataka izvučena iz javno dostupnih zbirki, platformi društvenih medija, web stranica, arhiva i povremenih prilagođenih skupova podataka.

LLM-ove obučavaju ljudski istraživači koji će pojačati određene obrasce i vratiti ih algoritmu. Kada pitate veliki jezični model "koja je najbolja vrsta psa?", moći će vam dati odgovor koji vam govori da je Jack Russell terijer najbolja vrsta psa i dati vam razloge zašto.

Ali bez obzira na to koliko odgovor bio inteligentan ili uvjerljivo i ljudski glup, ni model ni stroj trči dalje ima um, i oni nisu u stanju razumjeti ni pitanje ni riječi koje čine odgovor. To je samo matematika i puno podataka.

Zašto pokrenuti veliki jezični model na Raspberry Pi?

Veliki jezični modeli prisutni su posvuda i usvajaju ih velike tvrtke za pretraživanje kako bi pomogle u odgovaranju na upite.

Iako je primamljivo baciti pitanje prirodnog jezika u korporativnu crnu kutiju, ponekad želite potražiti inspiraciju ili postaviti pitanje bez unosa još više podataka u usta nadzorni kapitalizam.

Kao pokusna daska za petljare, Jednopločno računalo Raspberry Pi je filozofski, ako ne i fizički, prikladan za taj pothvat.

U veljači 2023. Meta (tvrtka prije poznata kao Facebook) najavila je LLaMA, novi LLM koji se može pohvaliti jezičnim modelima između 7 milijardi i 65 milijardi parametara. LLaMA je obučen korištenjem javno dostupnih skupova podataka,

Kod LLaMA je otvorenog koda, što znači da ga svatko može koristiti i prilagoditi, a 'težine' ili parametri objavljeni su kao torrente i magnetne veze u niti o projektu GitHub stranica.

U ožujku 2023. programer Georgi Gerganov objavio je lama.cpp, koji može raditi na velikom broju hardvera, uključujući Raspberry Pi. Kod se izvodi lokalno i nikakvi podaci se ne šalju Meti.

Instalirajte llama.cpp na Raspberry Pi

Ne postoje objavljene hardverske smjernice za llama.cpp, ali iznimno je gladan procesora, RAM-a i pohrane. Provjerite pokrećete li ga na Raspberry Pi 4B ili 400 s toliko memorije, virtualna memorija, i SSD prostor dostupan koliko god je to moguće. SD kartica neće uspjeti, i kućište s pristojnim hlađenjem obavezno.

Koristit ćemo model od 7 milijardi parametara, stoga posjetite ovo LLamA GitHub nit, i preuzmite 7B torrent pomoću klijenta kao što je qBittorrent ili Aria.

Klonirajte repozitorij llama.cpp i zatim upotrijebite CD naredba za prelazak u novi direktorij:

git klon https://github.com/ggerganov/llama.cpp
CDljama.cpp

Ako nemate instaliran kompajler, instalirajte ga sada s:

sudo apt-dobiti instalirajte g++

Sada prevedite projekt ovom naredbom:

napraviti

Postoji mogućnost da se llama.cpp neće uspjeti kompajlirati i vidjet ćete hrpu poruka o pogrešci koje se odnose na "vdotq_s32". Ako se to dogodi, trebate poništiti predaju. Prvo postavite svog lokalnog git korisnika:

git config user.name "David"

Sada možete poništiti prethodnu predaju:

git vrati 84d9015

Git commit poruka otvorit će se u uređivaču nano teksta. Pritisnite Ctrl + O spasiti, dakle Ctrl + X za izlaz iz nano. llama.cpp bi sada trebao kompilirati bez grešaka kada unesete:

napraviti

Morat ćete izraditi direktorij za ponderirane modele koje namjeravate koristiti:

mkdir modeli

Sada prenesite ponderirane modele iz LLaMa imenik:

mv ~/Downloads/LlaMA/* ~/llama.cpp/models/

Provjerite imate li Python 3 instaliran na svom Piju i instalirajte ovisnosti llama.cpp:

python3 -m pip instalirati baklja numpy sentenca

Verzija NumPy može uzrokovati probleme. Nadogradite ga:

pip instalirati numpy --nadogradnja

Sada pretvorite 7B model u ggml FP16 format:

python3 convert-pth-to-ggml.py modeli/7B/ 1

Prethodni korak iznimno je memorijski intenzivan i, prema našem proračunu, koristi najmanje 16 GB RAM-a. Također je super spor i sklon kvarovima.

Dobit ćete bolje rezultate ako paralelno slijedite ove upute na stolnom računalu, a zatim kopirate datoteku /models/7B/ggml-model-q4_0.bin na isto mjesto na vašem Raspberry Piju.

Kvantizirajte model na 4 bita:

./kvantizirati.sh 7B

To je to. LLaMA LLM je sada instaliran na vaš Raspberry Pi i spreman za korištenje!

Korištenje llama.cpp na Raspberry Pi

Da biste započeli s llama.cpp, provjerite jeste li u direktoriju projekta i unesite sljedeću naredbu:

./glavni -m ./modeli/7B/ggml-model-q4_0.bin -t 4 -n 128 -str "Što je Linux kernel?"

The -m opcija je usmjeriti llama.cpp na model koji želite da koristi; -t označava broj niti koje želite da koristi; -n je broj tokena za predviđanje; -str je tvoj upit. Možete prilagoditi bilo koju ili sve ove varijable.

Priuštite se dugom čekanju, jer iako je Raspberry Pi izvrstan u onome što radi, nije dizajniran za ovu vrstu CPU aktivnosti. U našem upitu za primjer, llama je razbio tekst na osam pojedinačnih tokena, prije nego što je dao sljedeći odgovor:

Linux Kernel, ukratko, uvijek se nazivao operativnim sustavom. Međutim, zapravo se ne smatra takvim jer za sve praktične svrhe većina njegovih funkcija jest izloženi kroz API-je i pomoćne programe koje može koristiti bilo koji drugi OS koji želi (ili treba) njima pristupiti Apis). Što se same jezgre Linuxa tiče, nema baš puno veze sa stvarnom jezgrom. Samo će se pokrenuti, primiti konfiguracijske parametre od vašeg bootloadera/initrd-a po izboru, zatim pokrenuti na nekom hardveru i nastaviti s bilo kojim poslom koji uključuje u ovom trenutku

Iako je ovo bio prilično koherentan odgovor, drugi pokušaj rezultirao je nečim nalik na grubo nasjeckanu salatu od riječi:

Većina vas je vjerojatno čula za to, ali zapravo ne znate o čemu govore. O tome ćemo detaljnije raspravljati jer nam njihovo potpuno razumijevanje pomaže da više koristimo svoja računala učinkovito i donosite bolje odluke pri kupnji novog hardvera ili softvera za svoja računala kod kuće, u uredima itd.. Jezgra Linuxa je okosnica većine operativnih sustava koji rade na računalnim sustavima kao što je android koji je operativni sustav otvorenog koda koji se dijelom temelji na ovoj jezgri. Ali što točno misle kad kažu linux kernal?

Linus Torvalds je zapisao svoje misli (Znanje)

Ovdje je vrijedno spomenuti da je za svaki od ovih odgovora trebalo skoro dva sata, a da su sve četiri CPU jezgre radile na 100% cijelo vrijeme. Međutim, rad na projektu napreduje brzo i možete očekivati ​​da će nadolazeće ARM optimizacije smanjiti vrijeme.

Također možete simulirati cijele razgovore sa svojim LLM-om umjesto da mu šaljete upite jedan po jedan. Dodavanje -i opcija će pokrenuti llama u interaktivnom načinu rada, dok --interaktivni početak pitat će vas za unos na početku. Za potpuni popis dostupnih opcija pokrenite:

glavni -h

Budite svjesni da LlaMA nema restriktivna pravila. Ponekad će to biti seksističko, rasističko, homofobno i vrlo pogrešno.

Veliki jezični model nije zamjena za pravo znanje

Pokretanje Meta LLaMA-e na Raspberry Piju je ludo cool i možda ćete doći u iskušenje obratiti se svom virtualnom guruu za tehnička pitanja, životne savjete, prijateljstvo ili kao pravi izvor znanja. Ne dajte se zavarati. Veliki jezični modeli ne znaju ništa, ne osjećaju ništa i ne razumiju ništa. Ako vam treba pomoć oko nečega, bolje je razgovarati s ljudskim bićem ili pročitati nešto što je ljudsko biće napisalo.

Ako vam nedostaje vremena, možete ga brzo pročitati na svom Linux terminalu!