Paramètres llama-swap pour éliminer les délais de changement de modèle sur les GPU de 12 Go ou moins
١٤ مايو ٢٠٢٦
0
Computing/SoftwareComments (0)
Log in to leave a comment
No posts yet
Log in to leave a comment
No posts yet
Pour les utilisateurs de GPU de milieu de gamme, la VRAM est une ressource toujours insuffisante. Lorsqu'on utilise une RTX 3060 ou 4060 pour faire tourner plusieurs modèles, on atteint vite les limites. Un modèle Llama 3.1 8B après quantification 4 bits (Q4_K_M) consomme à lui seul 5,2 Go pour les poids. Si l'on soustrait environ 1 Go d'occupation de base par Windows, il ne reste qu'un peu plus de 2 Go. Si vous tentez de charger un autre modèle de force, le "spillover" se déclenche en utilisant la RAM système. La vitesse, qui était de 15 tokens par seconde, chute alors à 1 token, ce qui donne immédiatement envie de tuer le processus.
Pour éviter ce goulot d'étranglement, il faut définir des temps d'éjection (idle_timeout) différents par modèle dans le fichier config.yaml.
globalTTL à 300 (5 minutes). Ajoutez --ctx-size 8192 après la commande d'exécution du modèle (cmd) pour limiter le cache KV afin qu'il n'absorbe pas toute la mémoire restante, évitant ainsi l'OOM (Out of Memory).ttl: 0, et réglez le lourd Qwen 2.5 Coder 7B sur ttl: 60 pour qu'il libère la VRAM dès que le codage est terminé.Grâce à ces réglages, vous économiserez au moins 20 minutes par jour en évitant d'allumer et d'éteindre manuellement chaque modèle.
Passer d'Ollama à llama.cpp provoque souvent des conflits de ports et des guerres d'occupation des ressources. llama-swap agit comme un agent de circulation pour organiser ce chaos. Ce proxy léger écrit en langage Go envoie un signal SIGTERM au processus existant lorsqu'un nouvel appel de modèle arrive, permettant de l'arrêter en toute sécurité avant de charger le nouveau.
La méthode de rédaction du YAML pour une intégration stable est claire :
--flash-attn ou --mlock dans la section macros. Cela rend le fichier de configuration beaucoup plus propre.models, utilisez la macro ${PORT} pour spécifier le chemin d'exécution de chaque modèle.proxy avec http://localhost:11434.Au final, votre application n'aura qu'à pointer vers une seule adresse : http://localhost:8080/v1. Peu importe que le moteur ou le modèle change en interne, vous n'aurez plus à vous en soucier.
La véritable raison d'utiliser des LLM locaux est d'économiser de l'argent tout en protégeant ses données privées. Bien que Cursor soit payant par défaut, vous pouvez le contourner via le llama-swap local en utilisant le paramètre OpenAI Compatible. C'est une économie de 20 dollars par mois, soit 240 dollars par an.
La méthode de connexion est simple :
http://localhost:8080/v1 dans Base URL.gpt-4o à votre modèle réel dans la configuration de llama-swap, Cursor pensera qu'il s'agit de son partenaire habituel et fonctionnera immédiatement.nomic-embed-text et fixez-le sur ttl: 0 dans llama-swap.Que vous passiez de la prise de notes à la fenêtre de code, le modèle est automatiquement swappé en arrière-plan. Toutes les données restent sur votre ordinateur, éliminant tout sentiment d'insécurité.
Ouvrir le terminal à chaque fois pour lancer le proxy est fastidieux. Pour qu'une IA soit un véritable outil, elle doit rester discrètement active comme l'air que l'on respire. Pour les utilisateurs de Windows, enregistrer llama-swap comme service avec NSSM (Non-Sucking Service Manager) est la solution la plus propre.
Voici comment faire :
winget install NSSM, puis tapez nssm install LlamaSwap avec les droits d'administrateur.llama-swap.exe dans Path, et --config config.yaml -watch-config dans Arguments.Désormais, le point de terminaison de l'API sera actif dès le démarrage de l'ordinateur. Grâce à l'option -watch-config, toute modification et sauvegarde du fichier YAML sera prise en compte immédiatement sans redémarrer le service.
Les interruptions de conversation ou les extinctions lors d'un changement de modèle sont souvent dues à une mauvaise conception de la mémoire. Au démarrage, un moteur d'inférence tente de réserver autant de mémoire que la fenêtre de contexte définie. Sans contrôle, vous rencontrerez des erreurs inattendues.
Voici trois dispositifs pour assurer la stabilité :
--ctx-size autour de 8192 dans le champ cmd. Si vous le laissez en illimité, la VRAM explosera.healthCheckTimeout généreusement, par exemple à 300 secondes, pour que le proxy ne coupe pas la connexion pendant le chargement.--flash-attn est indispensable dans les options d'exécution. Elle permet d'utiliser un contexte 20 % plus large avec la même quantité de VRAM.Pour un modèle 8B, le swap se termine en environ 5 secondes. C'est un niveau qui ne perturbe pas le flux de travail. Même sans station de travail haute performance, quelques ajustements de paramètres suffisent pour profiter d'un environnement IA confortable sur votre bureau.