Executer un modele local utile depend souvent moins de la puissance totale que de l’endroit ou elle se trouve. Un poste possede un GPU, une seconde machine de la memoire libre et un serveur domestique reste disponible en permanence, mais chacun demeure un ilot d’inference.
Mesh-LLM/mesh-llm transforme ces machines en infrastructure partagee. Chaque noeud expose la meme API compatible OpenAI, annonce les modeles qu’il peut servir et participe au routage. Un modele peut tenir sur un peer, une requete peut etre transmise ailleurs, ou un modele trop grand peut etre decoupe en etapes de couches Skippy.
Le projet Apache-2.0 est principalement ecrit en Rust et s’appuie sur GGUF et la compatibilite llama.cpp. Il prend en charge meshes prives sur invitation, decouverte publique, clients agents et chat, backends CPU/GPU heterogenes et une passerelle Mixture-of-Agents experimentale.
model: "mesh", experimental, interroge plusieurs modeles, arbitre en code et n'utilise un modele reducteur qu'en cas de conflit reel.Ce qu’est Mesh LLM
Mesh LLM est un runtime d’inference distribuee et un plan de controle. Demarrez un noeud, ajoutez des peers plus tard et gardez le meme contrat client : http://localhost:9337/v1.
Ses capacites principales incluent :
- endpoints compatibles OpenAI pour les modeles et le chat
- decisions automatiques entre execution locale et routage vers un peer
- meshes prives rejoints avec un token d’invitation
- meshes publies annonces par decouverte Nostr
- splits Skippy bases sur des packages pour les grands modeles
- variantes CPU, CUDA, ROCm, Vulkan, Metal et ARM64
- integrations Goose, OpenCode, Claude Code et Pi
- console web sur le port
3131et mode serveur headless - passerelle Mixture-of-Agents experimentale via
model: "mesh"
Ce n’est pas du tensor parallelism masque par un service heberge. C’est un reseau controle par ses operateurs, avec materiel heterogene, inventaire explicite et API locale.
Comment fonctionne le routage
Mesh LLM suit une hierarchie pratique. Si le noeud local peut heberger le modele demande, il evite le trafic inter-etapes. Si un autre peer annonce deja ce modele, la requete peut lui etre transmise. Tous les noeuds presentent la meme interface /v1; l’application ignore donc quelle machine execute l’inference.
Cette abstraction convient aux homelabs et petites equipes : un portable sert de client tandis qu’une workstation heberge le modele. Ajouter ou retirer de la puissance modifie l’inventaire du mesh, pas la configuration de l’application.
Il faut neanmoins gerer les realites distribuees : disponibilite, latence reseau, versions, telechargement des modeles et reprise apres panne.
Splits Skippy pour les modeles trop grands
Lorsqu’un modele dense ne tient pas sur une machine, Skippy le divise en plages contigues de couches. Les depots de packages contiennent un manifeste model-package.json et des fragments GGUF; chaque peer ne recupere que sa plage.
Le coordinateur planifie les etapes, demarre d’abord les peers aval, attend leur disponibilite et publie la route de l’etape 0 en dernier. Les activations traversent ensuite le pipeline. Cette approche augmente la memoire utilisable, sans supprimer le cout reseau : latence et debit dependent de l’equilibre des etapes, de l’interconnexion, du prompt et des pannes.
Le split est donc un outil de capacite. Si le modele entier fonctionne efficacement sur un noeud, Mesh LLM prefere cette route plus simple.
Meshes publics, meshes prives et confiance
Un mesh prive se construit avec des tokens d’invitation. Un mesh publie peut utiliser la decouverte Nostr, tandis que serve --auto rejoint un mesh public adapte. Des clients API peuvent se connecter sans servir eux-memes un modele.
La decouverte publique elargit la frontiere de confiance. Prompts, tokens generes, provenance du modele, comportement des peers et metadonnees reseau peuvent etre sensibles. Les workloads confidentiels devraient utiliser un mesh controle, des permissions minimales, des binaires verifies et des protections reseau adaptees.
Le projet fournit aussi une attestation de release pour la provenance et le durcissement de l’admission. Sa documentation precise qu’elle ne garantit pas a elle seule l’integrite complete du runtime.
Demarrage rapide
Apres installation d’une release :
mesh-llm setup
mesh-llm serve --auto
Listez les modeles visibles par la passerelle locale :
curl -s http://localhost:9337/v1/models | jq '.data[].id'
Un client compatible OpenAI peut utiliser http://localhost:9337/v1 comme URL de base. Pour un deploiement prive, selectionnez explicitement un modele et invitez les peers. Sur serveur, --headless masque l’interface web tout en gardant l’API de gestion.
Mixture of Agents experimental
Une requete avec "model": "mesh" active une voie experimentale qui envoie le prompt a chaque modele distinct. Un arbitre deterministe compare les reponses; un LLM reducteur n’intervient qu’en cas de conflit reel. Les appels d’outils traversent le pipeline.
Cette distribution differe de Skippy. Skippy partage un modele entre machines; Mixture of Agents interroge plusieurs modeles complets et combine leurs sorties. Il demande au moins deux modeles et reste une preview dont routage, erreurs et reglages peuvent changer. Utilisez un identifiant de modele precis lorsque la stabilite semantique est essentielle.
Compromis materiels et operationnels
Mesh LLM facilite la mise en commun, mais la memoire agregee n’equivaut pas a un accelerateur unique et rapide.
- Reseau : les etapes echangent des activations; le Wi-Fi peut limiter le debit.
- Heterogeneite : l’etape la plus lente peut limiter tout le pipeline.
- Disponibilite : la perte d’un peer retire une route ou interrompt un split.
- Distribution : packages et fragments GGUF consomment stockage et temps.
- Securite : un mesh public demande une analyse de confiance plus large.
- Maturite : le projet se presente comme logiciel distribue experimental.
Commencez avec un petit mesh prive, mesurez des prompts representatifs, testez les pannes, puis ajoutez decouverte publique ou splits uniquement pour repondre a une contrainte mesuree.
Ou Mesh LLM trouve sa place
Mesh LLM interesse les passionnes, labs et petites equipes possedant plusieurs machines sous-utilisees et souhaitant une API unique pour agents ou chat. Il permet aussi d’apprendre inference distribuee, scheduling heterogene, packaging de modeles et arbitrage multi-modeles.
Il convient moins lorsque latence previsible, isolation stricte, controles certifies ou garanties operees sont obligatoires. Dans ces contextes, l’architecture reste instructive, mais l’adoption exige une validation approfondie.
Conclusion
Mesh LLM traite la capacite d’inference locale comme une ressource reseau. Son API compatible OpenAI, son routage, ses options privees et publiques, ses packages Skippy et sa large compatibilite GGUF rendent l’IA locale distribuee accessible sans pretendre que le reseau disparait.
Le bon modele mental n’est pas « additionner tous les GPU pour creer un superordinateur ». Il consiste a construire une infrastructure qui choisit l’execution viable la plus simple : un noeud, un autre peer, ou un modele soigneusement decoupe entre plusieurs machines.