MacBook Air system profiler (Bild © PCMasters.de)
Der erste Schritt bestand darin, zu überprüfen, ob das MacBook Metal unterstützt. Metal ist ein unverzichtbares Framework zur Leistungsoptimierung, weil es die GPU der M-Chips anspricht.
Durch Ausführen des Befehls system_profiler SPDisplaysDataType wird bestätigt, dass der Apple M4-Chipsatz Metal 3 unterstützt und die entscheidende Funktion zur Verbesserung der GPU-Berechnungen vorhanden ist. Die Ausgabe zeigte umfassende Details zu den Grafikfähigkeiten an, einschließlich der Gesamtzahl der Kerne und der unterstützten Anzeigetypen.
Als Nächstes muss die erforderlichen Build-Pakete mit Homebrew installiert werden. Brew ist ein beliebter Paketmanager auf macOS. Dazu gehörten die Installation von cmake, ninja und git, um sicherzustellen, dass alle Abhängigkeiten für den Build von llama.cpp erfüllt waren.
brew install cmake ninja git
Nachdem die ganzen Voraussetzungen zum Kompilieren der C-Bibliotheken erfüllt sind, wird das Repository llama.cpp mit den folgenden Befehlen von GitHub auf der lokalen Umgebung geklont:
git clone https://github.com/ggml-org/llama.cpp
cd llama.cpp
Das Projekt wird anschließend mit aktivierter Metal-Unterstützung über das Flag -DGGML_METAL=ON kompiliert, wobei CMake die passenden Compiler auf dem System aussuchen wird:
cmake -B build -G Ninja -DGGML_METAL=ON
cmake --build build --config Release -j 8
In dem gleichen Ordner kann man dann auch den LLAMA.cpp Server starten oder die CLI nutzen. Bei den Parametern kann man das Modell aber auch den Text angeben, abhängig davon, was man machen will:
./build/bin/llama-cli -m /Users/UserName/Downloads/Meta-Llama-3-8B-Instruct.Q5_K_S.gguf -p "Was ich die LLM fragen will, schreibe ich hier"
Mit diesem Vorgehen konnten wir llama.cpp bei dem größeren Meta-Llama-3-8B Modell beim Generieen von Token von 0,06 auf 13.7 t/s steigern. Bei M5-Macs sollten hier auch locker 30 t/s erreichbar sein. So entfesselt man das volle Potenzial des MacBook Air/Pro für die effiziente Generierung von Inhalten mit llama.cpp.


