Ja, du kan köra en LLM "AI chatbot" på en Raspberry Pi! Följ bara den här steg-för-steg-processen och fråga sedan vad som helst.

Stora språkmodeller, allmänt (och felaktigt) kända som AI: er, har hotat att göra publicerings-, konst- och juridikvärlden omkull i flera månader. En nackdel är att att använda LLM som ChatGPT innebär att man skapar ett konto och låter någon annans dator göra jobbet. Men du kan köra en utbildad LLM på din Raspberry Pi för att skriva poesi, svara på frågor och mer.

Vad är en stor språkmodell?

Stora språkmodeller använder maskininlärningsalgoritmer för att hitta samband och mönster mellan ord och fraser. Utbildade på stora mängder data kan de förutsäga vilka ord som statistiskt sannolikt kommer härnäst när de får en uppmaning.

Om du skulle fråga tusentals människor hur de mår idag, skulle svaren vara i stil med "jag mår bra", "Kan vara värre", "OK, men mina knän spelar upp". Konversationen skulle då vända i en annan riktning. Kanske skulle personen fråga om din egen hälsa eller följa upp med "Förlåt, jag måste springa. Jag är sen till jobbet".

instagram viewer

Med tanke på dessa uppgifter och den initiala uppmaningen borde en stor språkmodell kunna komma med ett eget övertygande och originellt svar, baserat på sannolikheten för att ett visst ord kommer nästa i en sekvens, kombinerat med en förinställd grad av slumpmässighet, upprepningsstraff och annat parametrar.

De stora språkmodellerna som används idag är inte tränade på en vox-pop på några tusen personer. Istället får de en ofattbar mängd data, skrapad från offentligt tillgängliga samlingar, sociala medieplattformar, webbsidor, arkiv och enstaka anpassade datamängder.

LLM: er utbildas av mänskliga forskare som kommer att förstärka vissa mönster och mata tillbaka dem till algoritmen. När du frågar en stor språkmodell "vilken är den bästa sortens hund?", kommer den att kunna snurra ett svar som talar om för dig att en Jack Russell terrier är den bästa sortens hund, och ge dig anledningar till varför.

Men oavsett hur intelligent eller övertygande och mänskligt dumt svaret, varken modellen eller maskinen kör på har ett sinne, och de är oförmögna att förstå vare sig frågan eller orden som utgör svar. Det är bara matematik och mycket data.

Varför köra en stor språkmodell på Raspberry Pi?

Stora språkmodeller finns överallt och används av stora sökföretag för att hjälpa till att svara på frågor.

Även om det är frestande att slänga en naturligt språkfråga på en företags svart låda, vill du ibland söka inspiration eller ställa en fråga utan att mata in ännu mer data i övervakningskapitalism.

Som en experimentbräda för tinkerare, den Raspberry Pi enkortsdator är filosofiskt, om inte fysiskt, lämpad för strävan.

I februari 2023 tillkännagav Meta (företaget tidigare känt som Facebook) LLaMA, en ny LLM med språkmodeller på mellan 7 miljarder och 65 miljarder parametrar. LLaMA tränades med hjälp av allmänt tillgängliga datauppsättningar,

LLaMA-koden är öppen källkod, vilket innebär att vem som helst kan använda och anpassa den, och "vikterna" eller parametrarna publicerades som torrents och magnetlänkar i en tråd om projektets GitHub-sida.

I mars 2023 släppte utvecklaren Georgi Gerganov lama.cpp, som kan köras på ett stort utbud av hårdvara, inklusive Raspberry Pi. Koden körs lokalt och ingen data skickas till Meta.

Installera llama.cpp på Raspberry Pi

Det finns inga publicerade hårdvaruriktlinjer för llama.cpp, men den är extremt processor-, RAM- och lagringshungrig. Se till att du kör den på en Raspberry Pi 4B eller 400 med så mycket minne, virtuellt minne, och SSD-utrymme tillgängligt som möjligt. Ett SD-kort kommer inte att klippa det, och ett fodral med hyfsad kylning är ett måste.

Vi kommer att använda modellen med 7 miljarder parametrar, så besök den här LLamA GitHub-tråd, och ladda ner 7B-torrenten med en klient som qBittorrent eller Aria.

Klona llama.cpp-förvaret och använd sedan CD kommando för att flytta till den nya katalogen:

git klona https://github.com/ggerganov/llama.cpp
CDlama.cpp

Om du inte har en kompilator installerad, installera en nu med:

sudo apt-skaffa sig installera g++

Kompilera nu projektet med detta kommando:

göra

Det finns en chans att llama.cpp misslyckas med att kompilera, och du kommer att se ett gäng felmeddelanden relaterade till "vdotq_s32". Om detta händer måste du återställa en commit. Ställ först in din lokala git-användare:

git config användarnamn "david"

Nu kan du återställa en tidigare commit:

git återgå 84d9015

Ett git commit-meddelande öppnas i nanotextredigeraren. Tryck Ctrl + O att spara alltså Ctrl + X för att avsluta nano. llama.cpp bör nu kompilera utan fel när du anger:

göra

Du måste skapa en katalog för de viktade modellerna du tänker använda:

mkdir-modeller

Överför nu de viktade modellerna från Lama katalog:

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

Se till att du har Python 3 installerat på din Pi och installera llama.cpp beroenden:

python3 -m pip Installera fackla numpy meningsstycke

NumPy-versionen kan orsaka problem. Uppgradera det:

pip Installera numpy --uppgradera

Konvertera nu 7B-modellen till ggml FP16-format:

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

Det föregående steget är extremt minneskrävande och använder, enligt vår bedömning, minst 16 GB RAM. Det är också superlångsamt och benäget att misslyckas.

Du får bättre resultat genom att följa dessa instruktioner parallellt på en stationär PC och sedan kopiera filen /models/7B/ggml-model-q4_0.bin till samma plats på din Raspberry Pi.

Kvantisera modellen till 4 bitar:

./quantize.sh 7B

Det är allt. LLaMA LLM är nu installerat på din Raspberry Pi och redo att användas!

Använder llama.cpp på Raspberry Pi

För att komma igång med llama.cpp, se till att du är i projektkatalogen och skriv in följande kommando:

./main -m ./models/7B/ggml-model-q4_0.bin -t 4 -n 128 -s "Vad är Linux-kärnan?"

De -m alternativet är att dirigera llama.cpp till den modell du vill att den ska använda; -t anger antalet trådar du vill att den ska använda; -n är antalet tokens att förutsäga; -s är din uppmaning. Du kan anpassa vilken som helst och alla dessa variabler.

Sätt dig i en lång väntan, för även om Raspberry Pi är utmärkt på vad den gör, var den inte designad för den här typen av CPU-aktivitet. I vår exempelprompt bröt lama ner texten i åtta individuella tokens innan de gav följande svar:

Linux Kernel, i ett nötskal, har alltid kallats ett operativsystem. Men det anses inte riktigt vara en eftersom för alla praktiska ändamål är de flesta av dess funktioner exponeras genom API: er och verktyg som kan användas av vilket annat operativsystem som helst som vill (eller behöver) åtkomst till dessa API(er). När det gäller Linux Kernel i sig har det inte mycket att göra med själva kärnan. Det kommer bara att starta, ta emot konfigurationsparametrar från din valbara bootloader/initrd, sedan köra igång det på lite hårdvara och du går om vad det än innebär för tillfället

Även om detta var ett ganska sammanhängande svar, resulterade ett andra försök i något som liknade grovhackad ordsallad:

De flesta av er har säkert hört talas om det men vet inte riktigt vad de pratar om. Vi kommer att diskutera detta i detalj eftersom att förstå dem till fullo hjälper oss att använda våra datorer mer effektivt och även fatta bättre beslut när du köper ny hårdvara eller mjukvara för dina datorer hemma, på kontoret etc.. Linux-kärnan är ryggraden i de flesta operativsystem som körs på ett datorsystem som android som är ett operativsystem med öppen källkod som delvis bygger på denna kärna. Men vad exakt menar de med att säga linux kernal?

Linus Torvalds har skrivit ner sina tankar (Kunskap)

Det är värt att nämna vid det här laget att var och en av dessa svar tog nästan två timmar att producera, och alla fyra CPU-kärnorna fungerade till 100 % hela tiden. Arbetet med projektet går dock snabbt och du kan förvänta dig kommande ARM-optimeringar för att få ner tiden.

Du kan också simulera hela konversationer med din LLM istället för att mata in en prompt åt gången. Lägger till -jag alternativet kommer att starta lama i interaktivt läge, medan --interaktiv-start kommer att be dig om input i början. För en fullständig lista över tillgängliga alternativ, kör:

huvud -h

Var medveten om att LlaMA inte har restriktiva regler. Det kommer ibland att vara sexistiskt, rasistiskt, homofobiskt och väldigt fel.

En stor språkmodell är ingen ersättning för verklig kunskap

Att köra Metas LLaMA på Raspberry Pi är vansinnigt coolt, och du kan bli frestad att vända dig till din virtuella guru för tekniska frågor, livsråd, vänskap eller som en riktig källa till kunskap. Låt dig inte luras. Stora språkmodeller vet ingenting, känner ingenting och förstår ingenting. Om du behöver hjälp med något är det bättre att prata med en människa eller att läsa något skrivet av en människa.

Om du har ont om tid kan du snabbläsa den i din Linux-terminal!