Llama 3 local sur Linux

laptop_mac macOS Sonoma Intermediate schedule 8 min read
Author by Alex Rivera • May 14, 2024

Exécuter Llama 3 sur Linux vous offre un contrôle maximal et des performances optimales. Nous utiliserons llama.cpp — un moteur d'inférence C++ hautement optimisé qui prend en charge nativement NVIDIA CUDA, AMD ROCm, ainsi que l'inférence CPU seul.

Introduction

Bien que les wrappers comme Ollama et LM Studio soient excellents pour démarrer rapidement, ils abstraient le moteur sous-jacent. Si vous souhaitez extraire chaque dernière goutte de performance de votre matériel Linux, compiler llama.cpp directement depuis les sources est la référence absolue.

Ce guide vous accompagnera à travers la compilation du moteur avec le support NVIDIA CUDA, le téléchargement du modèle Llama 3 8B, et son exécution directement depuis votre terminal.

Step 1 Prérequis

Tout d'abord, nous devons installer les outils de compilation essentiels et le toolkit NVIDIA CUDA. Ouvrez votre terminal et exécutez :

Terminal
sudo apt update
sudo apt install build-essential git python3-pip
sudo apt install nvidia-cuda-toolkit

Vérifiez que vos pilotes NVIDIA et CUDA fonctionnent correctement :

Terminal
nvidia-smi

Step 2 Compilation

Nous allons cloner le dépôt llama.cpp depuis GitHub et le compiler. Nous passons le flag LLAMA_CUDA=1 à la commande make pour garantir que le compilateur génère le binaire avec l'accélération GPU NVIDIA.

Terminal
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
make -j$(nproc) LLAMA_CUDA=1

Une fois la compilation terminée, vous disposerez de plusieurs fichiers exécutables dans le répertoire racine, notamment llama-cli et llama-server.

Step 3 Téléchargement des poids Llama 3

llama.cpp utilise le format de fichier .gguf. Nous pouvons utiliser la CLI HuggingFace pour télécharger de manière sécurisée le modèle Llama 3 8B de Meta directement sur notre serveur.

Installez d'abord la CLI :

Terminal
pip3 install -U "huggingface_hub[cli]"

Téléchargez maintenant la version quantifiée Q4_K_M du modèle. Cette quantification 4 bits offre un équilibre parfait entre vitesse et intelligence, tout en tenant confortablement dans 8 Go de VRAM.

Terminal
huggingface-cli download bartowski/Meta-Llama-3-8B-Instruct-GGUF Meta-Llama-3-8B-Instruct-Q4_K_M.gguf --local-dir ./models

Step 4 Exécution de l'inférence

Il est temps de dialoguer avec Llama 3. Nous utiliserons l'outil llama-cli.

Le flag -ngl 99 est l'élément le plus critique de cette commande : il indique à llama.cpp de décharger 99 couches (essentiellement la totalité pour un modèle 8B) vers la VRAM de votre GPU NVIDIA.

Terminal
./llama-cli -m ./models/Meta-Llama-3-8B-Instruct-Q4_K_M.gguf \
  -n 512 \
  -ngl 99 \
  --color \
  -i -r "User:" \
  -p "You are a helpful AI assistant.\n\nUser: Hello!\nAI:"

Vous devriez voir le moteur s'initialiser, charger le modèle en VRAM, et vous présenter un prompt interactif.

Step 5 Le serveur API local

Si vous hébergez ceci sur un serveur Ubuntu sans interface graphique et souhaitez accéder au modèle à distance (ou via une interface comme Open WebUI), vous pouvez lancer le serveur HTTP intégré.

Terminal
./llama-server -m ./models/Meta-Llama-3-8B-Instruct-Q4_K_M.gguf -ngl 99 --host 0.0.0.0 --port 8080

Votre backend haute performance, accéléré par CUDA, est désormais à l'écoute sur http://YOUR_SERVER_IP:8080 et agit comme un remplacement direct de l'API OpenAI !