Interrogez-nous, nous vous répondrons !

Applications et Guides

Votre propre LLaMa 2 sous Linux

Étape 1. Préparer le système d'exploitation

Mise à jour du cache et des paquets

Mettons à jour le cache des paquets et mettons à niveau votre système d'exploitation avant de commencer à configurer LLaMa 2. Veuillez noter que pour ce guide, nous utilisons Ubuntu 22.04 LTS comme système d'exploitation :

sudo apt update && sudo apt -y upgrade

Nous devons également ajouter Python Installer Packages (PIP), s'il n'est pas déjà présent dans le système :

sudo apt install python3-pip

Installer les pilotes NVIDIA®

Vous pouvez utiliser l'utilitaire automatisé qui est inclus par défaut dans les distributions Ubuntu :

sudo ubuntu-drivers autoinstall

Vous pouvez également installer les pilotes NVIDIA® manuellement à l'aide de notre guide étape par étape. N'oubliez pas de redémarrer le serveur :

sudo shutdown -r now

Étape 2. Obtenir des modèles de MetaAI

Demande officielle

Ouvrez l'adresse suivante dans votre navigateur : https://ai.meta.com/resources/models-and-libraries/llama-downloads/

Remplissez tous les champs nécessaires, lisez les conditions d'utilisation et cliquez sur le bouton Agree and Continue. Après quelques minutes (heures, jours), vous recevrez une URL de téléchargement spéciale, qui vous autorise à télécharger des modèles pendant une période de 24 heures.

Cloner le dépôt

Avant de télécharger, vérifiez l'espace de stockage disponible :

df -h
Filesystem      Size  Used Avail Use% Mounted on
tmpfs            38G  3.3M   38G   1% /run
/dev/sda2        99G   24G   70G  26% /
tmpfs           189G     0  189G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
/dev/nvme0n1    1.8T   26G  1.7T   2% /mnt/fastdisk
tmpfs            38G  8.0K   38G   1% /run/user/1000

Si vous avez des disques locaux non montés, veuillez suivre les instructions de la section Partitionnement des disques sous Linux. Ceci est important car les modèles téléchargés peuvent être très volumineux et vous devez planifier leur emplacement de stockage à l'avance. Dans cet exemple, nous avons un disque SSD local monté dans le répertoire /mnt/fastdisk. Ouvrons-le :

cd /mnt/fastdisk

Créer une copie du référentiel LLaMa original :

git clone https://github.com/facebookresearch/llama

Si vous rencontrez une erreur de permission, accordez simplement les permissions à l'utilisateurergpu :

sudo chown -R usergpu:usergpu /mnt/fastdisk/

Téléchargement par script

Ouvrez le répertoire téléchargé :

cd llama

Exécuter le script :

./download.sh

Passer l'URL fournie par MetaAI et sélectionner tous les modèles nécessaires. Nous recommandons de télécharger tous les modèles disponibles afin d'éviter de redemander l'autorisation. Toutefois, si vous avez besoin d'un modèle spécifique, ne téléchargez que celui-ci.

Test rapide via l'application d'exemple

Pour commencer, nous pouvons vérifier s'il manque des composants. Si des bibliothèques ou des applications sont manquantes, le gestionnaire de paquets les installera automatiquement :

pip install -e .

L'étape suivante consiste à ajouter de nouveaux binaires à PATH :

export PATH=/home/usergpu/.local/bin:$PATH

Exécutez l'exemple de démonstration :

torchrun --nproc_per_node 1 /mnt/fastdisk/llama/example_chat_completion.py --ckpt_dir /mnt/fastdisk/llama-2-7b-chat/ --tokenizer_path /mnt/fastdisk/llama/tokenizer.model --max_seq_len 512 --max_batch_size 6

L'application créera un processus de calcul sur le premier GPU et simulera un dialogue simple avec des demandes typiques, en générant des réponses à l'aide de LLaMa 2.

Étape 3. Obtenir llama.cpp

LLaMa C++ est un projet créé par le physicien bulgare et développeur de logiciels Georgi Gerganov. Il comporte de nombreux utilitaires qui facilitent l'utilisation de ce modèle de réseau neuronal. Toutes les parties de llama.cpp sont des logiciels libres et sont distribuées sous la licence MIT.

Cloner le dépôt

Ouvrez le répertoire de travail sur le SSD :

cd /mnt/fastdisk

Cloner le référentiel du projet :

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

Compiler les applications

Ouvrez le répertoire cloné :

cd llama.cpp

Lancez le processus de compilation à l'aide de la commande suivante :

make

Étape 4. Obtenir text-generation-webui

Cloner le dépôt

Ouvrez le répertoire de travail sur le SSD :

cd /mnt/fastdisk

Cloner le référentiel du projet :

git clone https://github.com/oobabooga/text-generation-webui.git

Installer les exigences

Ouvrir le répertoire téléchargé :

cd text-generation-webui

Vérifier et installer tous les composants manquants :

pip install -r requirements.txt

Étape 5. Convertir PTH en GGUF

Formats courants

PTH (Python TorcH) - Un format consolidé. Il s'agit essentiellement d'une archive ZIP standard avec un dictionnaire d'états PyTorch sérialisé. Cependant, ce format a des alternatives plus rapides telles que GGML et GGUF.

GGML (Georgi Gerganov’s Machine Learning) - Il s'agit d'un format de fichier créé par Georgi Gerganov, l'auteur de llama.cpp. Il est basé sur une bibliothèque du même nom, écrite en C++, qui a considérablement augmenté les performances des grands modèles de langage. Il a été remplacé par le format moderne GGUF.

GGUF (Georgi Gerganov’s Unified Format) - Il s'agit d'un format de fichier largement utilisé pour les LLM, pris en charge par diverses applications. Il offre une flexibilité, une évolutivité et une compatibilité accrues pour la plupart des cas d'utilisation.

llama.cpp convert.py script

Modifie les paramètres du modèle avant de le convertir :

nano /mnt/fastdisk/llama-2-7b-chat/params.json

Corrigez "vocab_size": -1 en "vocab_size": 32000. Sauvegardez le fichier et quittez. Ouvrez ensuite le répertoire llama.cpp :

cd /mnt/fastdisk/llama.cpp

Exécutez le script qui convertira le modèle au format GGUF :

python3 convert.py /mnt/fastdisk/llama-2-7b-chat/ --vocab-dir /mnt/fastdisk/llama

Si toutes les étapes précédentes sont correctes, vous recevrez un message comme celui-ci :

Wrote /mnt/fastdisk/llama-2-7b-chat/ggml-model-f16.gguf

Étape 6. WebUI

Comment démarrer l'interface WebUI

Ouvrez le répertoire :

cd /mnt/fastdisk/text-generation-webui/

Exécuter le script de démarrage avec quelques paramètres utiles :

  • --model-dir indique le chemin d'accès correct aux modèles
  • --share crée un lien public temporaire (si vous ne voulez pas transmettre un port via SSH)
  • --gradio-auth ajoute une autorisation avec un login et un mot de passe (remplacez user:password par le vôtre)
./start_linux.sh --model-dir /mnt/fastdisk/llama-2-7b-chat/ --share --gradio-auth user:password

Après un lancement réussi, vous recevrez un lien local et un lien de partage temporaire pour l'accès :

Running on local URL:  http://127.0.0.1:7860
Running on public URL: https://e9a61c21593a7b251f.gradio.live

Ce lien de partage expire dans 72 heures.

Charger le modèle

Autorisez-vous dans l'interface WebUI en utilisant le nom d'utilisateur et le mot de passe sélectionnés et suivez ces 5 étapes simples :

  1. Naviguez jusqu'à l'onglet Model.
  2. Sélectionnez ggml-model-f16.gguf dans le menu déroulant.
  3. Choisissez le nombre de couches que vous souhaitez calculer sur le GPU (n-gpu-layers).
  4. Choisissez le nombre de threads que vous souhaitez démarrer (threads).
  5. Cliquez sur le bouton Load.
Loading the model

Démarrer le dialogue

Changez l'onglet en Chat, tapez votre invite et cliquez sur Generate:

Start the dialog

Voir aussi:



Mis à jour: 28.03.2025

Publié: 20.01.2025