Installer LLaMA sous Windows

Je voulais jouer avec quelque chose de semblable à ChatGPT dont on parle tant. J’ai un PC sous Windows 10 reposant sur un Intel i9-13900K (à peu près le top de la performance aussi bien en single core qu’en multicore) et 64 Go de DRAM (davantage que la plupart des utilisateurs, mais j’ai bien compris que ces LLM ont aussi besoin d’une mémoire colossale pour le stockage de leurs paramètres et pour leur exécution).

Voilà comment faire (grâce à l’aide précieuse de Xanny.eth).

WSL et environnement Linux

Installer et configurer WSL, en ouvrant une fenêtre PowerShell où saisir :

wsl --install

Cela prend quelques minutes à s’installer. Mais il n’y a rien à faire qu’à attendre que ça se passe. ne pas oublier de rebooter à la fin.

Installer Ubuntu 22 LTS sur le PC Windows. C’est une application gratuite du Microsoft Store qui devrait s’installer en un clic.

Une fois fait, lancer Ubuntu depuis le menu Démarrer. Cela va ouvrir une fenêtre terminal et demander login et un mot de passe. Obéissez docilement (et ne les oubliez pas).

Installation des dépendances Linux de LLaMA

S’il n’y en a pas, ouvrez une fenêtre terminal Ubuntu.

sudo apt-get update
sudo apt install make cmake build-essential python3 python3-pip git unzip

Puis

python3 -m pip install torch numpy sentencepiece

Vous avez maintenant l’ensemble des dépendances nécessaires en arrière-plan.

Construction de LLaMA lui-même

C’est assez simple puisqu’il suffit de taper les commandes suivantes :

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

Ça devrait le faire.

Les paramètres de training

Le vrai problème se trouve ici et se présente sous deux formes :

  1. Plus les paramètres sont nombreux, plus il vous faudra de mémoire DRAM au moment de l’exécution de LLaMA. les alpaca-native-weights (apparemment les plus puissants facilement accessibles – semble-t-il au niveau de ChatGPT 3) demandent plus de 16 Go de DRAM (j’ai observé une consommation de 32 Go de DRAM alors que j’utilisais LLaMA avec un paquet d’autre petites choses comme deux navigateurs web, un logiciel de mail, etc.)
  2. Les alpaca-native-weights contiennent environ 7 milliards de paramètres (un fichier de plus de 4 Go à télécharger). Mais ils ne sont jamais au même endroit parce qu’il semble que la licence soit un peu… compliquée ; sans doute open source, mais c’est contesté par Meta et d’autres). Ainsi, le mieux à faire est d’aller sur Pastebin pour récupérer le magnet BitTorrent pour télécharger le fichier.

Ensuite, le fichier ggml-alpaca-7b-q4.bin doit être déposé dans le répertoire de llama.cpp.

Lancer LLaMA

Le grand moment est venu : lancer l’application. C’est simplement une affaire de ligne de commande dans Ubuntu :

./main --color -i -ins -n 512 -p "You are a helpful AI who will assist, provide information, answer questions, and have conversations." -m ggml-alpaca-7b-native-q4.bin

Après quelques secondes d’attente, un > (vert) accueille votre premier prompt. A vous de parler à John Smith, votre assistant (semi) intelligent.

Quelques autres idées

J’ai remarqué une petite poignée d’idées à appliquer après vos premiers essais.

Le paramètre -p (suivi d’une chaine de texte) est important parce qu’il donne un environnement de départ. C’est un prompt d’initialisation qui n’apparaît pas à l’utilisateur, mais qui influence sérieusement la suite. Par exemple, c’est similaire à ce que Microsoft ou OpenAI appliquent en amont de ChatGPT ou Bing pour “lui donner une personnalité” ou “le censurer”. Vous pouvez librement jouer là-dessus pour votre propre IA. Soit pour censurer son comportement, soit pour le libérer. C’est votre choix.

le paramètre -n 512 donne de la profondeur à la prédiction des tokens. En allongeant ou réduisant celui-ci, vous allez influencer la capacité de votre IA. Au risque de jouer sur le temps de calcul…

Le paramètre -t 32 (la valeur par défaut) permet de définir le nombre de threads générés par LLaMA pour ses calculs. Je recommande de l’aligner sur le nombre de threads/cores de votre processeur pour plus d’efficacité.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.