LM Warden

Was Leute vor der Installation fragen.

Was ist LM Warden?

Eine Steuerungsebene rund um Inferenz-Engines auf Ihrer eigenen Hardware: vLLM und llama.cpp auf einem Linux-Host mit NVIDIA-GPUs, oder MLX und llama.cpp in einer Beta-App auf einem Mac mit Apple Silicon. Sie laden ein Modell von HuggingFace herunter, laden es auf Ihre eigene GPU, erstellen einen API-Schlüssel und rufen es über einen OpenAI-kompatiblen Endpunkt /v1 auf. Eine Browser-Oberfläche deckt das Laden und Entladen von Modellen ab, Live-Logs der Engines, einen Chat-Playground, GPU- und Token-Statistiken und eine Seite pro API-Schlüssel. LM Warden macht Modelle nicht schneller und verändert die Engines nicht. Es ergänzt, was eine Engine allein nicht mitbringt.

Auf welchen GPUs und Betriebssystemen läuft es?

Linux und macOS. Unter Linux: NVIDIA-GPUs auf einem x86_64-Host. Die Untergrenze ist Turing (sm_75, die Generation RTX 20): Das Basis-Image enthält CUDA 13, das Maxwell, Pascal und Volta fallen gelassen hat, also funktionieren eine GTX 1080 Ti, eine Titan X oder eine V100 nicht. Turing bis Blackwell ist abgedeckt, einschließlich Ada, Hopper und der RTX-50-Serie. Unter macOS: Apple Silicon (M1 oder neuer), über eine separate Mac-App, derzeit als Beta: eine native Menüleisten-App für macOS 14 oder neuer, die Modelle mit MLX und einem Metal-Build von llama.cpp ausführt, dieselbe OpenAI-kompatible API bereitstellt und dasselbe Dashboard in einem eigenen Fenster zeigt, von lmwarden.com/download/mac (etwa 110 MB, mit einer SHA-256-Datei). Sie ist ad hoc signiert und nicht notarisiert, erlauben Sie sie also beim ersten Start unter Systemeinstellungen › Datenschutz & Sicherheit › Trotzdem öffnen (unter macOS 14 funktioniert auch Rechtsklick › Öffnen); sie lauscht standardmäßig auf Loopback und aktualisiert sich nicht selbst. Windows kommt als Nächstes; wir arbeiten daran, noch ohne Termin. ROCm, Intel-GPUs und CPU werden in diesem Release nicht unterstützt; AMD Radeon und Intel-GPUs stehen auf der Roadmap, und was zuerst kommt, hängt vom Feedback in den GitHub Discussions des Projekts ab. Mehrere GPUs in einem Linux-Rechner werden unterstützt; ein Modell, das über mehrere Maschinen verteilt ist, nicht.

Funktioniert mein bestehender OpenAI-Client damit?

Ja. Das Gateway unter /v1/* ist OpenAI-kompatibel, sodass das openai-SDK, LangChain, OpenWebUI und Ihre eigenen Agenten unverändert funktionieren, sobald Sie base_url und den Schlüssel ändern. GET /v1/models meldet außerdem das max_model_len jedes Modells, sodass ein Client das Kontextfenster nicht raten muss. Codex CLI, das nur die OpenAI Responses API unterstützt, funktioniert ebenfalls: POST /v1/responses wird für ein von Ihnen geladenes Modell in Chat Completions übersetzt (zustandslos und nur lokal: Router-Regeln gelten nicht).

Kann ich es mit Claude Code verwenden und mein Anthropic-Konto behalten?

Ja. Setzen Sie ANTHROPIC_BASE_URL auf den Warden, behalten Sie Ihre normale claude-Anmeldung, und tragen Sie den Warden-Schlüssel in ANTHROPIC_CUSTOM_HEADERS als X-LMWarden-Key ein. Eine Regel ordnet einen Modellnamen, den Claude Code anfragt, etwa claude-haiku*, einem auf Ihren GPUs geladenen Modell zu; jedes andere Modell und jeder andere /v1-Pfad wird Byte für Byte mit Ihrer eigenen Anmeldung an Anthropic weitergereicht. Das erfordert Claude Code 2.1.227 oder neuer, ist standardmäßig aus, und ein Schlüssel muss das Flag „May relay to Anthropic“ haben, bevor irgendetwas weitergeleitet wird. Ältere Clients können weiterhin den rein lokalen Modus nutzen.

Sieht Anthropic meinen Warden-Schlüssel oder der Warden meine Anthropic-Anmeldung?

Anthropic sieht den Warden-Schlüssel nie: Er wird in einem eigenen Header übertragen und entfernt, bevor eine Anfrage weitergereicht wird. Der Warden verarbeitet Ihre Anthropic-Anmeldung durchaus, weil er sie weiterleiten muss, aber nur an Anthropic. Sie wird nie an eine Engine gesendet und nie protokolliert, und nichts aus einer durchgereichten Anfrage wird gespeichert oder in God mode angezeigt.

Welche Inferenz-Engines verwendet es?

Unter Linux die offiziellen Versionen vLLM v0.32.0 und llama.cpp b11719, pro Modell gewählt und unverändert ausgeführt: kein gepatchtes Image, kein Fork, kein Monkeypatching. Wählen Sie eine .gguf-Datei, kommt automatisch llama.cpp zum Einsatz, das mit GGUF-Quantisierung größere Modelle auf kleinere Karten bringt und ältere GPUs nützlich hält. TensorRT-LLM, SGLang und die Laufzeit von Ollama werden nicht mitgeliefert; die Mac-Beta führt Modelle mit MLX aus, ihrer Standard-Engine, oder mit einem Metal-Build von llama.cpp für .gguf-Dateien, und hat kein vLLM.

Verlässt irgendetwas meinen Rechner?

Nichts verlässt den Host, es sei denn, Sie schalten den Router für Claude Code ein und geben einem Schlüssel das Flag „May relay to Anthropic“. Dann gehen die Anfragen dieses Schlüssels für Claude-Modelle, die keine Regel an Ihre GPUs schickt, an Anthropic, mit der eigenen Anthropic-Anmeldung des Benutzers, und sonst nichts. Es gibt kein Konto, keine Lizenzprüfung und keine Nutzungsanalyse. Ansonsten nimmt der Stack nur dann Verbindung nach außen auf, wenn Sie es verlangen: huggingface.co, um Gewichte herunterzuladen (HF_HUB_OFFLINE=1 unterbindet selbst das), Docker Hub, wenn Sie die Auswahl der Engine-Version öffnen, und die Registry für die Release-Images, die docker load in einer Offline-Installation oder einer vom Netz getrennten Installation ersetzt.

Werden Prompts und Antworten gespeichert?

Standardmäßig nicht. Der Anfrageverlauf hinter den Diagrammen und der Nutzung pro Schlüssel enthält nur Metadaten und hat keine Spalte für den Text von Prompts oder Completions. Zwei Diagnosefunktionen können Inhalte erfassen, und beide sind aus, solange Sie sie nicht einschalten: God mode (VW_GODMODE_ENABLED), eine begrenzte Ansicht im Arbeitsspeicher auf den Verkehr eines Schlüssels, und das Inhaltsprotokoll (VW_CONTENT_LOG_ENABLED), das nur für die von Ihnen aufgeführten Token-IDs auf die Festplatte schreibt.

Wie funktionieren API-Schlüssel für ein Team?

Jede App oder Person bekommt ihren eigenen vw_-Schlüssel mit eigener Seite. Setzen Sie eine Priorität von P0 bis P9 (eine wartende P9-Anfrage kommt immer vor einer P8-Anfrage dran), pausieren Sie einen Schlüssel, sodass seine Clients 403 token paused erhalten, während laufende Anfragen noch abgeschlossen werden, oder rotieren Sie ihn mit einer Übergangsfrist, in der das alte Geheimnis weiter funktioniert. Anfragen, Prompt-Token und Completion-Token werden pro Schlüssel und Client-IP gezählt, mit Wartezeit in der Warteschlange und Latenz pro Schlüssel. Skripte, CI und Agenten, die die Steuerungs-API bedienen, verwenden statt des Admin-Passworts separate vwa_-Admin-Token.

Kann ich mehrere Modelle auf einer GPU ausführen?

Nein. Ein geladenes Modell pro GPU ist eine Regel, die vor dem Start einer Engine durchgesetzt wird. Sie können verschiedene Modelle auf verschiedenen Karten desselben Hosts laden und ein Modell mit der Tensor-Parallelität von vLLM auf mehrere Karten aufteilen.

Was braucht die Installation?

Unter Linux einen Host mit Docker, Docker Compose v2.24 oder neuer, einer NVIDIA-GPU, dem NVIDIA Container Toolkit und etwa 40 GB freiem Platz dort, wo Docker seine Images ablegt. Das Installationsprogramm prüft den Host, lässt Sie GPUs wählen, erzeugt die Geheimnisse, lädt die Release-Images herunter und bietet an, den Stack zu starten. Ein Einrichtungsassistent im Browser fragt dann nach den zu verwendenden GPUs, einem HuggingFace-Token und Ihrem Admin-Konto. Auf einem Mac mit Apple Silicon laden Sie stattdessen die Beta-App herunter; siehe den Mac-Abschnitt.

Was kostet es?

Nichts. LM Warden steht unter der Lizenz Apache-2.0. Es ist Software, die Sie selbst betreiben, keine gehostete API: Sie stellen Hardware, Treiber, Festplatte und Strom, und sobald die Hardware bezahlt ist, kostet eine Anfrage Strom, keine Gebühr pro Token.