Oui, vous pouvez exécuter un "chatbot IA" LLM sur un Raspberry Pi! Suivez simplement ce processus étape par étape, puis demandez-lui ce que vous voulez.

Les grands modèles de langage, connus généralement (et à tort) sous le nom d'IA, menacent de bouleverser le monde de l'édition, de l'art et du droit depuis des mois. Un inconvénient est que l'utilisation de LLM tels que ChatGPT signifie la création d'un compte et l'ordinateur de quelqu'un d'autre pour faire le travail. Mais vous pouvez exécuter un LLM formé sur votre Raspberry Pi pour écrire de la poésie, répondre à des questions, etc.

Qu'est-ce qu'un grand modèle de langage?

Les grands modèles de langage utilisent des algorithmes d'apprentissage automatique pour trouver des relations et des modèles entre les mots et les phrases. Formés sur de grandes quantités de données, ils sont capables de prédire quels mots sont statistiquement susceptibles de venir ensuite lorsqu'on leur donne une invite.

Si vous deviez demander à des milliers de personnes comment elles se sentent aujourd'hui, les réponses seraient du type "Je vais bien", "Cela pourrait être pire", "OK, mais mes genoux jouent". La conversation prendrait alors une tournure différente. Peut-être que la personne vous posera des questions sur votre propre santé ou enchaînera avec « Désolé, je dois courir. Je suis en retard au travail".

Compte tenu de ces données et de l'invite initiale, un grand modèle de langage devrait être capable de proposer sa propre réponse convaincante et originale, basée sur la probabilité qu'un certain mot vienne ensuite dans une séquence, combinée à un degré prédéfini d'aléatoire, à des pénalités de répétition et à d'autres paramètres.

Les grands modèles de langage utilisés aujourd'hui ne sont pas formés sur un vox pop de quelques milliers de personnes. Au lieu de cela, ils reçoivent une quantité inimaginable de données, extraites de collections accessibles au public, de plateformes de médias sociaux, de pages Web, d'archives et d'ensembles de données personnalisés occasionnels.

Les LLM sont formés par des chercheurs humains qui renforceront certains modèles et les renverront à l'algorithme. Lorsque vous demandez à un grand modèle de langage "quel est le meilleur type de chien ?", il sera capable de vous donner une réponse en vous disant qu'un Jack Russell terrier est le meilleur type de chien et de vous en donner les raisons.

Mais peu importe à quel point la réponse est intelligente ou convaincante et humainement stupide, ni le modèle ni la machine court a un esprit, et ils sont incapables de comprendre ni la question ni les mots qui composent le réponse. C'est juste des maths et beaucoup de données.

Pourquoi exécuter un grand modèle de langage sur Raspberry Pi?

Les grands modèles de langage sont partout et sont adoptés par de grandes sociétés de recherche pour aider à répondre aux requêtes.

Bien qu'il soit tentant de poser une question en langage naturel à une boîte noire d'entreprise, vous souhaitez parfois rechercher l'inspiration ou poser une question sans fournir encore plus de données dans la gueule de capitalisme de surveillance.

En tant que carte expérimentale pour les bricoleurs, la Ordinateur monocarte Raspberry Pi est philosophiquement, sinon physiquement, adapté à l'entreprise.

En février 2023, Meta (la société anciennement connue sous le nom de Facebook) a annoncé LLaMA, un nouveau LLM proposant des modèles de langage compris entre 7 milliards et 65 milliards de paramètres. LLaMA a été formé à l'aide d'ensembles de données accessibles au public,

Le code LLaMA est open source, ce qui signifie que n'importe qui peut l'utiliser et l'adapter, et les "pondérations" ou paramètres ont été publiés en tant que torrents et liens magnétiques dans un fil sur le projet Page GitHub.

En mars 2023, le développeur Georgi Gerganov a publié lama.cpp, qui peut fonctionner sur une vaste gamme de matériel, y compris Raspberry Pi. Le code s'exécute localement et aucune donnée n'est envoyée à Meta.

Installer lama.cpp sur Raspberry Pi

Il n'y a pas de directives matérielles publiées pour llama.cpp, mais il est extrêmement gourmand en processeur, en RAM et en stockage. Assurez-vous que vous l'exécutez sur un Raspberry Pi 4B ou 400 avec autant de mémoire, mémoire virtuelle, et l'espace SSD disponible que possible. Une carte SD ne suffira pas, et un boîtier avec un refroidissement décent est un must.

Nous allons utiliser le modèle à 7 milliards de paramètres, alors visitez ce Fil GitHub LlamA, et téléchargez le torrent 7B à l'aide d'un client tel que qBittorrent ou Aria.

Clonez le référentiel llama.cpp, puis utilisez le CD commande pour se déplacer dans le nouveau répertoire :

git cloner https://github.com/ggerganov/llama.cpp
CDlama.cpp

Si vous n'avez pas de compilateur installé, installez-en un maintenant avec :

sudo apt-obtenir installer g++

Compilez maintenant le projet avec cette commande :

faire

Il est possible que llama.cpp échoue à se compiler et vous verrez un tas de messages d'erreur relatifs à "vdotq_s32". Si cela se produit, vous devez annuler un commit. Tout d'abord, définissez votre utilisateur git local :

git config user.name "David"

Vous pouvez maintenant annuler un commit précédent :

git revenir 84d9015

Un message de validation git s'ouvrira dans l'éditeur de texte nano. Presse Ctrl + O pour économiser, alors Ctrl + X pour quitter nano. llama.cpp devrait maintenant compiler sans erreur lorsque vous entrez :

faire

Vous devrez créer un répertoire pour les modèles pondérés que vous avez l'intention d'utiliser :

modèles mkdir

Transférez maintenant les modèles pondérés du Lama annuaire:

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

Assurez-vous que Python 3 est installé sur votre Pi et installez les dépendances llama.cpp :

python3 -m pip installer torche phrase numpy

La version NumPy peut causer des problèmes. Améliorez-le :

pépin installer numpy --améliorer

Convertissez maintenant le modèle 7B au format ggml FP16 :

python3 convert-pth-to-ggml.py modèles/7B/ 1

L'étape précédente est extrêmement gourmande en mémoire et, selon nos calculs, utilise au moins 16 Go de RAM. C'est aussi super lent et sujet à l'échec.

Vous obtiendrez de meilleurs résultats en suivant ces instructions en parallèle sur un PC de bureau, puis en copiant le fichier /models/7B/ggml-model-q4_0.bin au même endroit sur votre Raspberry Pi.

Quantifiez le modèle sur 4 bits :

./quantize.sh 7B

C'est ça. LLaMA LLM est maintenant installé sur votre Raspberry Pi, et prêt à l'emploi !

Utilisation de lama.cpp sur Raspberry Pi

Pour commencer avec llama.cpp, assurez-vous d'être dans le répertoire du projet et saisissez la commande suivante :

./main -m ./models/7B/ggml-model-q4_0.bin -t 4 -n 128 -p "Qu'est-ce que le noyau Linux?"

Le -m l'option consiste à diriger llama.cpp vers le modèle que vous souhaitez utiliser; -t indique le nombre de threads que vous souhaitez qu'il utilise; -n est le nombre de jetons à prédire; -p est votre invite. Vous pouvez personnaliser n'importe laquelle de ces variables.

Attendez longtemps, car bien que le Raspberry Pi soit excellent dans ce qu'il fait, il n'a pas été conçu pour ce type d'activité CPU. Dans notre exemple d'invite, lama a décomposé le texte en huit jetons individuels, avant de donner la réponse suivante :

Le noyau Linux, en un mot, a toujours été considéré comme un système d'exploitation. Cependant, ce n'est pas vraiment considéré comme tel car, à toutes fins pratiques, la plupart de ses fonctions sont exposés via des API et des utilitaires qui peuvent être utilisés par tout autre système d'exploitation qui veut (ou a besoin) d'accéder à ceux-ci Apis). En ce qui concerne le noyau Linux lui-même, il n'y a pas grand-chose à voir avec le noyau réel. Cela va juste commencer, recevoir les paramètres de configuration de votre chargeur de démarrage/initrd de choix, puis le faire fonctionner sur du matériel et vous vous occupez de toutes les affaires que cela implique à ce stade

Bien qu'il s'agisse d'une réponse assez cohérente, une deuxième tentative a abouti à quelque chose ressemblant à une salade de mots grossièrement hachée :

La plupart d'entre vous en ont probablement entendu parler mais ne savent pas vraiment de quoi ils parlent. Nous en discuterons en détail car les comprendre pleinement nous aide à mieux utiliser nos ordinateurs. efficacement et prendre de meilleures décisions lors de l'achat de nouveau matériel ou logiciel pour vos PC à la maison, au bureau etc.. Le noyau Linux est l'épine dorsale de la plupart des systèmes d'exploitation qui s'exécutent sur un système informatique tel qu'Android, qui est un système d'exploitation open source basé en partie sur ce noyau. Mais que veulent-ils dire exactement en disant Linux Kernal ?

Le Linus Torvalds a écrit ses pensées (Connaissance)

Il convient de mentionner à ce stade que chacune de ces réponses a pris près de deux heures à produire et que les quatre cœurs de processeur fonctionnaient à 100% tout au long. Cependant, le travail sur le projet avance rapidement et vous pouvez vous attendre à ce que les prochaines optimisations ARM réduisent le temps.

Vous pouvez également simuler des conversations entières avec votre LLM au lieu de l'alimenter une par une. Ajout de la -je l'option démarrera le lama en mode interactif, tandis que --démarrage interactif vous demandera une entrée au début. Pour une liste complète des options disponibles, exécutez :

principal -h

Sachez que LlaMA n'a pas de règles restrictives. Il sera, à l'occasion, sexiste, raciste, homophobe et très mal.

Un grand modèle de langage ne remplace pas les connaissances réelles

Exécuter LLaMA de Meta sur Raspberry Pi est incroyablement cool, et vous pourriez être tenté de vous tourner vers votre gourou virtuel pour des questions techniques, des conseils de vie, une amitié ou comme une véritable source de connaissances. Ne soyez pas dupe. Les grands modèles de langage ne savent rien, ne sentent rien et ne comprennent rien. Si vous avez besoin d'aide pour quelque chose, il est préférable de parler à un être humain ou de lire quelque chose d'écrit par un être humain.

Si vous manquez de temps, vous pouvez le lire rapidement dans votre terminal Linux !