Accueil Technologie

Comment exécuter un grand modèle linguistique sur votre Raspberry Pi

Les grands modèles de langage, généralement (et inexactement) connus sous le nom d’IA, menacent depuis des mois de bouleverser le monde de l’édition, de l’art et du droit. L’un des inconvénients est que l’utilisation de LLM tels que ChatGPT implique de créer un compte et de confier le travail à l’ordinateur de quelqu’un d’autre. Mais vous pouvez faire fonctionner un LLM entraîné sur votre Raspberry Pi pour écrire des poèmes, répondre à des questions, etc.

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

robot d'intelligence artificielle sur fond de flux de données

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. Entraînés sur de grandes quantités de données, ils sont capables de prédire quels mots sont statistiquement susceptibles de suivre lorsqu’on leur donne une instruction.

Si vous demandiez à des milliers de personnes comment elles se sentent aujourd’hui, les réponses seraient du genre : « Je vais bien », « Ça pourrait être pire », « Ça va, mais mes genoux font des siennes ». La conversation prendrait alors une autre direction. La personne pourrait vous poser des questions sur votre propre état de santé ou vous demander de poursuivre en disant : « Désolé, je dois y aller, je suis en retard au travail ». Je suis en retard au travail ».

À partir de ces données et de l’invite initiale, un grand modèle de langage devrait être en mesure de proposer une 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éa, à des pénalités de répétition et à d’autres paramètres.

Les grands modèles linguistiques utilisés aujourd’hui ne sont pas formés à partir d’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, occasionnellement, d’ensembles de données personnalisées.

Les LLM sont formés par des chercheurs humains qui renforcent certains modèles et les transmettent à l’algorithme. Si vous demandez à un grand modèle de langage « quelle est la meilleure espèce de chien ? », il sera capable de vous répondre qu’un terrier Jack Russell est la meilleure espèce de chien, et de vous donner les raisons de cette réponse.

Mais quelle que soit l’intelligence de la réponse ou son caractère convaincant et humainement stupide, ni le modèle ni la machine sur laquelle il tourne n’ont d’esprit, et ils sont incapables de comprendre la question ou les mots qui composent la réponse. Il ne s’agit que de mathématiques et d’un grand nombre de données.

Pourquoi faire tourner un grand modèle linguistique sur Raspberry Pi ?

liste d'attente bing pour la recherche assistée par llm

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

S’il est tentant de poser une question en langage naturel à la boîte noire d’une entreprise, il arrive que l’on veuille chercher une inspiration ou poser une question sans alimenter en données supplémentaires la gueule du capitalisme de surveillance.

En tant que carte expérimentale pour les bricoleurs, l’ordinateur monocarte Raspberry Pi est philosophiquement, sinon physiquement, adapté à cette entreprise.

LLaMA de Meta est LLM pour les appareils

un lama brun dans un champ

En février 2023, Meta (l’entreprise anciennement connue sous le nom de Facebook) a annoncé LLaMA, un nouveau LLM proposant des modèles de langage de 7 à 65 milliards de paramètres. LLaMA a été entraîné à l’aide d’ensembles de données accessibles au public,

Le code de LLaMA est open source, ce qui signifie que tout le monde peut l’utiliser et l’adapter, et les « poids » ou paramètres ont été publiés sous forme de torrents et de liens magnétiques dans un fil de discussion sur la page GitHub du projet.

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

Installer llama.cpp sur Raspberry Pi

clone llama et reverse commit puis make

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

Nous allons utiliser le modèle à 7 milliards de paramètres, alors visitez ce fil LLamA GitHub, et téléchargez le torrent 7B en utilisant un client tel que qBittorrent ou Aria.

Clonez le dépôt llama.cpp et utilisez la commande cd pour aller dans le nouveau répertoire :

 git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp

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

 sudo apt-get install g++ 

Compilez maintenant le projet avec cette commande :

 make 

Il est possible que llama.cpp ne se compile pas, et vous verrez un tas de messages d’erreur concernant « vdotq_s32 ». Si cela se produit, vous devez inverser un commit. Tout d’abord, définissez votre utilisateur git local :

 git config user.name "david" 

Vous pouvez maintenant revenir sur un commit précédent :

 git revert 84d9015 

Un message de validation git s’ouvrira dans l’éditeur de texte nano. Appuyez sur Ctrl + O pour enregistrer, puis Ctrl + X pour quitter nano. llama.cpp devrait maintenant compiler sans erreur lorsque vous entrez :

 make 

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

 mkdir models 

Transférez maintenant les modèles pondérés du répertoire LLaMa répertoire :

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

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

 python3 -m pip install torch numpy sentencepiece 

La version de NumPy peut causer des problèmes. Mettez-la à jour :

 pip install numpy --upgrade 

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

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

L’étape précédente est extrêmement gourmande en mémoire et, d’après nos calculs, utilise au moins 16 Go de RAM. Elle est également très lente et susceptible d’échouer.

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

Quantifier le modèle sur 4 bits :

 ./quantize.sh 7B 

C’est tout. LLaMA LLM est maintenant installé sur votre Raspberry Pi, et prêt à être utilisé !

Utilisation de llama.cpp sur le Raspberry Pi

llama llm quelle est l'invite du noyau Linux

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

 ./main -m ./models/7B/ggml-model-q4_0.bin -t 4 -n 128 -p "What is the Linux Kernel?" 

La commande -m est de diriger llama.cpp vers le modèle que vous voulez qu’il utilise ; -t indique le nombre de threads à utiliser ; -n est le nombre de tokens à prédire ; -p est votre invite. Vous pouvez personnaliser toutes ces variables.

Préparez-vous à une longue attente, car si le Raspberry Pi est excellent dans ce qu’il fait, il n’a pas été conçu pour ce type d’activité du processeur. Dans notre exemple d’invite, llama a décomposé le texte en huit jetons individuels, avant de fournir la réponse suivante :

Le noyau Linux, en résumé, a toujours été considéré comme un système d’exploitation. Cependant, il n’est pas vraiment considéré comme tel puisque, pour des raisons pratiques, la plupart de ses fonctions sont exposées à travers des API et des utilitaires qui peuvent être utilisés par n’importe quel autre système d’exploitation qui veut (ou doit) accéder à ces API. En ce qui concerne le noyau Linux lui-même, il n’y a pas grand-chose à faire avec le noyau proprement dit. Il démarre, reçoit les paramètres de configuration du bootloader/initrd de votre choix, le fait fonctionner sur du matériel et vous vous occupez de tout ce que cela implique à ce stade

Cette réponse était assez cohérente, mais une deuxième tentative a abouti à quelque chose qui ressemble à 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 il s’agit. Nous allons en discuter en détail parce que leur compréhension nous aide à utiliser nos ordinateurs plus efficacement et à prendre de meilleures décisions lors de l’achat de nouveaux matériels ou logiciels pour vos PC à la maison, au bureau, etc. Le noyau Linux est l’épine dorsale de la plupart des systèmes d’exploitation qui fonctionnent sur un système informatique tel qu’android qui est un système d’exploitation open source basé en partie sur ce noyau. Mais qu’entend-on exactement par « noyau Linux » ?

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

Il convient de préciser que chacune de ces réponses a nécessité près de deux heures de travail et que les quatre cœurs du processeur ont fonctionné à 100 % tout au long du processus. Le travail sur le projet avance rapidement, cependant, et vous pouvez vous attendre à ce que les optimisations ARM à venir réduisent le temps.

Vous pouvez également simuler des conversations entières avec votre LLM au lieu de l’alimenter en messages un par un. En ajoutant l’option -i démarre llama en mode interactif, alors que l’option –interactive-start vous demandera votre avis au début du programme. Pour obtenir une liste complète des options disponibles, exécutez :

 main -h 

Sachez que LlaMA n’a pas de règles restrictives. Il lui arrivera d’être sexiste, raciste, homophobe et de se tromper lourdement.

Un grand modèle linguistique ne remplace pas une connaissance réelle

Faire fonctionner 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, de l’amitié, ou comme une véritable source de connaissances. Ne vous laissez pas abuser. Les grands modèles de langage ne savent rien, ne ressentent rien et ne comprennent rien. Si vous avez besoin d’aide pour quelque chose, il vaut mieux parler à un être humain ou lire quelque chose écrit par un être humain.

Si vous manquez de temps, vous pouvez le lire en accéléré dans votre terminal Linux !

Leave your vote

0 0 votes
Évaluation de l'article
S’abonner
Notification pour
guest
0 Commentaires
Commentaires en ligne
Afficher tous les commentaires

Log In

Forgot password?

Don't have an account? Register

Forgot password?

Enter your account data and we will send you a link to reset your password.

Your password reset link appears to be invalid or expired.

Log in

Privacy Policy

Add to Collection

No Collections

Here you'll find all collections you've created before.

0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x

Newsletter

inscrivez vous pour recevoir nos actualités

Actualités, astuces, bons plans et cadeaux !