Lokales Llama 3 unter Linux

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

Llama 3 unter Linux auszuführen gibt Ihnen maximale Kontrolle und Leistung. Wir verwenden llama.cpp — eine hochoptimierte C++ Inferenz-Engine, die nativ NVIDIA CUDA, AMD ROCm und rein CPU-basierte Inferenz unterstützt.

Step 1 Einführung

Während Wrapper wie Ollama und LM Studio hervorragend für einen schnellen Einstieg geeignet sind, abstrahieren sie die zugrunde liegende Engine. Wenn Sie das letzte Quäntchen Leistung aus Ihrer Linux-Hardware herausholen möchten, ist das direkte Kompilieren von llama.cpp aus dem Quellcode der Goldstandard.

Diese Anleitung führt Sie durch das Kompilieren der Engine mit NVIDIA CUDA-Unterstützung, das Herunterladen des Llama 3 8B-Modells und das direkte Ausführen aus Ihrem Terminal.

Step 2 Voraussetzungen

Zunächst müssen wir die grundlegenden Build-Tools und das NVIDIA CUDA-Toolkit installieren. Öffnen Sie Ihr Terminal und führen Sie folgendes aus:

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

Überprüfen Sie, ob Ihre NVIDIA-Treiber und CUDA korrekt funktionieren:

Terminal
nvidia-smi

Step 3 Kompilierung

Wir werden das llama.cpp-Repository von GitHub klonen und es kompilieren. Wir übergeben das Flag LLAMA_CUDA=1 an den make-Befehl, um sicherzustellen, dass der Compiler das Binary mit NVIDIA GPU-Beschleunigung erstellt.

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

Sobald die Kompilierung abgeschlossen ist, befinden sich mehrere ausführbare Dateien im Stammverzeichnis, darunter llama-cli und llama-server.

Step 4 Herunterladen der Llama 3-Gewichte

llama.cpp verwendet das .gguf-Dateiformat. Wir können die HuggingFace CLI verwenden, um Metas Llama 3 8B-Modell sicher und direkt auf unseren Server herunterzuladen.

Installieren Sie zunächst die CLI:

Terminal
pip3 install -U "huggingface_hub[cli]"

Laden Sie nun die Q4_K_M-quantisierte Version des Modells herunter. Diese 4-Bit-Quantisierung bietet eine perfekte Balance zwischen Geschwindigkeit und Intelligenz und passt problemlos in 8 GB 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 Inferenz ausführen

Es ist Zeit, mit Llama 3 zu interagieren. Wir verwenden das Tool llama-cli.

Das Flag -ngl 99 ist der wichtigste Teil dieses Befehls: Es weist llama.cpp an, 99 Schichten (für ein 8B-Modell im Wesentlichen alle) in den VRAM Ihrer NVIDIA GPU auszulagern.

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

Sie sollten sehen, wie die Engine initialisiert wird, das Modell in den VRAM lädt und Ihnen eine interaktive Eingabeaufforderung präsentiert.

Step 6 Der lokale API-Server

Wenn Sie dies auf einem headless Ubuntu-Server hosten und remote auf das Modell zugreifen möchten (oder über eine UI wie Open WebUI), können Sie den integrierten HTTP-Server starten.

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

Ihr hochleistungsfähiges, CUDA-beschleunigtes Backend lauscht nun unter http://YOUR_SERVER_IP:8080 und fungiert als vollwertiger Ersatz für die OpenAI API!