Da, na Raspberry Pi lahko zaženete "AI chatbot" LLM! Samo sledite temu postopku po korakih in ga nato vprašajte kar koli.
Veliki jezikovni modeli, splošno (in netočno) znani kot AI, že mesece grozijo, da bodo obrnili založništvo, umetnost in pravni svet. Ena slaba stran je, da uporaba LLM-jev, kot je ChatGPT, pomeni ustvarjanje računa in delo opravi računalnik nekoga drugega. Lahko pa vodite usposobljenega LLM na vašem Raspberry Pi, da pišete poezijo, odgovarjate na vprašanja in še več.
Kaj je model velikega jezika?
Veliki jezikovni modeli uporabljajo algoritme strojnega učenja za iskanje odnosov in vzorcev med besedami in frazami. Izurjeni na ogromnih količinah podatkov so sposobni predvideti, katere besede bodo statistično verjetno prišle naslednje ob pozivu.
Če bi vprašali na tisoče ljudi, kako se počutijo danes, bi bili odgovori v vrsti: "V redu sem", "Lahko bi bilo še slabše", "V redu, ampak kolena se mi zatikajo". Pogovor bi se potem obrnil v drugo smer. Morda bi vas oseba vprašala o vašem zdravju ali nadaljevala z "Oprosti, moram teči." Zamujam v službo".
Glede na te podatke in začetni poziv bi moral biti velik jezikovni model sposoben pripraviti lasten prepričljiv in izviren odgovor, ki temelji na verjetnost, da bo določena beseda naslednja v zaporedju, v kombinaciji z vnaprej določeno stopnjo naključnosti, kaznimi za ponavljanje in drugim parametri.
Veliki jezikovni modeli, ki so danes v uporabi, niso urjeni na glasu nekaj tisoč ljudi. Namesto tega dobijo nepredstavljivo količino podatkov, pobranih iz javno dostopnih zbirk, platform družbenih medijev, spletnih strani, arhivov in občasnih naborov podatkov po meri.
LLM-je usposabljajo človeški raziskovalci, ki bodo okrepili določene vzorce in jih vrnili v algoritem. Ko vprašate velik jezikovni model "katera je najboljša vrsta psa?", vam bo lahko zavrtel odgovor, ki vam pove, da je Jack Russell terier najboljša vrsta psa, in vam navede razloge, zakaj.
Toda ne glede na to, kako inteligenten ali prepričljivo in človeško neumen je odgovor, niti model niti stroj ne teče naprej ima um in niso sposobni razumeti ne vprašanja ne besed, ki sestavljajo odgovor. To je samo matematika in veliko podatkov.
Zakaj izvajati velik jezikovni model na Raspberry Pi?
Veliki jezikovni modeli so povsod in jih sprejemajo velika iskalna podjetja za pomoč pri odgovarjanju na poizvedbe.
Medtem ko je skušnjava vreči vprašanje naravnega jezika v korporativno črno skrinjico, včasih želite poiskati navdih ali postaviti vprašanje, ne da bi v žrelo vnesli še več podatkov. nadzorni kapitalizem.
Kot eksperimentalna plošča za pocinkarje je Računalnik z eno ploščo Raspberry Pi je filozofsko, če ne fizično, primeren za ta podvig.
Februarja 2023 je Meta (podjetje, prej znano kot Facebook) napovedala LLaMA, nov LLM, ki se ponaša z jezikovnimi modeli med 7 in 65 milijardami parametrov. LLaMA je bila usposobljena z uporabo javno dostopnih podatkovnih nizov,
Koda LLaMA je odprtokodna, kar pomeni, da jo lahko uporablja in prilagaja kdorkoli, 'uteži' ali parametri pa so bili objavljeni kot torrenti in magnetne povezave v temi o projektu stran GitHub.
Marca 2023 je razvijalec Georgi Gerganov izdal lama.cpp, ki lahko deluje na široki paleti strojne opreme, vključno z Raspberry Pi. Koda se izvaja lokalno in Meta ne pošilja nobenih podatkov.
Namestite llama.cpp na Raspberry Pi
Za llama.cpp ni objavljenih smernic za strojno opremo, vendar je zelo požrešen glede procesorja, RAM-a in pomnilnika. Prepričajte se, da ga izvajate na Raspberry Pi 4B ali 400 s toliko pomnilnika, virtualni pomnilnikin kolikor je mogoče razpoložljiv prostor na SSD. Kartica SD tega ne bo zmanjšala in ohišje s spodobnim hlajenjem je nujno.
Uporabljali bomo model s 7 milijardami parametrov, zato obiščite to Nit LLamA GitHub, in prenesite torrent 7B z odjemalcem, kot je qBittorrent ali Aria.
Klonirajte repozitorij llama.cpp in nato uporabite cd ukaz za premik v nov imenik:
git klon https://github.com/ggerganov/llama.cpp
cdlama.cpp
Če nimate nameščenega prevajalnika, ga namestite zdaj z:
sudo apt-dobiti namestite g++
Zdaj prevedite projekt s tem ukazom:
narediti
Obstaja možnost, da se llama.cpp ne bo uspel prevesti, in videli boste kup sporočil o napakah v zvezi z "vdotq_s32". Če se to zgodi, morate razveljaviti objavo. Najprej nastavite lokalnega uporabnika git:
git config user.name "david"
Zdaj lahko razveljavite prejšnjo objavo:
git povrni 84d9015
V urejevalniku nano besedila se bo odprlo sporočilo git commit. Pritisnite Ctrl + O rešiti, torej Ctrl + X za izhod iz nano. llama.cpp bi moral zdaj prevesti brez napak, ko vnesete:
narediti
Ustvariti boste morali imenik za utežene modele, ki jih nameravate uporabiti:
modeli mkdir
Zdaj prenesite utežene modele iz LLaMa imenik:
mv ~/Downloads/LLaMA/* ~/llama.cpp/models/
Prepričajte se, da imate na vašem Pi nameščen Python 3 in namestite odvisnosti llama.cpp:
python3 -m pip namestite torch numpy stavek
Različica NumPy lahko povzroči težave. Nadgradite ga:
pip namestite numpy --nadgradnja
Zdaj pretvorite model 7B v format ggml FP16:
python3 convert-pth-to-ggml.py modeli/7B/ 1
Prejšnji korak je izjemno pomnilniški in po našem izračunu uporablja vsaj 16 GB RAM-a. Je tudi zelo počasen in nagnjen k okvaram.
Boljše rezultate boste dosegli, če sledite tem navodilom vzporedno na namiznem računalniku in nato kopirate datoteko /models/7B/ggml-model-q4_0.bin na isto lokacijo na vašem Raspberry Pi.
Kvantizirajte model na 4 bite:
./quantize.sh 7B
To je vse. LLaMA LLM je zdaj nameščen na vaš Raspberry Pi in pripravljen za uporabo!
Uporaba llama.cpp na Raspberry Pi
Če želite začeti uporabljati llama.cpp, se prepričajte, da ste v imeniku projekta in vnesite naslednji ukaz:
./main -m ./modeli/7B/ggml-model-q4_0.bin -t 4 -n 128 -str "Kaj je jedro Linuxa?"
The -m možnost je, da llama.cpp usmerite na model, ki ga želite uporabiti; -t označuje število niti, ki jih želite uporabiti; -n je število žetonov za napoved; -str je vaš poziv. Prilagodite lahko katero koli in vse te spremenljivke.
Privoščite si dolgo čakanje, kajti čeprav je Raspberry Pi odličen v tem, kar počne, ni bil zasnovan za tovrstno aktivnost procesorja. V našem primeru poziva je lama razdelila besedilo na osem posameznih žetonov, preden je podala naslednji odgovor:
Linux Kernel, na kratko, je bil vedno imenovan operacijski sistem. Vendar se v resnici ne šteje za enega, saj je za vse praktične namene večina njegovih funkcij izpostavljeni prek API-jev in pripomočkov, ki jih lahko uporablja kateri koli drug OS, ki želi (ali potrebuje) dostop do teh API-ji. Kar zadeva samo jedro Linuxa, z dejanskim jedrom ni veliko opraviti. Pravkar se bo zagnal, prejel konfiguracijske parametre od izbranega zagonskega nalagalnika/initrd-a, nato zagnal nekaj strojne opreme in se lotil katerega koli posla, ki ga na tej točki vključuje
Čeprav je bil to dokaj koherenten odgovor, je drugi poskus povzročil nekaj, kar je spominjalo na grobo sesekljano besedno solato:
Večina vas je verjetno že slišala za to, vendar ne veste, o čem govorijo. O tem bomo razpravljali podrobneje, ker nam njihovo popolno razumevanje pomaga pri večji uporabi naših računalnikov učinkovito in se tudi bolje odločajte pri nakupu nove strojne ali programske opreme za vaše osebne računalnike doma, v pisarnah itd. Jedro Linuxa je hrbtenica večine operacijskih sistemov, ki delujejo v računalniškem sistemu, kot je android, ki je odprtokodni operacijski sistem, ki delno temelji na tem jedru. Toda kaj točno mislijo z besedo jedro linuxa?
Linus Torvalds je zapisal svoje misli (Znanje)
Na tej točki je vredno omeniti, da je vsak od teh odzivov trajal skoraj dve uri, da so vsa štiri jedra CPU vseskozi delovala 100 %. Vendar delo na projektu poteka hitro in lahko pričakujete, da bodo prihajajoče optimizacije ARM zmanjšale čas.
Prav tako lahko simulirate celotne pogovore s svojim LLM, namesto da mu posredujete pozive enega za drugim. Dodajanje -jaz možnost bo zagnala lamo v interaktivnem načinu, medtem ko --interactive-start vas bo na začetku vprašal za vnos. Za popoln seznam razpoložljivih možnosti zaženite:
glavni -h
Zavedajte se, da LlaMA nima omejevalnih pravil. Občasno bo seksistično, rasistično, homofobno in zelo napačno.
Velik jezikovni model ni nadomestilo za pravo znanje
Izvajanje Metine LLaMA na Raspberry Pi je noro kul in morda vas bo zamikalo, da bi se obrnili na svojega virtualnega guruja za tehnična vprašanja, življenjske nasvete, prijateljstvo ali kot pravi vir znanja. Naj vas ne zavede. Veliki jezikovni modeli ne vedo ničesar, ne čutijo ničesar in ničesar ne razumejo. Če potrebujete pomoč pri nečem, je bolje, da se pogovorite s človekom ali preberete nekaj, kar je napisal človek.
Če vam primanjkuje časa, ga lahko hitro preberete v svojem terminalu Linux!