Llama.cpp su Mac: La Guida per Utenti Avanzati

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

Se vuoi le massime prestazioni, il controllo assoluto e zero software superfluo, compilare llama.cpp direttamente dal codice sorgente è l'unico modo per farlo. Ecco esattamente come fare su Apple Silicon.

Step 1 Introduzione

llama.cpp è il motore C++ sottostante che alimenta quasi tutti gli strumenti AI locali (inclusi Ollama e LM Studio). Eseguendolo nativamente dal terminale, elimini il sovraccarico dell'interfaccia utente e ottieni il controllo totale sui parametri di prestazione.

Step 2 Prerequisiti

Hai bisogno degli Xcode Command Line Tools di Apple e di Homebrew installati per compilare il codice C++.

Terminal
xcode-select --install
brew install cmake python3

Step 3 Compilazione

Cloneremo il repository e lo compileremo usando il flag LLAMA_METAL=1 per assicurarci che sfrutti la GPU di Apple.

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

Step 4 Download dei Pesi

Dobbiamo scaricare un modello in formato .gguf. Utilizzeremo huggingface-cli per scaricare 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 5 Esecuzione dell'Inferenza

Ora, chattiamo con il modello. Il flag -ngl 99 indica al motore di trasferire tutti i livelli alla GPU del tuo 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 6 Server Locale

Se vuoi ospitare un endpoint API compatibile con OpenAI direttamente dal terminale, usa il binario llama-server:

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

Il tuo backend ad alte prestazioni è ora in ascolto su http://127.0.0.1:8080.