Llama.cpp sur Mac : Le guide de l'utilisateur avancé

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

Si vous voulez des performances maximales, un contrôle absolu et zéro logiciel superflu, compiler llama.cpp directement depuis le code source est la seule solution. Voici exactement comment le faire sur Apple Silicon.

Introduction

llama.cpp est le moteur C++ sous-jacent qui propulse presque tous les outils d'IA locaux (y compris Ollama et LM Studio). En l'exécutant nativement depuis le terminal, vous éliminez la surcharge de l'interface graphique et obtenez un contrôle total sur les paramètres de performance.

Step 1 Prérequis

Vous avez besoin des outils en ligne de commande Xcode d'Apple et de Homebrew pour compiler le code C++.

Terminal
xcode-select --install
brew install cmake python3

Step 2 Compilation

Nous allons cloner le dépôt et le compiler en utilisant le flag LLAMA_METAL=1 pour s'assurer qu'il exploite le GPU d'Apple.

Terminal
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
make -j LLAMA_METAL=1

Step 3 Téléchargement des poids

Nous devons télécharger un modèle au format .gguf. Nous utiliserons huggingface-cli pour télécharger Llama 3 8B.

Terminal
pip3 install huggingface-hub
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

Maintenant, discutons avec le modèle. Le flag -ngl 99 indique au moteur de décharger toutes les couches vers le GPU de votre Mac.

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:"

Step 5 Serveur local

Si vous souhaitez héberger un point de terminaison API compatible OpenAI directement depuis le terminal, utilisez le binaire llama-server :

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

Votre backend haute performance est désormais disponible à l'adresse http://127.0.0.1:8080.