Ano, na Raspberry Pi můžete spustit LLM „AI chatbota“! Postupujte podle tohoto postupu krok za krokem a poté se ho na cokoliv zeptejte.
Velké jazykové modely, obecně (a nepřesně) známé jako AI, hrozily, že zničí vydavatelský, umělecký a právní svět už několik měsíců. Jednou nevýhodou je, že používání LLM, jako je ChatGPT, znamená vytvoření účtu a práci na počítači někoho jiného. Ale na svém Raspberry Pi můžete spustit vyškolený LLM, abyste mohli psát poezii, odpovídat na otázky a další.
Co je velký jazykový model?
Velké jazykové modely využívají k nalezení vztahů a vzorců mezi slovy a frázemi algoritmy strojového učení. Vyškoleni na obrovském množství dat jsou schopni předpovědět, jaká slova budou statisticky pravděpodobně následovat, když dostanou výzvu.
Kdybyste se zeptali tisíců lidí, jak se dnes cítili, odpovědi by byly ve stylu: "Jsem v pořádku", "Mohlo by být horší", "OK, ale kolena mi hrají nahoru". Konverzace by se pak stočila jiným směrem. Možná by se ta osoba zeptala na vaše vlastní zdraví nebo by se zeptala: „Promiň, musím utéct. Přijdu pozdě do práce."
Vzhledem k těmto údajům a počáteční výzvě by velký jazykový model měl být schopen přijít s přesvědčivou a originální odpovědí založenou na pravděpodobnost, že určité slovo přijde jako další v pořadí, v kombinaci s předem nastaveným stupněm náhodnosti, penalizacemi za opakování a dalšími parametry.
Velké jazykové modely, které se dnes používají, nejsou trénovány na vox popu několika tisíc lidí. Místo toho dostávají nepředstavitelné množství dat seškrábaných z veřejně dostupných sbírek, platforem sociálních médií, webových stránek, archivů a příležitostných vlastních datových sad.
LLM jsou vyškoleni lidskými výzkumníky, kteří posílí určité vzorce a vrátí je zpět do algoritmu. Když se zeptáte velkého jazykového modelu „jaký je nejlepší druh psa?“, bude schopen vyslovit odpověď, která vám řekne, že Jack Russell teriér je nejlepší druh psa, a dá vám důvody, proč tomu tak je.
Ale bez ohledu na to, jak inteligentní nebo přesvědčivě a lidsky hloupá je odpověď, ani model, ani stroj běží dál má mysl a nejsou schopni porozumět ani otázce, ani slovům, která tvoří Odezva. Je to jen matematika a spousta dat.
Proč provozovat velký jazykový model na Raspberry Pi?
Velké jazykové modely jsou všude a velké vyhledávací společnosti je přejímají, aby pomohly odpovídat na dotazy.
I když je lákavé hodit otázku v přirozeném jazyce na podnikovou černou skříňku, někdy chcete hledat inspiraci nebo položit otázku, aniž byste do chřtánu vložili další data. dozorový kapitalismus.
Jako experimentální deska pro kutily, Jednodeskový počítač Raspberry Pi je filozoficky, ne-li fyzicky, vhodný pro toto úsilí.
V únoru 2023 společnost Meta (společnost dříve známá jako Facebook) oznámila LLaMA, nový LLM, který se může pochlubit jazykovými modely mezi 7 miliardami a 65 miliardami parametrů. LLaMA byla trénována pomocí veřejně dostupných datových sad,
Kód LLaMA je open source, což znamená, že jej může kdokoli použít a přizpůsobit, a „váhy“ nebo parametry byly zveřejněny jako torrenty a magnetické odkazy ve vláknu na projektu stránka GitHub.
V březnu 2023 vydal vývojář Georgi Gerganov lama.cpp, který může běžet na obrovské škále hardwaru, včetně Raspberry Pi. Kód běží lokálně a do Meta se neodesílají žádná data.
Nainstalujte llama.cpp na Raspberry Pi
Pro lama.cpp nejsou publikovány žádné hardwarové pokyny, ale je extrémně náročný na procesor, RAM a úložiště. Ujistěte se, že jej používáte na Raspberry Pi 4B nebo 400 s tolika pamětí, virtuální paměťa místo na SSD, jak je to možné. SD karta to nepřeruší a pouzdro se slušným chlazením je nutností.
Budeme používat model 7 miliard parametrů, takže navštivte toto LLamA vlákno GitHuba stáhněte si torrent 7B pomocí klienta, jako je qBittorrent nebo Aria.
Klonujte úložiště llama.cpp a poté použijte soubor CD příkaz pro přesun do nového adresáře:
git klon https://github.com/ggerganov/llama.cpp
CDlama.cpp
Pokud nemáte nainstalovaný kompilátor, nainstalujte jej nyní pomocí:
sudo apt-dostat nainstalovat g++
Nyní zkompilujte projekt pomocí tohoto příkazu:
udělat
Je možné, že kompilace llama.cpp selže a uvidíte spoustu chybových zpráv týkajících se "vdotq_s32". Pokud k tomu dojde, musíte vrátit potvrzení. Nejprve nastavte místního uživatele git:
git config uživatelské.jméno "david"
Nyní můžete vrátit předchozí potvrzení:
git revert 84d9015
V textovém editoru nano se otevře zpráva o odevzdání git. lis Ctrl + O tedy zachránit Ctrl + X pro ukončení nano. llama.cpp by se nyní měl zkompilovat bez chyb, když zadáte:
udělat
Budete muset vytvořit adresář pro vážené modely, které chcete použít:
modely mkdir
Nyní přeneste vážené modely z Lama adresář:
mv ~/Downloads/Lama/* ~/llama.cpp/models/
Ujistěte se, že máte na svém Pi nainstalovaný Python 3 a nainstalujte závislosti llama.cpp:
python3 -m pip Nainstalujte pochodeň numpy větný kus
Verze NumPy může způsobit problémy. Upgradujte to:
pip Nainstalujte nemotorný --vylepšit
Nyní převeďte model 7B do formátu ggml FP16:
python3 convert-pth-to-ggml.py models/7B/ 1
Předchozí krok je extrémně náročný na paměť a podle našeho odhadu využívá minimálně 16 GB RAM. Je také super pomalý a náchylný k selhání.
Lepších výsledků dosáhnete, když budete postupovat podle těchto pokynů paralelně na stolním počítači a poté soubor zkopírujete /models/7B/ggml-model-q4_0.bin na stejné místo na vašem Raspberry Pi.
Kvantitujte model na 4 bity:
./quantize.sh 7B
A je to. LLaMA LLM je nyní nainstalována na vašem Raspberry Pi a připravena k použití!
Použití llama.cpp na Raspberry Pi
Chcete-li začít s llama.cpp, ujistěte se, že jste v adresáři projektu a zadejte následující příkaz:
./main -m ./models/7B/ggml-model-q4_0.bin -t 4 -n 128 -p "Co je to linuxové jádro?"
The -m možnost je nasměrovat llama.cpp na model, který chcete, aby používal; -t označuje počet vláken, která chcete použít; -n je počet tokenů k předpovědi; -p je vaše výzva. Všechny tyto proměnné můžete přizpůsobit.
Spokojte se s dlouhým čekáním, protože zatímco Raspberry Pi je vynikající v tom, co dělá, nebylo navrženo pro tento druh činnosti CPU. V naší ukázkové výzvě lama rozdělila text na osm jednotlivých žetonů a poté odpověděla:
Linuxové jádro, v kostce, bylo vždy označováno jako operační systém. Ve skutečnosti se však nepovažuje za jeden, protože pro všechny praktické účely je většina jeho funkcí vystavené prostřednictvím rozhraní API a utilit, které může použít jakýkoli jiný operační systém, který k nim chce (nebo potřebuje) přístup API(a). Pokud jde o samotné jádro Linuxu, nemá se skutečným jádrem mnoho společného. Prostě se to spustí, přijme konfigurační parametry z vašeho bootloaderu/initrd dle vašeho výběru, pak to spustí na nějaký hardware a můžete se věnovat všemu, co v tuto chvíli obnáší.
I když to byla docela koherentní odpověď, druhý pokus vyústil v něco, co připomínalo hrubě nakrájený slovní salát:
Většina z vás o tom pravděpodobně slyšela, ale ve skutečnosti neví, o čem mluví. Budeme o tom diskutovat podrobně, protože jejich pochopení nám plně pomáhá používat naše počítače více efektivněji a také se lépe rozhodujte při nákupu nového hardwaru nebo softwaru pro vaše PC doma, v kanceláři atd.. Linuxové jádro je páteří většiny operačních systémů, které běží na počítačovém systému, jako je android, což je operační systém s otevřeným zdrojovým kódem založený částečně na tomto jádře. Ale co přesně myslí tím, že říkají linux kernal?
Linus Torvalds zapsal své myšlenky (znalosti)
Na tomto místě stojí za zmínku, že výroba každé z těchto odpovědí trvala téměř dvě hodiny a všechna čtyři jádra CPU pracovala po celou dobu na 100 %. Práce na projektu však postupují rychle a můžete očekávat, že nadcházející optimalizace ARM zkrátí čas.
Můžete také simulovat celé konverzace se svým LLM místo toho, abyste je dostávali jednu po druhé. Přidání -i volba spustí lamu v interaktivním režimu, zatímco --interactive-start na začátku vás požádá o zadání. Chcete-li získat úplný seznam dostupných možností, spusťte:
hlavní -h
Uvědomte si, že LlaMA nemá omezující pravidla. Příležitostně to bude sexistické, rasistické, homofobní a velmi špatné.
Velký jazykový model nenahrazuje skutečné znalosti
Spuštění Meta's LLaMA na Raspberry Pi je šíleně cool a možná budete v pokušení obrátit se na svého virtuálního guru s technickými otázkami, životními radami, přátelstvím nebo jako skutečný zdroj znalostí. Nenechte se zmást. Velké jazykové modely nic nevědí, nic necítí a ničemu nerozumí. Pokud potřebujete s něčím pomoci, je lepší si promluvit s člověkem nebo si přečíst něco, co napsal člověk.
Pokud máte málo času, můžete si to rychle přečíst ve svém linuxovém terminálu!