Да, можете да стартирате LLM "AI chatbot" на Raspberry Pi! Просто следвайте този процес стъпка по стъпка и след това го попитайте каквото и да било.

Големите езикови модели, известни като цяло (и неточно) като AI, заплашват да обърнат света на издателството, изкуството и закона от месеци. Един недостатък е, че използването на LLM като ChatGPT означава създаване на акаунт и нечий друг компютър да върши работата. Но можете да управлявате обучен LLM на вашия Raspberry Pi, за да пишете поезия, да отговаряте на въпроси и много други.

Какво представлява голям езиков модел?

Големите езикови модели използват алгоритми за машинно обучение, за да намерят връзки и модели между думи и фрази. Обучени на огромни количества данни, те са в състояние да предскажат какви думи е статистически вероятно да дойдат следващите, когато им бъде дадена подкана.

Ако попитате хиляди хора как се чувстват днес, отговорите ще бъдат от рода на „Добре съм“, „Може и по-зле“, „Добре, но коленете ми се подвиват“. Тогава разговорът щеше да се обърне в друга посока. Може би човекът ще попита за собственото ви здраве или ще продължи с „Съжалявам, трябва да бягам. Закъснявам за работа".

instagram viewer

Като се имат предвид тези данни и първоначалната подкана, голям езиков модел трябва да може да излезе със собствен убедителен и оригинален отговор, базиран на вероятността определена дума да бъде следваща в последователност, комбинирана с предварително зададена степен на произволност, наказания за повторение и други параметри.

Големите езикови модели, които се използват днес, не се обучават на вокс поп от няколко хиляди души. Вместо това им се дава невъобразимо количество данни, извлечени от публично достъпни колекции, социални медийни платформи, уеб страници, архиви и случайни персонализирани набори от данни.

LLM се обучават от човешки изследователи, които ще подсилят определени модели и ще ги подадат обратно към алгоритъма. Когато попитате голям езиков модел „кой е най-добрият вид куче?“, той ще може да извърти отговор, който ви казва, че Джак Ръсел териер е най-добрият вид куче, и ще ви даде причини защо.

Но независимо колко интелигентен или убедително и човешки тъп е отговорът, нито моделът, нито машината има ум и те не са в състояние да разберат нито въпроса, нито думите, които съставят отговор. Това е просто математика и много данни.

Защо да стартирате голям езиков модел на Raspberry Pi?

Големите езикови модели са навсякъде и се възприемат от големи компании за търсене, за да помогнат при отговарянето на запитвания.

Въпреки че е изкушаващо да хвърлите въпрос на естествен език в корпоративна черна кутия, понякога искате да потърсите вдъхновение или да зададете въпрос, без да подавате още повече данни в пастта на капитализъм за наблюдение.

Като експериментална дъска за майстори, the Raspberry Pi едноплатков компютър е философски, ако не и физически, подходящ за начинанието.

През февруари 2023 г. Meta (компанията, известна преди като Facebook) обяви LLaMA, нов LLM, който може да се похвали с езикови модели с между 7 милиарда и 65 милиарда параметри. LLaMA беше обучен с помощта на публично достъпни набори от данни,

Кодът LLaMA е с отворен код, което означава, че всеки може да го използва и адаптира, а „теглата“ или параметрите бяха публикувани като торенти и магнитни връзки в тема на проекта Страница на GitHub.

През март 2023 г. разработчикът Георги Герганов пусна llama.cpp, който може да работи на огромен набор от хардуер, включително Raspberry Pi. Кодът се изпълнява локално и не се изпращат данни към Meta.

Инсталирайте llama.cpp на Raspberry Pi

Няма публикувани хардуерни указания за llama.cpp, но той е изключително гладен за процесор, RAM и съхранение. Уверете се, че го използвате на Raspberry Pi 4B или 400 с толкова памет, виртуална памети налично SSD пространство, доколкото е възможно. SD карта няма да го отреже и калъф с прилично охлаждане трябва.

Ще използваме модела със 7 милиарда параметри, така че посетете това Нишка на LLamA GitHub, и изтеглете торента 7B с помощта на клиент като qBittorrent или Aria.

Клонирайте хранилището на llama.cpp и след това използвайте cd команда за преместване в новата директория:

git клонинг https://github.com/ggerganov/llama.cpp
cdлама.cpp

Ако нямате инсталиран компилатор, инсталирайте го сега с:

sudo apt-получавам инсталирайте g++

Сега компилирайте проекта с тази команда:

направи

Има вероятност llama.cpp да не успее да се компилира и ще видите куп съобщения за грешка, свързани с "vdotq_s32". Ако това се случи, трябва да отмените ангажимент. Първо задайте вашия локален git потребител:

git config user.name "давид"

Сега можете да върнете предишен ангажимент:

git върне 84d9015

Съобщение за git commit ще се отвори в нано текстовия редактор. Натиснете Ctrl + O да спаси, тогава Ctrl + X за излизане от nano. llama.cpp вече трябва да се компилира без грешки, когато въведете:

направи

Ще трябва да създадете директория за претеглените модели, които възнамерявате да използвате:

mkdir модели

Сега прехвърлете претеглените модели от LLaMa директория:

mv ~/Downloads/LLaMA/* ~/llama.cpp/models/

Уверете се, че имате инсталиран Python 3 на вашия Pi и инсталирайте зависимостите llama.cpp:

python3 -m пип Инсталирай факла numpy изречение

Версията на NumPy може да причини проблеми. Надстройте го:

пип Инсталирай numpy --подобряване на

Сега преобразувайте модела 7B във формат ggml FP16:

python3 convert-pth-to-ggml.py models/7B/ 1

Предишната стъпка изисква изключително много памет и според нашите изчисления използва поне 16 GB RAM. Освен това е супер бавен и склонен към провал.

Ще получите по-добри резултати, като следвате тези инструкции паралелно на настолен компютър и след това копирате файла /models/7B/ggml-model-q4_0.bin на същото място на вашия Raspberry Pi.

Квантувайте модела до 4 бита:

./quantize.sh 7B

Това е. LLaMA LLM вече е инсталиран на вашия Raspberry Pi и е готов за употреба!

Използване на llama.cpp на Raspberry Pi

За да започнете с llama.cpp, уверете се, че сте в директорията на проекта и въведете следната команда:

./главен -m ./модели/7B/ggml-model-q4_0.bin -t 4128 -стр „Какво е ядрото на Linux?“

The опцията е да насочите llama.cpp към модела, който искате да използва; -T показва броя на нишките, които искате да използва; е броят на токените за прогнозиране; -стр е вашата подкана. Можете да персонализирате всяка и всички тези променливи.

Приемете се за дълго чакане, защото въпреки че Raspberry Pi е отличен в това, което прави, той не е проектиран за такъв вид активност на процесора. В нашата примерна подкана лама раздели текста на осем отделни токена, преди да даде следния отговор:

Ядрото на Linux, накратко, винаги е било наричано операционна система. Въпреки това всъщност не се счита за такъв, тъй като за всички практически цели повечето от неговите функции са такива изложени чрез API и помощни програми, които могат да се използват от всяка друга операционна система, която иска (или се нуждае) от достъп до тях API(и). Що се отнася до самото ядро ​​на Linux, няма много общо с действителното ядро. Просто ще стартира, ще получи конфигурационни параметри от избрания от вас буутлоудър/initrd, след което ще го задейства на някакъв хардуер и ще се занимавате с каквото и да е бизнес, което включва в този момент

Въпреки че това беше доста последователен отговор, вторият опит доведе до нещо, наподобяващо грубо нарязана салата от думи:

Повечето от вас вероятно са чували за това, но всъщност не знаят за какво говорят. Ще обсъдим това в подробности, тъй като пълното им разбиране ни помага да използваме компютрите си повече ефективно и също така да вземате по-добри решения при закупуване на нов хардуер или софтуер за вашите компютри у дома, в офиса и т.н. Ядрото на Linux е гръбнакът на повечето операционни системи, които работят на компютърна система като android, която е операционна система с отворен код, базирана отчасти на това ядро. Но какво точно имат предвид, като казват ядрото на linux?

Линус Торвалдс е записал мислите си (Знание)

Струва си да се спомене на този етап, че всеки от тези отговори отне близо два часа, за да се получи, и всичките четири процесорни ядра работеха на 100% през цялото време. Работата по проекта обаче се движи бързо и можете да очаквате предстоящи оптимизации на ARM, които да намалят времето.

Можете също така да симулирате цели разговори с вашия LLM, вместо да подавате подкани един по един. Добавяне на опция ще стартира лама в интерактивен режим, докато --interactive-start ще ви помоли за въвеждане в началото. За пълен списък с налични опции изпълнете:

основен -ч

Имайте предвид, че LlaMA няма ограничителни правила. Понякога ще бъде сексистко, расистко, хомофобско и много грешно.

Големият езиков модел не е заместител на истинското знание

Изпълнението на LLaMA на Meta на Raspberry Pi е безумно готино и може да се изкушите да се обърнете към своя виртуален гуру за технически въпроси, житейски съвет, приятелство или като истински източник на знания. Не се заблуждавайте. Големите езикови модели не знаят нищо, не чувстват нищо и не разбират нищо. Ако имате нужда от помощ за нещо, по-добре е да говорите с човек или да прочетете нещо, написано от човек.

Ако нямате време, можете да го прочетете бързо във вашия Linux терминал!