Da, puteți rula un LLM „AI chatbot” pe un Raspberry Pi! Doar urmați acest proces pas cu pas și apoi întrebați-l orice.
Modelele lingvistice mari, cunoscute în general (și inexact) ca AI, amenință de luni de zile să distrugă lumea publicării, a artei și a juridicului. Un dezavantaj este că folosirea LLM-urilor, cum ar fi ChatGPT, înseamnă a crea un cont și a avea computerul altcuiva să facă treaba. Dar puteți rula un LLM instruit pe Raspberry Pi pentru a scrie poezii, a răspunde la întrebări și multe altele.
Ce este un model de limbă mare?
Modelele de limbaj mari folosesc algoritmi de învățare automată pentru a găsi relații și modele între cuvinte și expresii. Antrenați pe cantități mari de date, aceștia sunt capabili să prezică ce cuvinte sunt susceptibile statistic să apară în continuare atunci când li se oferă o solicitare.
Dacă ar fi să întrebi mii de oameni cum s-au simțit astăzi, răspunsurile ar fi de tipul „Sunt bine”, „Ar putea fi mai rău”, „OK, dar genunchii mei se ridică”. Conversația avea să se întoarcă apoi într-o altă direcție. Poate că persoana respectivă ar întreba despre propria ta sănătate sau va continua cu „Îmi pare rău, trebuie să fug. Am intarziat la serviciu".
Având în vedere aceste date și promptul inițial, un model de limbă mare ar trebui să poată veni cu un răspuns propriu convingător și original, bazat pe probabilitatea ca un anumit cuvânt să vină în continuare într-o secvență, combinată cu un grad prestabilit de aleatorie, penalități de repetiție și alte parametrii.
Modelele mari de limbaj utilizate astăzi nu sunt antrenate pe un vox pop de câteva mii de oameni. În schimb, li se oferă o cantitate inimaginabilă de date, extrase din colecții disponibile public, platforme de social media, pagini web, arhive și seturi de date personalizate ocazional.
LLM-urile sunt instruite de cercetători umani care vor consolida anumite modele și le vor reda algoritmului. Când întrebați un model de limbă mare „care este cel mai bun fel de câine?”, acesta va putea să răspundă care vă va spune că un Jack Russell Terrier este cel mai bun tip de câine și vă va oferi motivele pentru care.
Dar, indiferent cât de inteligent sau convingător și uman prost răspunsul, nici modelul, nici mașina runs on are o minte și sunt incapabili să înțeleagă nici întrebarea, nici cuvintele care compun raspuns. Este doar matematică și multe date.
De ce să rulați un model de limbă mare pe Raspberry Pi?
Modelele de limbă mari sunt peste tot și sunt adoptate de marile companii de căutare pentru a ajuta la răspunsul la întrebări.
Deși este tentant să arunci o întrebare în limbaj natural într-o cutie neagră corporativă, uneori vrei să cauți inspirație sau să pui o întrebare fără a introduce încă mai multe date în gura capitalismul de supraveghere.
Ca o placă experimentală pentru bricolagi, the Computer cu o singură placă Raspberry Pi este adecvat din punct de vedere filozofic, dacă nu fizic, efortului.
În februarie 2023, Meta (compania cunoscută anterior ca Facebook) a anunțat LLaMA, un nou LLM cu modele de limbaj cu între 7 și 65 de miliarde de parametri. LLaMA a fost instruit folosind seturi de date disponibile public,
Codul LLaMA este open source, ceea ce înseamnă că oricine îl poate utiliza și adapta, iar „greutățile” sau parametrii au fost postați ca torenți și link-uri magnet într-un thread al proiectului Pagina GitHub.
În martie 2023, dezvoltatorul Georgi Gerganov a lansat llama.cpp, care poate rula pe o gamă largă de hardware, inclusiv Raspberry Pi. Codul rulează local și nu sunt trimise date către Meta.
Instalați llama.cpp pe Raspberry Pi
Nu există reguli de hardware publicate pentru llama.cpp, dar este extrem de amanat de procesor, RAM și stocare. Asigurați-vă că îl rulați pe un Raspberry Pi 4B sau 400 cu cât mai multă memorie, memorie virtuala, și spațiu SSD disponibil pe cât posibil. Un card SD nu îl va tăia și o carcasa cu racire decenta este o necesitate.
Vom folosi modelul cu 7 miliarde de parametri, așa că vizitați acesta Firul LLamA GitHubși descărcați torrentul 7B folosind un client precum qBittorrent sau Aria.
Clonează depozitul llama.cpp și apoi folosește CD comandă pentru a trece în noul director:
git clonare https://github.com/ggerganov/llama.cpp
CDlamă.cpp
Dacă nu aveți un compilator instalat, instalați unul acum cu:
sudo apt-obține instalați g++
Acum compilați proiectul cu această comandă:
face
Există o șansă ca llama.cpp să nu reușească să compilați și veți vedea o grămadă de mesaje de eroare referitoare la „vdotq_s32”. Dacă se întâmplă acest lucru, trebuie să anulați un commit. Mai întâi, setați utilizatorul local git:
git config user.name "david"
Acum puteți reveni la o comitere anterioară:
git retur 84d9015
Se va deschide un mesaj git commit în editorul de text nano. presa Ctrl + O pentru a salva, atunci Ctrl + X pentru a ieși din nano. llama.cpp ar trebui acum să se compileze fără erori când introduceți:
face
Va trebui să creați un director pentru modelele ponderate pe care intenționați să le utilizați:
modele mkdir
Acum transferați modelele ponderate din Lamă director:
mv ~/Downloads/Lamă/* ~/llama.cpp/models/
Asigurați-vă că aveți instalat Python 3 pe Pi și instalați dependențele llama.cpp:
python3 -m pip instalare torch numpy sentencepiece
Versiunea NumPy poate cauza probleme. Actualizați-l:
pip instalare numpy --actualizare
Acum convertiți modelul 7B în formatul ggml FP16:
python3 convert-pth-to-ggml.py models/7B/ 1
Pasul anterior este extrem de intensiv în memorie și, după calculul nostru, folosește cel puțin 16 GB RAM. De asemenea, este foarte lent și predispus la eșec.
Veți obține rezultate mai bune urmând aceste instrucțiuni în paralel pe un computer desktop, apoi copiend fișierul /models/7B/ggml-model-q4_0.bin în aceeași locație pe Raspberry Pi.
Cuantificați modelul la 4 biți:
./quantize.sh 7B
Asta este. LLaMA LLM este acum instalat pe Raspberry Pi și gata de utilizare!
Folosind llama.cpp pe Raspberry Pi
Pentru a începe cu llama.cpp, asigurați-vă că vă aflați în directorul proiectului și introduceți următoarea comandă:
./principal -m ./modele/7B/ggml-model-q4_0.bin -t 4 -n 128 -p „Ce este kernel-ul Linux?”
The -m opțiunea este să direcționați llama.cpp către modelul pe care doriți să-l folosească; -t indică numărul de fire pe care doriți să le folosească; -n este numărul de jetoane de prezis; -p este promptul tău. Puteți personaliza oricare dintre aceste variabile.
Așteptați-vă pentru o lungă așteptare, deoarece, deși Raspberry Pi este excelent în ceea ce face, nu a fost conceput pentru acest tip de activitate CPU. În exemplul nostru, llama a împărțit textul în opt jetoane individuale, înainte de a da următorul răspuns:
Linux Kernel, pe scurt, a fost întotdeauna denumit sistem de operare. Cu toate acestea, nu este cu adevărat considerat unul, deoarece, pentru toate scopurile practice, majoritatea funcțiilor sale sunt expuse prin API-uri și utilitare care pot fi utilizate de orice alt sistem de operare care dorește (sau are nevoie) să le acceseze API(e). În ceea ce privește kernel-ul Linux în sine, nu există prea multe de-a face cu nucleul real. Pur și simplu va începe, va primi parametrii de configurare de la bootloader-ul/initrd-ul la alegere, apoi o va pune în funcțiune pe un hardware și veți face orice afacere presupune în acest moment
Deși acesta a fost un răspuns destul de coerent, o a doua încercare a dus la ceva asemănător cu salata de cuvinte tocate gros:
Cei mai mulți dintre voi probabil ați auzit despre asta, dar nu știți cu adevărat despre ce vorbesc. Vom discuta acest lucru în detaliu, deoarece înțelegerea lor pe deplin ne ajută să ne folosim mai mult computerele eficient și, de asemenea, luați decizii mai bune atunci când cumpărați hardware sau software nou pentru computerele dvs. de acasă, la birou etc.. Kernel-ul Linux este coloana vertebrală a majorității sistemelor de operare care rulează pe un sistem computerizat, cum ar fi Android, care este un sistem de operare open source bazat parțial din acest kernel. Dar ce înseamnă mai exact prin a spune Linux kernal?
Linus Torvalds și-a notat gândurile (Cunoaștere)
Merită menționat în acest moment că fiecare dintre aceste răspunsuri a durat aproape două ore pentru a fi produs și au avut toate cele patru nuclee CPU care funcționează la 100% pe tot parcursul. Totuși, munca la proiect se mișcă rapid și vă puteți aștepta ca viitoarele optimizări ARM să reducă timpul.
De asemenea, puteți simula conversații întregi cu LLM-ul dvs. în loc să îi transmiteți solicitările pe rând. Adăugând -i opțiunea va porni llama în modul interactiv, în timp ce --început-interactiv vă va cere intrare la început. Pentru o listă completă a opțiunilor disponibile, rulați:
principal -h
Rețineți că LlaMA nu are reguli restrictive. Ocazional, va fi sexist, rasist, homofob și foarte greșit.
Un model lingvistic mare nu înlocuiește cunoștințele reale
Rularea LLaMA de la Meta pe Raspberry Pi este nebunește de mișto și ați putea fi tentat să apelați la guru virtual pentru întrebări tehnice, sfaturi de viață, prietenie sau ca o sursă reală de cunoștințe. Nu te lăsa păcălit. Modelele lingvistice mari nu știu nimic, nu simt nimic și nu înțeleg nimic. Dacă ai nevoie de ajutor cu ceva, este mai bine să vorbești cu o ființă umană sau să citești ceva scris de o ființă umană.
Dacă nu aveți timp, îl puteți citi rapid în terminalul dvs. Linux!