Ja, je kunt een LLM "AI-chatbot" uitvoeren op een Raspberry Pi! Volg gewoon dit stapsgewijze proces en vraag het dan alles.
Grote taalmodellen, algemeen (en onnauwkeurig) bekend als AI's, dreigen al maanden de publicatie-, kunst- en juridische wereld op zijn kop te zetten. Een nadeel is dat het gebruik van LLM's zoals ChatGPT betekent dat u een account aanmaakt en de computer van iemand anders het werk laat doen. Maar je kunt een getrainde LLM op je Raspberry Pi uitvoeren om poëzie te schrijven, vragen te beantwoorden en meer.
Wat is een groot taalmodel?
Grote taalmodellen gebruiken machine learning-algoritmen om relaties en patronen tussen woorden en zinnen te vinden. Ze zijn getraind op enorme hoeveelheden gegevens en kunnen voorspellen welke woorden statistisch gezien waarschijnlijk als volgende zullen komen als ze daarom worden gevraagd.
Als je duizenden mensen zou vragen hoe ze zich vandaag voelen, zouden de antwoorden zijn in de trant van: "Het gaat goed", "Kan erger", "OK, maar mijn knieën spelen op". Het gesprek zou dan een andere kant op gaan. Misschien zou de persoon naar je eigen gezondheid vragen, of vervolgen met "Sorry, ik moet vluchten. Ik ben laat voor mijn werk".
Op basis van deze gegevens en de eerste aanzet zou een groot taalmodel in staat moeten zijn om zelf met een overtuigend en origineel antwoord te komen, gebaseerd op de waarschijnlijkheid dat een bepaald woord als volgende in een reeks komt, gecombineerd met een vooraf ingestelde mate van willekeur, herhalingsstraffen en andere parameters.
De grote taalmodellen die tegenwoordig in gebruik zijn, zijn niet getraind op een vox pop van een paar duizend mensen. In plaats daarvan krijgen ze een onvoorstelbare hoeveelheid gegevens, geschraapt uit openbaar beschikbare collecties, socialemediaplatforms, webpagina's, archieven en af en toe aangepaste datasets.
LLM's worden getraind door menselijke onderzoekers die bepaalde patronen versterken en terugkoppelen naar het algoritme. Als je een groot taalmodel vraagt "wat is het beste soort hond?", zal het een antwoord kunnen draaien dat je vertelt dat een Jack Russell-terriër het beste soort hond is, en je redenen geven waarom.
Maar hoe intelligent of overtuigend en menselijk dom het antwoord ook is, noch het model, noch de machine het Runs on heeft een geest, en ze zijn niet in staat om de vraag of de woorden te begrijpen die deel uitmaken van de antwoord. Het is gewoon wiskunde en veel gegevens.
Waarom een groot taalmodel uitvoeren op Raspberry Pi?
Grote taalmodellen zijn overal en worden gebruikt door grote zoekbedrijven om te helpen bij het beantwoorden van vragen.
Hoewel het verleidelijk is om een natuurlijke taalvraag naar een zwarte doos van een bedrijf te gooien, wil je soms naar inspiratie zoeken of een vraag stellen zonder nog meer gegevens in de muil van surveillance kapitalisme.
Als experimenteerbord voor knutselaars is de Raspberry Pi single-board computer is filosofisch, zo niet fysiek, geschikt voor de onderneming.
In februari 2023 kondigde Meta (het bedrijf dat voorheen bekend stond als Facebook) LLaMA aan, een nieuwe LLM met taalmodellen van tussen de 7 miljard en 65 miljard parameters. LLaMA is getraind met behulp van openbaar beschikbare datasets,
De LLaMA-code is open source, wat betekent dat iedereen deze kan gebruiken en aanpassen, en de 'gewichten' of parameters zijn gepost als torrents en magneetlinks in een thread over het project GitHub-pagina.
In maart 2023 kwam ontwikkelaar Georgi Gerganov uit lama.cpp, die op een enorm scala aan hardware kan draaien, waaronder Raspberry Pi. De code wordt lokaal uitgevoerd en er worden geen gegevens naar Meta verzonden.
Installeer lama.cpp op Raspberry Pi
Er zijn geen gepubliceerde hardwarerichtlijnen voor llama.cpp, maar het is extreem hongerig naar processor, RAM en opslag. Zorg ervoor dat je het draait op een Raspberry Pi 4B of 400 met zoveel geheugen, virtueel geheugen, en SSD-ruimte beschikbaar mogelijk. Een SD-kaart gaat het niet redden, en een behuizing met behoorlijke koeling is nodig.
We gaan het 7 miljard parametermodel gebruiken, dus bezoek dit LlamA GitHub-thread, en download de 7B-torrent met een client zoals qBittorrent of Aria.
Kloon de llama.cpp-repository en gebruik vervolgens de CD opdracht om naar de nieuwe map te gaan:
gek kloon https://github.com/ggerganov/llama.cpp
CDlama.cpp
Als je geen compiler hebt geïnstalleerd, installeer er dan nu een met:
sudo apt-krijgen installeer g++
Compileer nu het project met deze opdracht:
maken
Er is een kans dat llama.cpp niet kan compileren, en je zult een aantal foutmeldingen zien met betrekking tot "vdotq_s32". Als dit gebeurt, moet u een commit ongedaan maken. Stel eerst je lokale git-gebruiker in:
git config gebruikersnaam "David"
Nu kun je een eerdere commit ongedaan maken:
git terugzetten 84d9015
Er wordt een git commit-bericht geopend in de nano-teksteditor. druk op Ctrl+O om te sparen dan Ctrl+X om nano af te sluiten. lama.cpp zou nu zonder fouten moeten compileren wanneer u invoert:
maken
U moet een map maken voor de gewogen modellen die u wilt gebruiken:
mkdir-modellen
Breng nu de gewogen modellen over van de Lama map:
mv ~/Downloads/Lama/* ~/lama.cpp/models/
Zorg ervoor dat Python 3 op je Pi is geïnstalleerd en installeer de lama.cpp-afhankelijkheden:
python3 -m pip installeren torch numpy zinstuk
De NumPy-versie kan problemen veroorzaken. Upgrade het:
Pip installeren onnozel --upgrade
Converteer nu het 7B-model naar het ggml FP16-formaat:
python3 convert-pth-to-ggml.py models/7B/ 1
De vorige stap is extreem geheugenintensief en gebruikt volgens onze berekening minimaal 16 GB RAM. Het is ook super traag en vatbaar voor storingen.
U krijgt betere resultaten door deze instructies parallel op een desktop-pc te volgen en vervolgens het bestand te kopiëren /models/7B/ggml-model-q4_0.bin naar dezelfde locatie op uw Raspberry Pi.
Kwantiseer het model tot 4 bits:
./kwantiseren.sh 7B
Dat is het. LLaMA LLM is nu op je Raspberry Pi geïnstalleerd en klaar voor gebruik!
Llama.cpp gebruiken op Raspberry Pi
Om aan de slag te gaan met llama.cpp, zorg ervoor dat u zich in de projectdirectory bevindt en voer de volgende opdracht in:
./main -m ./models/7B/ggml-model-q4_0.bin -t 4 -N 128 -P "Wat is de Linux-kernel?"
De -M optie is om lama.cpp naar het model te leiden dat u wilt gebruiken; -T geeft het aantal threads aan dat u wilt gebruiken; -N is het aantal te voorspellen tokens; -P is uw prompt. U kunt al deze variabelen aanpassen.
Neem genoegen met lang wachten, want hoewel de Raspberry Pi uitstekend is in wat hij doet, is hij niet ontworpen voor dit soort CPU-activiteit. In onze voorbeeldprompt brak lama de tekst op in acht afzonderlijke tokens, voordat hij het volgende antwoord gaf:
Linux Kernel, in een notendop, is altijd een besturingssysteem genoemd. Het wordt echter niet echt als één beschouwd, omdat voor alle praktische doeleinden de meeste functies dat wel zijn blootgesteld via API's en hulpprogramma's die kunnen worden gebruikt door elk ander besturingssysteem dat daar toegang toe wil (of nodig heeft). API('s). Wat Linux Kernel zelf betreft, heeft er niet veel te maken met de eigenlijke kernel. Het begint gewoon, ontvangt configuratieparameters van je bootloader / initrd naar keuze, zet het dan op wat hardware en je gaat verder met alle zaken die op dit punt met zich meebrengen
Hoewel dit een redelijk samenhangend antwoord was, resulteerde een tweede poging in iets dat leek op grof gehakte woordsalade:
De meesten van jullie hebben er waarschijnlijk wel van gehoord, maar weten niet echt waar ze het over hebben. We zullen dit in detail bespreken, omdat een volledig begrip ervan ons helpt onze computers meer te gebruiken efficiënt en neem ook betere beslissingen bij het kopen van nieuwe hardware of software voor uw pc's thuis, op kantoor enz.. De Linux-kernel is de ruggengraat van de meeste besturingssystemen die draaien op een computersysteem zoals Android, een open source besturingssysteem dat gedeeltelijk op deze kernel is gebaseerd. Maar wat bedoelen ze precies met linux kernal?
De Linus Torvalds heeft zijn gedachten opgeschreven (Kennis)
Het is de moeite waard om op dit punt te vermelden dat elk van deze reacties bijna twee uur in beslag nam en dat alle vier de CPU-kernen de hele tijd voor 100% werkten. Het werk aan het project gaat echter snel en u kunt verwachten dat aanstaande ARM-optimalisaties de tijd verkorten.
U kunt ook hele gesprekken simuleren met uw LLM in plaats van de prompts één voor één te voeren. Het toevoegen van de -i optie start lama in interactieve modus, terwijl --interactieve start zal u aan het begin om input vragen. Voer het volgende uit voor een volledige lijst met beschikbare opties:
hoofd -h
Houd er rekening mee dat LlaMA geen beperkende regels heeft. Het zal af en toe seksistisch, racistisch, homofoob en heel verkeerd zijn.
Een groot taalmodel is geen vervanging voor echte kennis
Het runnen van Meta's LLaMA op Raspberry Pi is waanzinnig cool, en je zou in de verleiding kunnen komen om je virtuele goeroe te wenden voor technische vragen, levensadvies, vriendschap of als een echte bron van kennis. Laat u niet misleiden. Grote taalmodellen weten niets, voelen niets en begrijpen niets. Als je ergens hulp bij nodig hebt, kun je beter met een mens praten of iets lezen dat door een mens is geschreven.
Als je weinig tijd hebt, kun je het snel lezen in je Linux-terminal!