Да, вы можете запустить LLM «AI chatbot» на Raspberry Pi! Просто следуйте этому пошаговому процессу, а затем спросите его о чем угодно.

Большие языковые модели, широко известные (и не совсем точно) как ИИ, вот уже несколько месяцев грозят перевернуть издательский, художественный и юридический мир. Одним из недостатков является то, что использование LLM, таких как ChatGPT, означает создание учетной записи и использование чужого компьютера для выполнения этой работы. Но вы можете запустить обученного LLM на своем Raspberry Pi, чтобы писать стихи, отвечать на вопросы и многое другое.

Что такое большая языковая модель?

Большие языковые модели используют алгоритмы машинного обучения для поиска взаимосвязей и закономерностей между словами и фразами. Натренированные на огромном количестве данных, они способны предсказывать, какие слова статистически вероятнее всего будут следующими, если им будет подсказана подсказка.

Если бы вы спросили тысячи людей, как они себя чувствуют сегодня, ответы были бы примерно такими: «Я в порядке», «Могло быть и хуже», «Хорошо, но у меня подгибаются колени». Тогда разговор пойдет в другом направлении. Возможно, человек спросит о вашем собственном здоровье или скажет: «Извините, мне нужно бежать. Я опаздываю на работу".

Учитывая эти данные и первоначальную подсказку, большая языковая модель должна быть в состоянии дать убедительный и оригинальный ответ, основанный на вероятность того, что определенное слово будет следующим в последовательности, в сочетании с заданной степенью случайности, штрафами за повторение и другими параметры.

Используемые сегодня большие языковые модели не обучаются на вокс-попе нескольких тысяч человек. Вместо этого им предоставляется невообразимый объем данных, извлеченных из общедоступных коллекций, платформ социальных сетей, веб-страниц, архивов и случайных пользовательских наборов данных.

LLM обучаются исследователями-людьми, которые закрепляют определенные шаблоны и передают их обратно в алгоритм. Когда вы спросите большую языковую модель «какая собака самая лучшая?», она сможет дать ответ, говоря вам, что джек-рассел-терьер — лучшая собака, и объяснить, почему.

Но независимо от того, насколько умный или убедительно и по-человечески немой ответ, ни модель, ни машина не имеет разум, и они не способны понять ни вопроса, ни слов, составляющих ответ. Это просто математика и много данных.

Зачем запускать большую языковую модель на Raspberry Pi?

Широкоформатные языковые модели используются повсеместно и используются крупными поисковыми компаниями для помощи в ответах на запросы.

Хотя заманчиво бросить вопрос на естественном языке в корпоративный черный ящик, иногда вы хотите найти вдохновение или задать вопрос, не загружая еще больше данных в пасть надзорный капитализм.

В качестве экспериментальной доски для мастеров, Одноплатный компьютер Raspberry Pi философски, если не физически, подходит для этого стремления.

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

Код LLaMA имеет открытый исходный код, что означает, что любой может использовать и адаптировать его, а «веса» или параметры были опубликованы как торренты и магнитные ссылки в теме проекта Страница GitHub.

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

Установите llama.cpp на Raspberry Pi

Для llama.cpp нет опубликованных рекомендаций по оборудованию, но он очень требователен к процессору, оперативной памяти и хранилищу. Убедитесь, что вы используете Raspberry Pi 4B или 400 с таким же объемом памяти, виртуальная память, и свободное место на SSD, насколько это возможно. SD-карта не поможет, и корпус с приличным охлаждением является обязательным.

Мы собираемся использовать модель с 7 миллиардами параметров, так что посетите это Ветка LLamA на GitHubи загрузите торрент 7B с помощью клиента, такого как qBittorrent или Aria.

Клонируйте репозиторий llama.cpp, а затем используйте CD команда для перехода в новый каталог:

мерзавец клон https://github.com/ggerganov/llama.cpp
CDлама.cpp

Если у вас не установлен компилятор, установите его сейчас с помощью:

Судо подходитполучать установить г++

Теперь скомпилируйте проект с помощью этой команды:

делать

Есть шанс, что llama.cpp не скомпилируется, и вы увидите кучу сообщений об ошибках, связанных с "vdotq_s32". Если это произойдет, вам нужно отменить коммит. Сначала установите локального пользователя git:

git config user.name "Дэйвид"

Теперь вы можете отменить предыдущую фиксацию:

git вернуть 84d9015

Сообщение git commit откроется в текстовом редакторе nano. Нажимать Ctrl + О чтобы сохранить, то Ctrl + Х чтобы выйти из нано. llama.cpp теперь должен компилироваться без ошибок при вводе:

делать

Вам нужно будет создать каталог для взвешенных моделей, которые вы собираетесь использовать:

модели mkdir

Теперь перенесите взвешенные модели из ЛЛаМа каталог:

мв ~/Downloads/ЛАМА/* ~/llama.cpp/модели/

Убедитесь, что на вашем Pi установлен Python 3, и установите зависимости llama.cpp:

python3 -m пункт установить факел

Версия NumPy может вызвать проблемы. Обновите его:

точка установить пустышка --обновление

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

модели python3 convert-pth-to-ggml.py/7B/ 1

Предыдущий шаг чрезвычайно требователен к памяти и, по нашим подсчетам, использует не менее 16 ГБ ОЗУ. Он также очень медленный и подвержен сбоям.

Вы получите лучшие результаты, если параллельно выполните эти инструкции на настольном ПК, а затем скопируете файл /models/7B/ggml-model-q4_0.bin в то же место на вашем Raspberry Pi.

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

./квантовать.sh 7B

Вот и все. LLaMA LLM теперь установлен на вашем Raspberry Pi и готов к использованию!

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

Чтобы начать работу с llama.cpp, убедитесь, что вы находитесь в каталоге проекта, и введите следующую команду:

./основной -м ./модели/7B/ggml-модель-q4_0.bin -t 4128 -п «Что такое ядро ​​Linux?»

вариант — направить llama.cpp на модель, которую вы хотите использовать; указывает количество потоков, которые вы хотите использовать; количество токенов для прогнозирования; -п это ваша подсказка. Вы можете настроить любые и все эти переменные.

Приготовьтесь к долгому ожиданию, потому что, хотя Raspberry Pi отлично справляется со своими задачами, он не был предназначен для такой нагрузки на ЦП. В нашем примере подсказка llama разбила текст на восемь отдельных токенов, прежде чем дать следующий ответ:

Ядро Linux, в двух словах, всегда называлось операционной системой. Однако на самом деле он не считается таковым, поскольку для всех практических целей большинство его функций доступны через API и утилиты, которые могут использоваться любой другой ОС, которая хочет (или нуждается) в доступе к этим API. Что касается самого ядра Linux, то с настоящим ядром не так уж много общего. Он просто запустится, получит параметры конфигурации от вашего загрузчика / initrd по выбору, затем запустит его на каком-то оборудовании, и вы приступите к любым делам, которые влекут за собой на этом этапе.

Хотя это был довольно последовательный ответ, вторая попытка привела к чему-то, напоминающему грубо нарезанный словесный салат:

Большинство из вас, вероятно, слышали об этом, но не знают, о чем они говорят. Мы обсудим это подробно, потому что их полное понимание помогает нам больше использовать наши компьютеры. эффективно, а также принимать более взвешенные решения при покупке нового оборудования или программного обеспечения для ваших ПК дома, в офисе и т. д.. Ядро Linux является основой большинства операционных систем, которые работают на компьютерной системе, такой как Android, которая является операционной системой с открытым исходным кодом, частично основанной на этом ядре. Но что именно они имеют в виду, говоря о ядре Linux?

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

Здесь стоит упомянуть, что на создание каждого из этих ответов ушло почти два часа, и все четыре ядра ЦП работали на 100% на протяжении всего времени. Однако работа над проектом идет быстро, и вы можете ожидать, что предстоящие оптимизации ARM сократят время.

Вы также можете имитировать целые разговоры с вашим LLM вместо того, чтобы давать ему подсказки по одному. Добавление опция запускает ламу в интерактивном режиме, а --интерактивный-старт попросит вас ввести в начале. Для получения полного списка доступных опций запустите:

основной -ч

Имейте в виду, что в LlaMA нет ограничительных правил. Иногда это будет сексистским, расистским, гомофобным и очень неправильным.

Большая языковая модель не заменит реальных знаний

Запуск LLaMA от Meta на Raspberry Pi безумно крут, и у вас может возникнуть соблазн обратиться к своему виртуальному гуру за техническими вопросами, жизненным советом, дружбой или в качестве реального источника знаний. Не дайте себя обмануть. Большие языковые модели ничего не знают, ничего не чувствуют и ничего не понимают. Если вам нужна помощь в чем-то, лучше поговорить с человеком или прочитать что-то, написанное человеком.

Если у вас мало времени, вы можете быстро прочитать его в своем терминале Linux!