laptop_mac macOS Sonoma
Intermediate
schedule 8 min read
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:
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!