Tak, możesz uruchomić chatbota AI LLM na Raspberry Pi! Po prostu postępuj zgodnie z tym procesem krok po kroku, a następnie zapytaj go o cokolwiek.
Duże modele językowe, znane ogólnie (niedokładnie) jako sztuczna inteligencja, od miesięcy grożą wywróceniem do góry nogami świata wydawniczego, artystycznego i prawnego. Jednym minusem jest to, że korzystanie z LLM, takich jak ChatGPT, oznacza utworzenie konta i wykonanie pracy przez komputer innej osoby. Ale możesz uruchomić wyszkolony LLM na swoim Raspberry Pi, aby pisać wiersze, odpowiadać na pytania i nie tylko.
Co to jest duży model językowy?
Duże modele językowe wykorzystują algorytmy uczenia maszynowego do znajdowania relacji i wzorców między słowami i frazami. Wyszkoleni w zakresie ogromnych ilości danych są w stanie przewidzieć, jakie słowa prawdopodobnie pojawią się jako następne, gdy otrzymają monit.
Gdybyś zapytał tysiące ludzi, jak się dzisiaj czują, odpowiedzi brzmiałyby: „Wszystko w porządku”, „Mogło być gorzej”, „OK, ale moje kolana grają”. Wtedy rozmowa potoczyłaby się w innym kierunku. Być może ta osoba zapytałaby o twoje zdrowie lub dodała: „Przepraszam, muszę lecieć. Jestem spóźniony do pracy".
Biorąc pod uwagę te dane i początkowy monit, duży model językowy powinien być w stanie przedstawić własną przekonującą i oryginalną odpowiedź, opartą na prawdopodobieństwo, że określone słowo będzie następne w sekwencji, w połączeniu z ustalonym stopniem przypadkowości, karami za powtórzenia i innymi parametry.
Używane obecnie duże modele językowe nie są szkolone na kilkutysięcznym głosowaniu. Zamiast tego otrzymują niewyobrażalną ilość danych, zebranych z publicznie dostępnych kolekcji, platform mediów społecznościowych, stron internetowych, archiwów i okazjonalnych niestandardowych zestawów danych.
LLM są szkoleni przez ludzkich badaczy, którzy wzmacniają pewne wzorce i przekazują je z powrotem do algorytmu. Kiedy zapytasz duży model językowy „jaki jest najlepszy rodzaj psa?”, będzie on w stanie udzielić odpowiedzi, mówiąc, że Jack Russell terier jest najlepszym rodzajem psa i podając powody.
Ale niezależnie od tego, jak inteligentna lub przekonująco i po ludzku głupia jest odpowiedź, ani model, ani maszyna biegnie dalej, ma umysł i nie jest w stanie zrozumieć ani pytania, ani słów, które się na nie składają odpowiedź. To tylko matematyka i dużo danych.
Po co uruchamiać duży model językowy na Raspberry Pi?
Duże modele językowe są wszędzie i są wdrażane przez duże firmy wyszukujące, aby pomóc w udzielaniu odpowiedzi na zapytania.
Choć kuszące jest zadawanie pytań w języku naturalnym w korporacyjnej czarnej skrzynce, czasami chcesz poszukać inspiracji lub zadać pytanie, nie wprowadzając jeszcze większej ilości danych do paszczy kapitalizm inwigilacyjny.
Jako eksperymentalna plansza dla majsterkowiczów, Komputer jednopłytkowy Raspberry Pi jest filozoficznie, jeśli nie fizycznie, odpowiedni do tego przedsięwzięcia.
W lutym 2023 r. Meta (firma znana wcześniej jako Facebook) ogłosiła LLaMA, nowy LLM oferujący modele językowe zawierające od 7 do 65 miliardów parametrów. LLaMA została przeszkolona przy użyciu publicznie dostępnych zbiorów danych,
Kod LLaMA jest open source, co oznacza, że każdy może go używać i dostosowywać, a „wagi” lub parametry zostały opublikowane jako torrenty i linki magnetyczne w wątku na temat projektu Strona GitHuba.
W marcu 2023 roku deweloper Georgi Gerganov wydał lama.cpp, który może działać na szerokiej gamie sprzętu, w tym na Raspberry Pi. Kod działa lokalnie i żadne dane nie są wysyłane do Meta.
Zainstaluj llama.cpp na Raspberry Pi
Nie ma opublikowanych wytycznych sprzętowych dla llama.cpp, ale jest on niezwykle wymagający pod względem procesora, pamięci RAM i pamięci masowej. Upewnij się, że uruchamiasz go na Raspberry Pi 4B lub 400 z taką samą ilością pamięci, pamięć wirtualna, oraz jak najwięcej wolnego miejsca na dysku SSD. Karta SD nie wystarczy, i obudowa z przyzwoitym chłodzeniem jest koniecznością.
Będziemy używać modelu z 7 miliardami parametrów, więc odwiedź to Wątek LlamA GitHubi pobierz torrent 7B za pomocą klienta takiego jak qBittorrent lub Aria.
Sklonuj repozytorium llama.cpp, a następnie użyj płyta CD polecenie przejścia do nowego katalogu:
git klon https://github.com/ggerganov/llama.cpp
płyta CDlama.cpp
Jeśli nie masz zainstalowanego kompilatora, zainstaluj go teraz za pomocą:
sudo apt-Dostawać zainstaluj g++
Teraz skompiluj projekt za pomocą tego polecenia:
robić
Istnieje prawdopodobieństwo, że plik llama.cpp się nie skompiluje i zobaczysz kilka komunikatów o błędach związanych z „vdotq_s32”. Jeśli tak się stanie, musisz cofnąć zatwierdzenie. Najpierw ustaw lokalnego użytkownika git:
git config nazwa.użytkownika "Dawid"
Teraz możesz cofnąć poprzednie zatwierdzenie:
git przywróć 84d9015
Wiadomość zatwierdzenia git zostanie otwarta w edytorze tekstu nano. Naciskać Ctrl + O w takim razie ratować Ctrl + X wyjść z nano. llama.cpp powinien się teraz skompilować bez błędów po wprowadzeniu:
robić
Musisz utworzyć katalog dla modeli ważonych, których zamierzasz użyć:
modele mkdir
Teraz przenieś ważone modele z pliku Lama informator:
mv ~/Downloads/Lama/* ~/lama.cpp/modele/
Upewnij się, że masz zainstalowany Python 3 na swoim Pi i zainstaluj zależności llama.cpp:
python3 -m pip zainstalować pochodnia numpy zdanie
Wersja NumPy może powodować problemy. Ulepsz to:
pypeć zainstalować liczba --aktualizacja
Teraz przekonwertuj model 7B na format ggml FP16:
python3 convert-pth-to-ggml.py models/7B/ 1
Poprzedni krok wymaga bardzo dużej ilości pamięci i według naszych obliczeń zużywa co najmniej 16 GB pamięci RAM. Jest również bardzo powolny i podatny na awarie.
Lepsze wyniki uzyskasz, wykonując te instrukcje równolegle na komputerze stacjonarnym, a następnie kopiując plik /models/7B/ggml-model-q4_0.bin do tej samej lokalizacji na twoim Raspberry Pi.
Skwantyzuj model do 4 bitów:
./kwantyzacja.sh 7B
Otóż to. LLaMA LLM jest teraz zainstalowany na twoim Raspberry Pi i gotowy do użycia!
Używanie llama.cpp na Raspberry Pi
Aby rozpocząć pracę z plikiem llama.cpp, upewnij się, że znajdujesz się w katalogu projektu i wprowadź następujące polecenie:
./main -m ./modele/7B/ggml-model-q4_0.bin -t 4 -N 128 -P „Co to jest jądro Linuksa?”
The -M opcją jest skierowanie llama.cpp do modelu, którego chcesz użyć; -T wskazuje liczbę wątków, których ma używać; -N to liczba żetonów do przewidzenia; -P to twoja zachęta. Możesz dostosować dowolne z tych zmiennych.
Przygotuj się na długie oczekiwanie, ponieważ chociaż Raspberry Pi jest doskonały w tym, co robi, nie został zaprojektowany do tego rodzaju aktywności procesora. W naszym przykładzie lama podzieliła tekst na osiem oddzielnych tokenów, zanim udzieliła następującej odpowiedzi:
Jądro Linuksa, w skrócie, zawsze było określane jako system operacyjny. Jednak tak naprawdę nie jest uważany za jeden, ponieważ ze wszystkich praktycznych powodów większość jego funkcji jest udostępniane za pośrednictwem interfejsów API i narzędzi, z których może korzystać każdy inny system operacyjny, który chce (lub potrzebuje) dostępu do nich Pszczoła). Jeśli chodzi o samo jądro Linuksa, nie ma wiele wspólnego z rzeczywistym jądrem. Po prostu się uruchomi, otrzyma parametry konfiguracyjne z wybranego programu ładującego / initrd, a następnie uruchomi go na jakimś sprzęcie i zajmiesz się jakąkolwiek działalnością, która pociąga za sobą w tym momencie
Chociaż była to dość spójna odpowiedź, druga próba zaowocowała czymś przypominającym z grubsza posiekaną sałatkę słowną:
Zapewne większość z Was o tym słyszała, ale nie bardzo wie, o czym mówi. Omówimy to szczegółowo, ponieważ ich pełne zrozumienie pomaga nam lepiej korzystać z naszych komputerów wydajnie, a także podejmować lepsze decyzje przy zakupie nowego sprzętu lub oprogramowania do komputerów w domu, biurze itp.. Jądro Linuksa jest podstawą większości systemów operacyjnych działających w systemie komputerowym, takim jak Android, który jest systemem operacyjnym typu open source opartym częściowo na tym jądrze. Ale co dokładnie mają na myśli, mówiąc o linux kernal?
Linus Torvalds spisał swoje myśli (Wiedza)
Warto w tym miejscu wspomnieć, że przygotowanie każdej z tych odpowiedzi zajęło prawie dwie godziny, a wszystkie cztery rdzenie procesora pracowały przez cały czas na 100%. Prace nad projektem posuwają się jednak szybko i można się spodziewać, że nadchodzące optymalizacje ARM skrócą czas.
Możesz także symulować całe rozmowy z LLM zamiast podawać monity pojedynczo. Dodanie -I opcja uruchomi lamę w trybie interaktywnym, podczas gdy --interaktywny start poprosi Cię o wprowadzenie danych na początku. Aby uzyskać pełną listę dostępnych opcji, uruchom:
główny - godz
Pamiętaj, że LlaMA nie ma restrykcyjnych zasad. Czasami będzie seksistowskie, rasistowskie, homofobiczne i bardzo złe.
Duży model językowy nie zastąpi prawdziwej wiedzy
Uruchamianie LLaMA Meta na Raspberry Pi jest niesamowicie fajne i możesz ulec pokusie zwrócenia się do swojego wirtualnego guru o pytania techniczne, porady życiowe, przyjaźń lub jako prawdziwe źródło wiedzy. Nie daj się zwieść. Duże modele językowe nic nie wiedzą, nic nie czują i nic nie rozumieją. Jeśli potrzebujesz w czymś pomocy, lepiej porozmawiaj z człowiekiem lub przeczytaj coś napisanego przez człowieka.
Jeśli masz mało czasu, możesz szybko przeczytać to w swoim terminalu Linux!