Llama 3 locale su Linux

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

Eseguire Llama 3 su Linux ti offre il massimo controllo e le massime prestazioni. Utilizzeremo llama.cpp — un motore di inferenza C++ altamente ottimizzato che supporta nativamente NVIDIA CUDA, AMD ROCm e l'inferenza solo su CPU.

Step 1 Introduzione

Sebbene wrapper come Ollama e LM Studio siano ottimi per iniziare rapidamente, astraggono il motore sottostante. Se vuoi spremere ogni ultima goccia di prestazioni dal tuo hardware Linux, compilare llama.cpp direttamente dal sorgente è lo standard di riferimento assoluto.

Questa guida ti accompagnerà attraverso la compilazione del motore con supporto NVIDIA CUDA, il download del modello Llama 3 8B e la sua esecuzione direttamente dal terminale.

Step 2 Prerequisiti

Per prima cosa, dobbiamo installare gli strumenti di build fondamentali e il toolkit NVIDIA CUDA. Apri il terminale ed esegui:

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

Verifica che i driver NVIDIA e CUDA funzionino correttamente:

Terminal
nvidia-smi

Step 3 Compilazione

Cloneremo il repository llama.cpp da GitHub e lo compileremo. Passiamo il flag LLAMA_CUDA=1 al comando make per garantire che il compilatore costruisca il binario con l'accelerazione GPU NVIDIA.

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

Una volta completata la compilazione, troverai diversi file eseguibili nella directory radice, tra cui llama-cli e llama-server.

Step 4 Download dei Pesi di Llama 3

llama.cpp utilizza il formato di file .gguf. Possiamo usare la CLI di HuggingFace per scaricare in modo sicuro il modello Llama 3 8B di Meta direttamente sul nostro server.

Prima di tutto, installa la CLI:

Terminal
pip3 install -U "huggingface_hub[cli]"

Ora scarica la versione quantizzata Q4_K_M del modello. Questa quantizzazione a 4 bit bilancia perfettamente velocità e intelligenza, rientrando comodamente in 8 GB di 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 5 Esecuzione dell'Inferenza

È giunto il momento di dialogare con Llama 3. Utilizzeremo lo strumento llama-cli.

Il flag -ngl 99 è la parte più importante di questo comando: indica a llama.cpp di scaricare 99 layer (essenzialmente tutti quelli presenti in un modello 8B) sulla VRAM della tua 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:"

Dovresti vedere il motore inizializzarsi, caricare il modello in VRAM e presentarti un prompt interattivo.

Step 6 Il Server API Locale

Se stai ospitando questo su un server Ubuntu headless e desideri accedere al modello in remoto (o tramite un'interfaccia utente come Open WebUI), puoi avviare il server HTTP integrato.

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

Il tuo backend ad alte prestazioni, accelerato da CUDA, è ora in ascolto su http://YOUR_SERVER_IP:8080 e funge da sostituto diretto dell'API OpenAI!