Documentation
VRAMPilot n'a besoin de rien d'autre pour tourner : pas d'installation de llama.cpp, pas de téléchargement manuel d'un binaire llama-server — le moteur d'inférence est récupéré et vérifié en SHA-256 au premier lancement. Cette page couvre l'installation, le fonctionnement de l'échelle de récupération, ce qui est persisté, le comportement du watchdog, et les prérequis.
Installation
Téléchargez la version pour votre OS depuis la page de téléchargement — Windows, Linux ou macOS. Il n'y a rien d'autre à installer.
- Windows : décompressez et lancez
vrampilot.exe. - Linux / macOS :
chmod +x vrampilot-0.2.0-*.bin, puis./vrampilot-0.2.0-*.bin.
Au lancement, une interface web locale s'ouvre dans votre navigateur sur http://127.0.0.1:8770 — collez un chemin de modèle .gguf, cliquez sur Launch, et discutez. Tout reste sur votre machine, et un endpoint compatible OpenAI est exposé pour n'importe quel client.
Vous préférez le terminal ? Le même moteur governor dispose d'une interface en ligne de commande (la commande vrampilot / python -m vrampilot.cli) — les commandes montrées dans cette page en sont la forme CLI. Le téléchargement ci-dessus est la façon de le lancer aujourd'hui.
Comment fonctionne l'échelle de récupération
Quand le serveur ne démarre pas (ou démarre mais ne peut pas générer de token), VRAMPilot lit le log d'erreur, le classifie comme out-of-memory, se replie d'un cran, et réessaie. L'ordre est conçu pour préserver le plus de capacité :
- La précision du KV-cache d'abord (f16 -> q8_0 -> q4_0). Cela réduit le KV-cache tout en gardant votre contexte complet. C'est lossy sur le raisonnement long — le rapport le dit.
- Puis réduire le contexte — divisé par deux jusqu'à ce que ça tienne.
- Puis décharger davantage vers le CPU — plus d'expert-offload MoE, ou moins de couches GPU pour les modèles denses.
- Le plancher — si rien ne tient, il le dit honnêtement au lieu de faire semblant.
Exemple validé (trace brute dans validation/RESULTS.md) : face à une configuration volontairement impossible à 262144 de contexte, il a récupéré à 131072 de contexte — 4x plus qu'un repli sur le seul contexte n'en aurait gardé — et a servi une vraie réponse.
Le détecteur d'OOM reconnaît les chaînes d'erreur CUDA, Vulkan, ROCm et Metal.
Persistance
Chaque configuration qui a réellement démarré est persistée par (empreinte machine, hash de l'en-tête du modèle, contexte demandé) dans une base SQLite locale, ~/.governor/configs.db (le moteur garde le nom « governor » à dessein). En append-only : une configuration qui ne marche plus est gardée en historique, jamais écrasée. Le lancement suivant démarre directement sur la configuration connue-bonne ; un changement de driver ou de GPU invalide l'entrée et déclenche un nouveau plan.
Pourquoi c'est important : une tentative ratée coûte un chargement complet du modèle — mesuré à ~220 s par tentative pour un modèle MoE de 9,5 Go chargé avec --no-mmap sur le disque de la machine du gate. Le cache existe pour ne jamais payer ça deux fois.
Contrôles de transparence :
vrampilot configs list # inspecter tout ce qu'il retient
vrampilot modele.gguf --no-cache # ignorer le cache, forcer un nouveau plan
Rien ne quitte votre machine.
Comportement du watchdog
Pendant que le serveur tourne, le watchdog couvre l'épuisement de la VRAM pendant une génération — par exemple, vous ouvrez une autre application GPU en plein stream.
- Sur NVIDIA, la VRAM libre est mesurée (vraies lectures nvidia-smi, sondées toutes les quelques secondes), pas estimée. Une mauvaise tendance déclenche une alerte douce ; le franchissement du plancher auto-calibré (400 MiB dans le run validé) déclenche un redémarrage contrôlé sur une configuration dégradée, et la configuration survivante est persistée pour que le prochain lancement parte de là.
- Le redémarrage n'est pas invisible. Une génération en cours au moment du redémarrage est perdue, et le watchdog le dit dans son propre message critique. Aucune sur-promesse de continuité.
- Run validé sous vraie pression externe (
validation/WATCHDOG.md) : plancher franchi à 102 MiB libres, récupéré en 223,9 s à un contexte 8192 → 4096 — pendant que le serveur de pression occupait toujours sa VRAM. Contre-test sur des générations normales ensuite : 0 soft alerts, 0 interventions. - Sur Vulkan et Apple, la VRAM libre est une estimation, pas assez fiable pour agir : le watchdog se déclasse honnêtement en surveillance processus + santé, et l'annonce dans son premier événement.
Limite connue : llama.cpp ne sait pas réduire à chaud le KV-cache d'un serveur en marche ; la seule action runtime est donc ce redémarrage contrôlé. Si l'amont livre le redimensionnement à chaud du KV, VRAMPilot l'adoptera et retirera le redémarrage pour ce chemin.
Prérequis
Le build téléchargé n'a besoin de rien de préinstallé — le binaire du moteur d'inférence est téléchargé et vérifié au premier lancement. Si vous l'exécutez plutôt depuis le paquet Python, Python 3.9+ est l'unique prérequis.
- Python 3.9+ — uniquement si vous l'exécutez depuis le paquet Python ; le build téléchargé embarque le sien.
- Aucun llama-server nécessaire. Le premier lancement en résout un dans cet ordre :
$LLAMA_SERVER→ PATH → cache local → téléchargement du build llama.cpp épinglé b9592 pour votre OS et votre GPU, avec vérification SHA256 obligatoire — un hash qui ne correspond pas supprime le fichier et arrête net, sans solution de repli. Le manifest épingle 7 cibles (Windows Vulkan/CUDA/CPU, Linux Vulkan/CPU, macOS arm64/x64). - Par défaut : Vulkan sur Windows et Linux (un seul binaire pour NVIDIA, AMD et Intel), Metal sur macOS, CUDA en opt-in via
GOVERNOR_BACKEND=cuda. GOVERNOR_SERVER_BASE_URLpeut pointer le téléchargement vers n'importe quel miroir que vous contrôlez (votre serveur, un NAS, un partage isolé) — les hashs épinglés s'appliquent toujours, donc aucun miroir ne peut substituer les binaires. Vous pouvez toujours passer--server /chemin/vers/llama-serverà la place.