llama.cpp
Pi unterstützt den llama.cpp Router-Server. Der Router erkennt mehrere GGUF-Modelle und lädt oder entlädt sie bei Bedarf.
Verwenden Sie einen aktuellen llama.cpp-Build mit Router-Unterstützung. Folgen Sie der build instructions oder installieren Sie eine prebuilt release für Ihre Plattform.
Starten Sie den Router
Beginnen Sie llama-server ohne --model oder -m. Durch die Übergabe eines Modells wird der Einzelmodellmodus anstelle des Routermodus gestartet.
llama-server \
--models-dir ~/models \
--no-models-autoload \
--jinja \
--host 127.0.0.1 \
--port 8080 \
-ngl 999 \
-c 32768Wichtige Optionen:
--models-dir ~/modelserkennt lokale GGUF-Dateien.--no-models-autoloadlädt weiterhin explizit bis/llama.--jinjaermöglicht kompatible Chat-Vorlagen und Tool-Anrufe.-ngl 999lädt so viele Schichten wie möglich auf die GPU.-c 32768legt das Kontextfenster für jedes geladene Modell fest. Lassen Sie es weg, um den nativen Kontext des Modells zu verwenden, was möglicherweise wesentlich mehr Speicher erfordert.
Ein Einzeldateimodell kann direkt im Modellverzeichnis liegen. Platzieren Sie multimodale und Multi-Shard-Modelle in separaten Unterverzeichnissen:
~/models/
├── llama-3.2-1b-Q4_K_M.gguf
├── gemma-3-4b-it-Q4_K_M/
│ ├── gemma-3-4b-it-Q4_K_M.gguf
│ └── mmproj-F16.gguf
└── large-model-Q4_K_M/
├── large-model-Q4_K_M-00001-of-00003.gguf
├── large-model-Q4_K_M-00002-of-00003.gguf
└── large-model-Q4_K_M-00003-of-00003.ggufStarten Sie den Router neu, nachdem Sie Dateien manuell hinzugefügt haben. Für modellspezifische Kontextgrößen und andere Optionen verwenden Sie llama.cpp model presets.
Konfigurieren Sie Pi
Starten Sie Pi und konfigurieren Sie den Anbieter:
/login llama.cppGeben Sie die Router-URL und optional API key ein. Die Standard-URL ist http://127.0.0.1:8080.
Umgebungsvariablen können dieselben Werte ohne /login konfigurieren:
export LLAMA_BASE_URL=http://127.0.0.1:8080
export LLAMA_API_KEY=optional-secret
piWenn der Server einen API key verwendet, beginnen Sie llama-server mit dem passenden --api-key-Wert. Behalten Sie --host 127.0.0.1 für nur lokalen Zugriff bei.
Modelle verwalten
Laufen:
/llama- Wählen Sie ein entladenes Modell aus, um es zu laden.
- Wählen Sie ein geladenes Modell aus, um es zu entladen.
- Wählen Sie Modell herunterladen…, suchen Sie nach Hugging Face und wählen Sie dann ein Repository und eine Quantisierung aus. Genaue
owner/repository[:quant]-Werte funktionieren auch. - Drücken Sie während eines Ladevorgangs oder Downloads die Escape-Taste, um den Abbruch zu bestätigen.
Die Hugging Face-Suche verwendet HF_TOKEN, wenn sie festgelegt ist, und prüft dann $HF_TOKEN_PATH, $HF_HOME/token, $XDG_CACHE_HOME/huggingface/token und ~/.cache/huggingface/token. Die Suche funktioniert auch ohne Authentifizierung, vorbehaltlich niedrigerer Ratengrenzen. Pi warnt vor dem Herunterladen von geschlossenen Repositories und Links zu deren Zugriffsseite. Der llama.cpp-Server führt den Download durch, daher muss sein Prozess auch HF_TOKEN haben, wenn das ausgewählte Repository Zugriff erfordert.
Wenn andere Modelle geladen sind, fragt Pi, ob diese zuerst entladen oder geladen bleiben sollen. Pi entlädt Modelle nicht stillschweigend und löscht niemals Modelldateien. Der Router kann mit anderen Clients geteilt werden, daher zeigt /llama immer den aktuellen Status des Routers an.
In /model werden nur geladene Modelle angezeigt. Nachdem Sie ein Modell geladen haben, führen Sie /model aus, um es für die aktuelle Pi Sitzung auszuwählen.
Wenn der Router die Verbindung trennt, zeigt /llama Wiederholen und Schließen an. Bei einem erneuten Versuch wird die Verbindung wiederhergestellt und der Modellstatus aktualisiert, ohne dass der unterbrochene Vorgang erneut abgespielt wird.
Fehlerbehebung
Überprüfen Sie, ob der Router erreichbar ist:
curl http://127.0.0.1:8080/health
curl http://127.0.0.1:8080/models- Keine Modelle in
/llama: Überprüfen Sie--models-dir, das Verzeichnislayout, und starten Sie den Router neu. - Modell fehlt in
/model: Laden Sie es zuerst mit/llama. - Laden schlägt fehl oder verbraucht zu viel Speicher: Senken Sie
-coder entladen Sie ein anderes Modell. - Server ist nicht im Router-Modus: Starten Sie ihn ohne
--model,-moder-hf.