Llama-Swap : La solution au problème le plus agaçant des LLM locaux
BBetter Stack
Computing/SoftwareConsumer ElectronicsInternet Technology
Transcript
00:00:00Notre configuration de modèle local fonctionne à merveille, jusqu'à ce qu'on ait besoin d'un autre modèle.
00:00:04On doit alors arrêter le serveur llama, changer les ports, mettre à jour l'URL de base OpenAI, attendre
00:00:10les rechargements, en espérant que rien ne plante.
00:00:13Tout ça parce que notre modèle de code est trop lourd pour un chat rapide, et que le petit modèle est trop limité
00:00:18pour du vrai code.
00:00:19LlamaSwap règle ce problème.
00:00:21Un seul point de terminaison, plusieurs modèles, permutation automatique, et vos outils ne voient aucun changement.
00:00:26Je vais vous montrer comment configurer tout ça dans les prochaines minutes.
00:00:34La plupart des développeurs de LLM locaux finissent par butter sur le même obstacle.
00:00:37Au début, on utilise quelque chose de pratique : Ollama, LM Studio, un outil qui marche tout seul.
00:00:44Parce que c'est efficace.
00:00:45Et honnêtement c'est génial, car ils se sont beaucoup améliorés.
00:00:48Mais ensuite, on commence à vouloir plus de contrôle.
00:00:51Vous voulez des drapeaux llama CPP précis, placer les couches GPU, gérer la taille du contexte, des backends personnalisés,
00:00:59voire des modèles expérimentaux.
00:01:01Alors on se rapproche du serveur llama brut, et c'est génial.
00:01:06Jusqu'à ce qu'on réalise qu'on a juste échangé un problème contre un autre.
00:01:09Maintenant, vous en êtes là.
00:01:11Vous coupez votre serveur llama, vous lancez QuinCoder, puis cinq minutes plus tard, que
00:01:16faites-vous ?
00:01:17Vous recoupez votre serveur llama.
00:01:18Vous jonglez entre ces modèles.
00:01:20Et à chaque fois, quelque chose attend, se reconnecte, échoue, ou utilise silencieusement le mauvais
00:01:26modèle.
00:01:27Ce que vous voulez vraiment, c'est garder un seul point d'accès en façade, et changer les modèles
00:01:31que vous voulez derrière.
00:01:33C'est précisément ce vide que comble LlamaSwap.
00:01:36Si vous aimez les outils de code qui accélèrent votre flux de travail, abonnez-vous.
00:01:39Nous sortons des vidéos tout le temps.
00:01:41Avant d'en discuter, laissez-moi vous montrer comment tout cela fonctionne.
00:01:44En ce moment, LlamaSwap tourne localement sur un port.
00:01:48Mon client ne connaît que cette URL de base, pas une URL pour Quin, une autre pour Small LM,
00:01:55une pour les embeddings, juste une porte d'entrée unique.
00:01:58Voici une petite config avec deux modèles.
00:02:02L'un est QuinCoder, l'autre est small LM2.
00:02:06Et chacun possède sa propre commande.
00:02:09Chacun a son propre fichier de modèle.
00:02:11Chacun a sa propre taille de contexte.
00:02:14Et la différence entre les deux est que chacun a aussi son propre TTL.
00:02:19Maintenant, je vais demander quelque chose au modèle de code.
00:02:22J'envoie une requête de chat standard de style OpenAI.
00:02:25Le champ modèle indique QuinCoder, d'accord, super.
00:02:30Regardons les journaux.
00:02:32Il attend que le backend soit prêt, puis il transmet la requête.
00:02:36Maintenant, voici ce qui ne se passe PAS.
00:02:39Je ne change pas l'URL.
00:02:41Je ne redémarre pas l'interface web Open.
00:02:43Je ne modifie rien dans Cursor.
00:02:46Je change juste un champ.
00:02:48Le modèle passe de QuinCoder à small LM2, même point d'accès, même client, mais modèle différent.
00:02:55Et quand le modèle reste inactif au-delà du TTL, LlamaSwap peut le décharger pour libérer votre VRAM.
00:02:59C'est ça, le secret.
00:03:00L'astuce est là.
00:03:02Vos outils pensent qu'ils communiquent avec une seule API.
00:03:04LlamaSwap gère toute la complexité en coulisses pour contrôler réellement le flux.
00:03:09D'accord, très bien.
00:03:10Alors, qu'est-ce que LlamaSwap ?
00:03:11Je viens d'en faire la démonstration, n'est-ce pas ?
00:03:12Voyez-le comme un concentrateur pour vos modèles locaux.
00:03:13Vos applications ne parlent pas directement à chaque serveur de modèle.
00:03:16Elles parlent à LlamaSwap.
00:03:19Ensuite, LlamaSwap regarde le champ du modèle et décide de la marche à suivre.
00:03:21Si le modèle est déjà lancé, il va simplement transmettre la requête.
00:03:25Si le modèle n'est pas lancé, alors il va l'activer.
00:03:28Si un autre modèle doit lui laisser la place, il va l'arrêter.
00:03:31Ensuite, votre client reçoit une réponse normale.
00:03:35Il n'y a donc pas besoin de changer les URL de base toutes les 10 minutes.
00:03:38Il n'y a qu'un binaire, un fichier de config et un point d'accès API stable.
00:03:41C'est écrit en Go et ça utilise une configuration YAML.
00:03:45Ça sert de proxy pour les API compatibles OpenAI et Anthropic,
00:03:48et peut se placer devant des backends comme llama cpp, vllm, tabby API, et plus encore.
00:03:53Avec de la chance, vous avez peut-être 10 ou 20 modèles sur disque, mais assez de VRAM pour n'en garder
00:03:59qu'un ou deux chargés.
00:04:05Le TTL aide à gérer cela.
00:04:06Si un modèle reste inactif trop longtemps, LlamaSwap peut le décharger.
00:04:08Ainsi, au lieu que votre GPU soit bloqué par un modèle inutilisé,
00:04:11il peut libérer cette mémoire pour la prochaine requête.
00:04:17Avant, vous deviez vous rappeler de ce qui tournait.
00:04:20Maintenant, la config s'en souvient pour vous.
00:04:23À ce stade, la question évidente est : pourquoi ne pas simplement utiliser Llama, LM Studios
00:04:25ou un serveur Llama classique ?
00:04:31La réponse est que vous pourriez très bien le faire.
00:04:32LlamaSwap ne les remplace pas systématiquement.
00:04:35Il résout un problème très spécifique.
00:04:37Comparé à Llama, LlamaSwap n'est pas un magasin de modèles, un téléchargeur ou un CLI
00:04:40facile d'accès. Ce n'est pas le but ici.
00:04:47L'objectif, c'est le contrôle.
00:04:49Vous apportez vos propres builds llama cpp, vos propres drapeaux, vous décidez exactement
00:04:50du lancement de chaque modèle.
00:04:55Par rapport à LM Studio, LlamaSwap est plus orienté serveur, sans interface graphique requise.
00:04:57Il s'intègre mieux dans une machine de dev, un serveur domestique, Docker,
00:05:02ou une machine partagée où les outils ont besoin d'une API stable.
00:05:07Ce n'est pas aussi simple qu'un “llama run llama 3”.
00:05:09Vous avez besoin de vos fichiers de modèles.
00:05:13Vous devez comprendre votre backend.
00:05:15Vous devez écrire du YAML.
00:05:17Vous devez savoir quels drapeaux correspondent à votre GPU.
00:05:19Il n'y a pas de galerie intégrée qui télécharge et configure tout pour vous.
00:05:22Donc, honnêtement, l'installation est assez fastidieuse.
00:05:26Mais pour certains développeurs, cela résout une douleur très spécifique.
00:05:29Celle de savoir exactement quel modèle on veut, mais de perdre du temps à tout câbler
00:05:32et décâbler sans cesse autour.
00:05:38Ça vaut le coup d'essayer si vous utilisez des outils comme Cursor, Continue, des agents
00:05:39personnalisés ou des scripts locaux.
00:05:44Ce sera utile, même si l'installation est plus intensive.
00:05:47Voilà pour LlamaSwap.
00:05:49Un point d'accès API stable, plusieurs modèles locaux derrière, permutation automatique,
00:05:54déchargement en cas d'inactivité, contrôle total du backend.
00:05:56L'idée principale est simple.
00:05:58Vos clients n'ont plus à se soucier du serveur de modèle qui tourne réellement.
00:06:02LlamaSwap s'occupe de tout pour eux.
00:06:04Si vous appréciez ce genre d'outils, n'oubliez pas de vous abonner.
00:06:06On se voit dans une prochaine vidéo.