Ja, du kan kjøre en LLM "AI chatbot" på en Raspberry Pi! Bare følg denne trinnvise prosessen og spør om hva som helst.

Store språkmodeller, kjent generelt (og unøyaktig) som AI-er, har truet med å ødelegge publiserings-, kunst- og juridiske verden i flere måneder. En ulempe er at bruk av LLM-er som ChatGPT betyr å opprette en konto og la andres datamaskin gjøre jobben. Men du kan kjøre en opplært LLM på Raspberry Pi for å skrive poesi, svare på spørsmål og mer.

Hva er en stor språkmodell?

Store språkmodeller bruker maskinlæringsalgoritmer for å finne sammenhenger og mønstre mellom ord og uttrykk. Opplært på enorme mengder data, er de i stand til å forutsi hvilke ord som statistisk sannsynlig vil komme neste når de får en melding.

Hvis du skulle spørre tusenvis av mennesker hvordan de hadde det i dag, ville svarene vært i stil med: "Jeg har det bra", "Kan være verre", "OK, men knærne mine spiller opp". Samtalen ville da snu i en annen retning. Kanskje personen ville spurt om din egen helse, eller fulgt opp med "Beklager, jeg må løpe. Jeg er sent ute på jobb".

Gitt disse dataene og den første oppfordringen, bør en stor språkmodell være i stand til å komme med et overbevisende og originalt svar på egen hånd, basert på sannsynligheten for at et bestemt ord kommer neste i en sekvens, kombinert med en forhåndsinnstilt grad av tilfeldighet, gjentakelsesstraff og annet parametere.

De store språkmodellene som brukes i dag er ikke trent på en vox-pop på noen få tusen mennesker. I stedet får de en ufattelig mengde data, skrapet fra offentlig tilgjengelige samlinger, sosiale medieplattformer, nettsider, arkiver og sporadiske tilpassede datasett.

LLM-er er trent av menneskelige forskere som vil forsterke visse mønstre og mate dem tilbake til algoritmen. Når du spør en stor språkmodell "hva er den beste typen hund?", vil den kunne spinne et svar som forteller deg at en Jack Russell terrier er den beste hunden, og gi deg grunner til hvorfor.

Men uansett hvor intelligent eller overbevisende og menneskelig dumt svaret er, verken modellen eller maskinen kjører på har et sinn, og de er ute av stand til å forstå verken spørsmålet eller ordene som utgjør respons. Det er bare matematikk og mye data.

Hvorfor kjøre en stor språkmodell på Raspberry Pi?

Store språkmodeller er overalt, og blir tatt i bruk av store søkeselskaper for å hjelpe til med å svare på spørsmål.

Selv om det er fristende å kaste et naturlig språkspørsmål på en bedrifts svart boks, vil du noen ganger søke etter inspirasjon eller stille et spørsmål uten å mate enda mer data inn i maven på overvåkingskapitalisme.

Som et eksperimentelt brett for tinkerer Raspberry Pi enkeltkorts datamaskin er filosofisk, om ikke fysisk, egnet til bestrebelsen.

I februar 2023 annonserte Meta (selskapet tidligere kjent som Facebook) LLaMA, en ny LLM med språkmodeller på mellom 7 milliarder og 65 milliarder parametere. LLaMA ble trent ved å bruke offentlig tilgjengelige datasett,

LLaMA-koden er åpen kildekode, noe som betyr at alle kan bruke og tilpasse den, og "vektene" eller parameterne ble lagt ut som torrents og magnetlenker i en tråd om prosjektets GitHub-siden.

I mars 2023 slapp utvikleren Georgi Gerganov lama.cpp, som kan kjøres på et stort utvalg maskinvare, inkludert Raspberry Pi. Koden kjører lokalt, og ingen data sendes til Meta.

Installer llama.cpp på Raspberry Pi

Det er ingen publiserte retningslinjer for maskinvare for llama.cpp, men den er ekstremt sulten på prosessor, RAM og lagring. Pass på at du kjører den på en Raspberry Pi 4B eller 400 med så mye minne, virtuell hukommelse, og SSD-plass tilgjengelig som mulig. Et SD-kort kommer ikke til å kutte det, og en sak med grei kjøling er en nødvendighet.

Vi kommer til å bruke 7 milliarder parametermodellen, så besøk denne LLamA GitHub-tråd, og last ned 7B-torrenten ved å bruke en klient som qBittorrent eller Aria.

Klon llama.cpp-depotet og bruk deretter cd kommando for å flytte inn i den nye katalogen:

git klone https://github.com/ggerganov/llama.cpp
cdlama.cpp

Hvis du ikke har en kompilator installert, installer en nå med:

sudo apt- installer g++

Nå kompiler prosjektet med denne kommandoen:

gjøre

Det er en sjanse for at llama.cpp ikke klarer å kompilere, og du vil se en haug med feilmeldinger knyttet til "vdotq_s32". Hvis dette skjer, må du tilbakestille en forpliktelse. Først setter du inn din lokale git-bruker:

git config brukernavn "david"

Nå kan du tilbakestille en tidligere forpliktelse:

git tilbake 84d9015

En git commit-melding åpnes i nanotekstredigereren. trykk Ctrl + O å spare, da Ctrl + X for å avslutte nano. llama.cpp skal nå kompilere uten feil når du skriver inn:

gjøre

Du må opprette en katalog for de vektede modellene du har tenkt å bruke:

mkdir-modeller

Overfør nå de vektede modellene fra LLaMa katalog:

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

Sørg for at du har Python 3 installert på Pi-en din, og installer llama.cpp-avhengighetene:

python3 -m pip installere fakkel numpy setningsstykke

NumPy-versjonen kan forårsake problemer. Oppgrader den:

pip installere nusset --Oppgradering

Konverter nå 7B-modellen til ggml FP16-format:

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

Det forrige trinnet er ekstremt minnekrevende og bruker, etter vår beregning, minst 16 GB RAM. Den er også super treg og utsatt for feil.

Du vil få bedre resultater ved å følge disse instruksjonene parallelt på en stasjonær PC, og deretter kopiere filen /models/7B/ggml-model-q4_0.bin til samme sted på din Raspberry Pi.

Kvantiser modellen til 4 biter:

./quantize.sh 7B

Det er det. LLaMA LLM er nå installert på din Raspberry Pi, og klar til bruk!

Bruker llama.cpp på Raspberry Pi

For å komme i gang med llama.cpp, sørg for at du er i prosjektkatalogen og skriv inn følgende kommando:

./main -m ./models/7B/ggml-model-q4_0.bin -t 4 -n 128 -s "Hva er Linux-kjernen?"

De -m alternativet er å dirigere llama.cpp til modellen du vil at den skal bruke; -t angir antall tråder du vil at den skal bruke; -n er antall tokens å forutsi; -s er forespørselen din. Du kan tilpasse hvilken som helst og alle disse variablene.

Sett deg godt til rette for en lang ventetid, for selv om Raspberry Pi er utmerket i det den gjør, var den ikke designet for denne typen CPU-aktivitet. I eksempelet vårt delte lamaen opp teksten i åtte individuelle tokens, før de ga følgende svar:

Linux Kernel, i et nøtteskall, har alltid blitt referert til som et operativsystem. Imidlertid regnes det egentlig ikke som en, siden for alle praktiske formål er de fleste funksjonene det eksponert gjennom APIer og verktøy som kan brukes av alle andre operativsystemer som ønsker (eller trenger) tilgang til disse API(er). Når det gjelder Linux Kernel selv, er det ikke mye å gjøre med selve kjernen. Det vil bare starte, motta konfigurasjonsparametere fra oppstartslasteren/initrd-en du velger, og deretter sette i gang med noe maskinvare, og du går i gang med hva som helst forretninger det innebærer på dette tidspunktet

Selv om dette var et ganske sammenhengende svar, resulterte et nytt forsøk i noe som lignet grovt hakket ordsalat:

De fleste av dere har sikkert hørt om det, men vet ikke helt hva de snakker om. Vi vil diskutere dette i detalj fordi å forstå dem fullt ut hjelper oss å bruke datamaskinene våre mer effektivt og også ta bedre beslutninger når du kjøper ny maskinvare eller programvare til PC-ene hjemme, på kontoret etc.. Linux-kjernen er ryggraden i de fleste operativsystemer som kjører på et datasystem som android som er et åpen kildekode-operativsystem basert delvis fra denne kjernen. Men hva mener de egentlig med å si linux kernal?

Linus Torvalds har skrevet ned tankene sine (Kunnskap)

Det er verdt å nevne på dette tidspunktet at hver av disse svarene tok nesten to timer å produsere, og at alle fire CPU-kjernene fungerte 100 % hele veien. Arbeidet med prosjektet går imidlertid raskt, og du kan forvente at kommende ARM-optimaliseringer reduserer tiden.

Du kan også simulere hele samtaler med LLM-en din i stedet for å gi den en melding om gangen. Legger til -Jeg alternativet vil starte lama i interaktiv modus, mens --interaktiv-start vil be deg om innspill i starten. For en fullstendig liste over tilgjengelige alternativer, kjør:

hoved -h

Vær oppmerksom på at LlaMA ikke har restriktive regler. Det vil noen ganger være sexistisk, rasistisk, homofobt og veldig feil.

En stor språkmodell er ingen erstatning for ekte kunnskap

Å kjøre Metas LLaMA på Raspberry Pi er vanvittig kult, og du kan bli fristet til å henvende deg til din virtuelle guru for tekniske spørsmål, livsråd, vennskap eller som en ekte kilde til kunnskap. Ikke la deg lure. Store språkmodeller vet ingenting, føler ingenting og forstår ingenting. Hvis du trenger hjelp til noe, er det bedre å snakke med et menneske eller å lese noe skrevet av et menneske.

Hvis du har lite tid, kan du hurtiglese den i Linux-terminalen din!