Áno, môžete spustiť LLM "AI chatbot" na Raspberry Pi! Postupujte podľa tohto postupu krok za krokom a potom sa ho na čokoľvek spýtajte.
Veľké jazykové modely, všeobecne (a nepresne) známe ako AI, už mesiace hrozia, že zničia svet publikovania, umenia a práva. Jednou nevýhodou je, že používanie LLM, ako je ChatGPT, znamená vytvorenie účtu a prácu na počítači niekoho iného. Ale na svojom Raspberry Pi môžete spustiť vyškolený LLM na písanie poézie, odpovedanie na otázky a ďalšie.
Čo je veľký jazykový model?
Veľké jazykové modely používajú algoritmy strojového učenia na nájdenie vzťahov a vzorov medzi slovami a frázami. Vyškolení na obrovských množstvách údajov sú schopní predpovedať, aké slová budú štatisticky pravdepodobne nasledovať, keď dostanú výzvu.
Ak by ste sa spýtali tisícov ľudí, ako sa dnes cítia, odpovede by boli v štýle: „Som v poriadku“, „Mohlo by byť horšie“, „OK, ale kolená sa mi hrajú hore“. Potom by sa rozhovor otočil iným smerom. Možno by sa táto osoba spýtala na vaše zdravie alebo by odpovedala: „Prepáčte, musím bežať. Meškám do práce."
Vzhľadom na tieto údaje a počiatočnú výzvu by veľký jazykový model mal byť schopný prísť s presvedčivou a originálnou vlastnou odpoveďou založenou na pravdepodobnosť, že určité slovo príde ako ďalšie v poradí, v kombinácii s vopred nastaveným stupňom náhodnosti, opakovanými sankciami a inými parametre.
Veľké jazykové modely, ktoré sa dnes používajú, nie sú trénované na vox pop niekoľkých tisícok ľudí. Namiesto toho dostávajú nepredstaviteľné množstvo údajov zozbieraných z verejne dostupných zbierok, platforiem sociálnych médií, webových stránok, archívov a príležitostných vlastných súborov údajov.
LLM sú vyškolení ľudskými výskumníkmi, ktorí posilnia určité vzorce a vrátia ich späť do algoritmu. Keď sa spýtate veľkého jazykového modelu „aký je najlepší druh psa?“, bude vám vedieť odpovedať, že Jack Russell teriér je najlepším druhom psa, a dá vám dôvody prečo.
Ale bez ohľadu na to, ako inteligentná alebo presvedčivo a ľudsky hlúpa je odpoveď, ani model, ani stroj beží ďalej má myseľ a nie sú schopní porozumieť ani otázke, ani slovám, ktoré tvoria odpoveď. Je to len matematika a množstvo údajov.
Prečo spustiť veľký jazykový model na Raspberry Pi?
Veľké jazykové modely sú všade a veľké vyhľadávacie spoločnosti ich prijímajú na pomoc pri odpovedaní na otázky.
Hoci je lákavé hodiť otázku v prirodzenom jazyku na firemnú čiernu skrinku, niekedy chcete hľadať inšpiráciu alebo položiť otázku bez toho, aby ste do chúťka vložili ďalšie údaje. dozorný kapitalizmus.
Ako experimentálna doska pre majstrov, Jednodoskový počítač Raspberry Pi je filozoficky, ak nie fyzicky, prispôsobený tomuto úsiliu.
Vo februári 2023 spoločnosť Meta (spoločnosť predtým známa ako Facebook) oznámila LLaMA, nový LLM, ktorý sa môže pochváliť jazykovými modelmi s 7 až 65 miliardami parametrov. LLaMA bola vyškolená pomocou verejne dostupných súborov údajov,
Kód LLaMA je open source, čo znamená, že ho môže použiť a prispôsobiť ktokoľvek, a „váhy“ alebo parametre boli zverejnené ako torrenty a magnetické odkazy vo vlákne na projekte stránka GitHub.
V marci 2023 vydal vývojár Georgi Gerganov lama.cpp, ktorý môže bežať na obrovskom rozsahu hardvéru vrátane Raspberry Pi. Kód beží lokálne a do Meta sa neposielajú žiadne údaje.
Nainštalujte llama.cpp na Raspberry Pi
Pre lama.cpp nie sú publikované žiadne hardvérové pokyny, ale je extrémne náročný na procesor, RAM a úložisko. Uistite sa, že ho používate na Raspberry Pi 4B alebo 400 s toľkou pamäťou, virtuálna pamäťa miesto na disku SSD, ako je to možné. SD karta to nepreruší a puzdro so slušným chladením je nutnosťou.
Budeme používať model so 7 miliardami parametrov, takže navštívte toto Vlákno LLamA GitHuba stiahnite si torrent 7B pomocou klienta, ako je qBittorrent alebo Aria.
Naklonujte úložisko llama.cpp a potom použite súbor cd príkaz na presun do nového adresára:
git klonovať https://github.com/ggerganov/llama.cpp
cdlama.cpp
Ak nemáte nainštalovaný kompilátor, nainštalujte si ho teraz pomocou:
sudo apt-dostať nainštalovať g++
Teraz skompilujte projekt pomocou tohto príkazu:
urobiť
Existuje šanca, že kompilácia llama.cpp zlyhá a uvidíte veľa chybových hlásení týkajúcich sa "vdotq_s32". Ak sa to stane, musíte vrátiť potvrdenie. Najprv nastavte svojho lokálneho používateľa git:
git config meno používateľa "david"
Teraz môžete vrátiť predchádzajúce odovzdanie:
git revert 84d9015
V textovom editore nano sa otvorí správa odovzdania git. Stlačte tlačidlo Ctrl + O teda zachrániť Ctrl + X pre ukončenie nano. llama.cpp by sa teraz mal skompilovať bez chýb, keď zadáte:
urobiť
Budete musieť vytvoriť adresár pre vážené modely, ktoré chcete použiť:
mkdir modely
Teraz preneste vážené modely z LLaMa adresár:
mv ~/Downloads/LLaMA/* ~/llama.cpp/models/
Uistite sa, že máte na svojom Pi nainštalovaný Python 3 a nainštalujte závislosti llama.cpp:
python3 -m pip Inštalácia fakľa numpy veta
Verzia NumPy môže spôsobiť problémy. Inovujte ho:
pip Inštalácia numpy -- upgrade
Teraz preveďte model 7B do formátu ggml FP16:
python3 convert-pth-to-ggml.py models/7B/ 1
Predchádzajúci krok je mimoriadne náročný na pamäť a podľa našich výpočtov využíva minimálne 16 GB RAM. Je tiež super pomalý a náchylný na zlyhanie.
Lepšie výsledky dosiahnete, ak budete postupovať podľa týchto pokynov súbežne na stolnom počítači a potom súbor skopírujete /models/7B/ggml-model-q4_0.bin na rovnaké miesto na vašom Raspberry Pi.
Kvantifikujte model na 4 bity:
./quantize.sh 7B
To je všetko. LLaMA LLM je teraz nainštalovaný na vašom Raspberry Pi a pripravený na použitie!
Použitie lama.cpp na Raspberry Pi
Ak chcete začať s llama.cpp, uistite sa, že ste v adresári projektu a zadajte nasledujúci príkaz:
./main -m ./models/7B/ggml-model-q4_0.bin -t 4 -n 128 -p "Čo je to jadro Linuxu?"
The -m možnosť je nasmerovať lama.cpp na model, ktorý chcete použiť; -t označuje počet vlákien, ktoré chcete použiť; -n je počet tokenov na predpovedanie; -p je vaša výzva. Všetky tieto premenné si môžete prispôsobiť.
Nechajte sa dlho čakať, pretože aj keď je Raspberry Pi vynikajúci v tom, čo robí, nebolo navrhnuté pre tento druh činnosti CPU. V našej vzorovej výzve lama rozdelila text na osem jednotlivých žetónov a potom dala nasledujúcu odpoveď:
Linuxové jadro sa v skratke vždy označovalo ako operačný systém. V skutočnosti sa však nepovažuje za jeden, pretože na všetky praktické účely je väčšina jeho funkcií vystavené prostredníctvom rozhraní API a pomôcok, ktoré môže použiť akýkoľvek iný operačný systém, ktorý k nim chce (alebo potrebuje) prístup API(s). Pokiaľ ide o samotné jadro Linuxu, so skutočným jadrom toho veľa spoločného nemá. Len sa to spustí, dostane konfiguračné parametre z vášho bootloadera/initrd podľa výberu, potom to spustíte na nejaký hardvér a môžete sa venovať čomukoľvek, čo v tomto bode znamená
Aj keď to bola celkom koherentná odpoveď, druhý pokus viedol k niečomu podobnému nahrubo nakrájanému slovnému šalátu:
Väčšina z vás už o tom pravdepodobne počula, no v skutočnosti nevie, o čom hovorí. Budeme o tom diskutovať podrobne, pretože ich pochopenie nám plne pomáha používať naše počítače viac efektívne a tiež robiť lepšie rozhodnutia pri nákupe nového hardvéru alebo softvéru pre vaše PC doma, v kancelárii atď.. Linuxové jadro je chrbticou väčšiny operačných systémov, ktoré bežia na počítačovom systéme, ako je android, čo je operačný systém s otvoreným zdrojom čiastočne založený na tomto jadre. Ale čo presne myslia tým, že hovoria linux kernal?
Linus Torvalds zapísal svoje myšlienky (Vedomosti)
V tomto bode stojí za zmienku, že výroba každej z týchto odpovedí trvala takmer dve hodiny a všetky štyri jadrá CPU pracovali na 100 %. Práca na projekte však napreduje rýchlo a môžete očakávať, že nadchádzajúce optimalizácie ARM skrátia čas.
Môžete tiež simulovať celé konverzácie s LLM namiesto toho, aby ste dostávali výzvy jednu po druhej. Pridanie -i možnosť spustí lamu v interaktívnom režime, zatiaľ čo --interactive-start na začiatku vás požiada o vstup. Úplný zoznam dostupných možností získate spustením:
hlavné -h
Uvedomte si, že LlaMA nemá obmedzujúce pravidlá. Príležitostne to bude sexistické, rasistické, homofóbne a veľmi nesprávne.
Veľký jazykový model nenahrádza skutočné znalosti
Spustenie Meta's LLaMA na Raspberry Pi je šialene skvelé a možno budete v pokušení obrátiť sa na svojho virtuálneho guru so žiadosťou o technické otázky, rady do života, priateľstvo alebo ako skutočný zdroj vedomostí. Nedajte sa oklamať. Veľké jazykové modely nič nevedia, nič necítia a ničomu nerozumejú. Ak potrebujete s niečím pomôcť, je lepšie porozprávať sa s človekom alebo si prečítať niečo, čo napísal človek.
Ak máte málo času, môžete si to rýchlo prečítať vo svojom termináli Linux!